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