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