Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

自動化パタンランゲージ

6,676 views

Published on

Asian Automation Alliance の発表資料です。
http://kokucheese.com/event/index/160374/

Published in: Engineering
  • Be the first to comment

自動化パタンランゲージ

  1. 1. テスト自動化の パタンランゲージ 関西検証コレクション(#検これ) 前川 博志(@Posaune)
  2. 2. 自己紹介 •まえかわ ひろし a.k.a @Posaune •#京アジャ •#検これ •なんにでも興味を持つ雑食系エンジニア • 器用貧乏っていうな •MS MVP for Visual Studio ALM • Visual Studioで作ってJenkinsでビルド するというALM
  3. 3. 発表諸元 •テスト自動化パタンランゲージの狙い •上空5000メートルからの眺め •地上からの眺め •むすび 2014/6/28 Asian Automation Aliance
  4. 4. テスト自動化 パタンランゲージの狙い 2014/6/28 Asian Automation Aliance
  5. 5. テスト自動化取組みの現状 (#検これ 調べ) •まだまだ導入初期 •(少なくとも関西では) •討死事例も多い気がする •しかもなんか似たような事例多い •結局「組織が対応できてない」みたいな 飲み会のグチみたいな話で終わりがち 2014/6/28 Asian Automation Aliance
  6. 6. なんだか残念な感じ 2014/6/28 Asian Automation Aliance
  7. 7. ・・・というわけで •テスト自動化に取り組んでいる人たちの 経験をアクセスしやすい形で公開しよう •現状の問題がなぜ発生しているのかを 理解し、それを解決しうる策を提供する •関連する問題を明示し、周囲に潜む問題 への気づきを与える パターンランゲージのフォーマットがよさげ!
  8. 8. パタンランゲージの 構成要素 •コンテキスト •問題の背景となっている事情 •問題 •フォース •問題を発生させる要因となる外部からの力 •解決 •問題の解決策 •結果 •解決策を取った後に見込まれる結果 2014/6/28 Asian Automation Aliance
  9. 9. 自動化パタンランゲージの 一例 ~ダッシュボード~ 2014/6/28 Asian Automation Aliance •文脈: [3分クッキング]により自動化 そのものを取り入れることはできた。 •問題:テスト結果を適切に分析し、 活用することができていない。 •フォース:多くの情報を解釈するには 担当者のリソースが必要。 •解決:目的をもった結果レポートを出力 するようにする。 •結果:メトリクスを[テスト仕分け]など 自動化システムの改良に活用できる。
  10. 10. それでは、実際にパタンラン ゲージを見てみましょう 2014/6/28 Asian Automation Aliance
  11. 11. 上空5000メートル からの眺め 2014/6/28 Asian Automation Aliance
  12. 12. どどん!! 2014/6/28 Asian Automation Aliance 導入のパターン 初期実装のパターン 普及・もしくは 終焉 グッドパターン アンチパターン
  13. 13. ・・・ これだけじゃわかりませんよね。 2014/6/28 Asian Automation Aliance
  14. 14. 地上からの眺め とあるオートメータの記録風に
  15. 15. 三浦さん(仮名)は 悩んでいた・・・
  16. 16. 三浦さんの悩み •なんでエンジニアが、こんなだれでもで きるような作業をやらんといかんのや… •そもそもちょっと手順が違うだけでほと んど同じ作業の繰り返しやないか… •こんなもん、ミスなくやれっちゅーほう が難しいて… •あぁ、だからダブルチェックすんのか…
  17. 17. あー!! もうやってられん!!! 誰か、なんとかしてくれー!! 2014/6/28 Asian Automation Aliance
  18. 18. まずは問題意識から ~求む!英雄~ •自動化の必要性を、きちんと意識する、 というパターン •これ無しに自動化するとヒドイ目に会う 可能性が高い •すべての起点にあたるパターン
  19. 19. 2014/6/28 Asian Automation Aliance
  20. 20. そんなとき、三浦さんの前に あるものが… •ん?なんやこれ? “SisutemuTesutoJikkou.bat”? ちょっと実行してみよか・・・ •うおお!なんかシステム勝手に立ち上 がっていろんな判定はじめよったぞ? •なんかレポートも出とる! 2014/6/28 Asian Automation Aliance
  21. 21. こ・・・ これはお宝やないか!? 2014/6/28 Asian Automation Aliance
  22. 22. 過去の遺産の発掘 ~インディージョーンズ~ •先人が残した自動化の資産を発掘し、 うまく活用するパターン •オーパーツと化しているので、扱いに注 意しないと・・・
  23. 23. 2014/6/28 Asian Automation Aliance
  24. 24. そしてお宝を発見した 三浦さんは・・・ •うおー、これも、これも、つかえるや ないか!! •自分でも、なんとか追加していけそうや ぞ、例えばここをこう変えれば、別のも テストできそうや! •よし、このバッチをコピペして、テスト を大量生産や~!! 2014/6/28 Asian Automation Aliance
  25. 25. うおー!! テンション上がってきたで~!! 2014/6/28 Asian Automation Aliance
  26. 26. そろそろやばいぞ ~自動化ハイ~ •自動化することそのものが目的になり、 突っ走ってしまっているパターン •ここから建て増し旅館を建築する例が 多い
  27. 27. 2014/6/28 Asian Automation Aliance
  28. 28. さて、時は少し流れ… •よっしゃ、かなりのテストを自動化 できてきたで~… •「三浦さん、このテストとあのテスト、 また落ちてるんですけど」 •あぁ、それはそういうもんなんや、タイ ミングで時々動かへんねん、ほっとき •「は~い(もうこのテストはまじめに結 果みなくてよさそうだな・・・)」 2014/6/28 Asian Automation Aliance
  29. 29. 「ま、最後にちょろっと 念為でテスト通せばいいか…」 2014/6/28 Asian Automation Aliance
  30. 30. もはやテストじゃない ~験担ぎ~ •自動テストがただの儀式になって しまっているアンチパターン。例えば… •複雑すぎてFragileなテストなので時々失敗し てしまう •自動テストのメンテナンスが職人作業になり落 ちても誰も触れない
  31. 31. もう少し時は流れ・・・ •「おい、三浦君、最近しょうもない不具合 が多いよ?どうなってるの?」 •え?あれ?そのテストはちゃんと自動で… •「いやあのテストはほとんど走らせてませ んよ、最後に一度通せばOKかなって」 •えええ!?あかんやん!そんなん! •「だってうまくいくかどうかわからんテス トとかやってられませんよ」 2014/6/28 Asian Automation Aliance
  32. 32. 『やっぱ、人間の手と目で 確認しないとダメだね 』 2014/6/28 Asian Automation Aliance
  33. 33. 自動化の終焉 ~原住民蜂起~ •自動化による効果を感じてもらえず、 取り組みにいったんピリオドが打たれる アンチパターン •さようなら・・・みうらさん・・・
  34. 34. 2014/6/28 Asian Automation Aliance
  35. 35. 失意の三浦さん・・・ •なんでや、なんで元通りになってしまっ たんや・・・ •思えば、テンション上がって勝手に突っ 走ったのはまずかったんやな。。。 •もっと、システム全体を見て、効果的な 自動化をするべきやった。。。 •次こそは、次こそは・・・ 2014/6/28 Asian Automation Aliance
  36. 36. 2014/6/28 Asian Automation Aliance
  37. 37. 2014/6/28 Asian Automation Aliance
  38. 38. 失敗を糧にすべし ~強くてニューゲーム~ •自動化失敗の原因を冷静に分析し、 次の取り組みに活かすパターン •次は本物の「英雄」になれるかも!?
  39. 39. 生まれ変わった 三浦さんは… •よっしゃ、ガンガン自動化したるで~… いや、あかんあかん! •実装を進める前に、まずシステム全体を 見とかんとな! •その上で、どこが「自動化が効く」とこ ろなのか判断しよ! 2014/6/28 Asian Automation Aliance
  40. 40. 全体像を描く & まずは“効く“ところから 2014/6/28 Asian Automation Aliance •自動化ハイをぐっとこらえ・・・
  41. 41. 生まれ変わった 三浦さんは・・・ •テストがちょっと不安定になってきとる な… •うお!?このコードはあかんやろ、修正 しとかなあかんな・・・ •あと、要らんテストも多いな。これも 仕分けしとかな。 2014/6/28 Asian Automation Aliance
  42. 42. ヤブ医者とブラックジャック & テスト仕分け •アンチパターンへのカウンターを打ち… 2014/6/28 Asian Automation Aliance
  43. 43. 生まれ変わった 三浦さんは・・・ •人がやるテスト、大分減ってきたな。。。 •んじゃあテスターさんにはもっと探索的な テストをやってもらお! •うお!思ってもみなかった不具合でたで! さすがプロやな~ •テストは大分自動化したで。もうどんなテ ストでも5分ででける! •…けど、結局環境構築大変やんな・・・ •これも自動化せなな!ん?Chefってのがあ るんか? 2014/6/28 Asian Automation Aliance
  44. 44. もっと、人間らしく & テストだけとか勿体無い 2014/6/28 Asian Automation Aliance •「文明の曙」へ向けて、三浦さんの 自動化の旅は続く・・・
  45. 45. むすび 2014/6/28 Asian Automation Aliance
  46. 46. 自動化パタンランゲージ •自動化だけなら長い歴史がある •失敗をもとに良いソリューションができてき ている •ソフトの自動化ははじまったばかり •三浦さん(仮名)のように、一度討死す るのもいいかもしれないけれど・・・ •パターンをベースに良いソリューション をショートカットできるのでは! 2014/6/28 Asian Automation Aliance
  47. 47. パタン言語は Githubにて公開中!! •https://github.com/KenColle/Automa tionPatternLanguage •Issue / Pull Request 大歓迎! •ぜひ皆さんの自働化体験談をパターンに しましょう!
  48. 48. 文明の曙を目指して、 Enjoy Automation !! 2014/6/28 Asian Automation Aliance
  49. 49. 未 完 自 動 化 坂 を よ …

×