テスト自動化のパタンランゲージ@agilet tour osaka

58
テスト自動化の パタンランゲージ 検これ ⇒ .reviewrc(#reviewrc) 前川 博志(@Posaune)

Upload: hiroshi-maekawa

Post on 30-Jun-2015

906 views

Category:

Internet


2 download

DESCRIPTION

自動化パタン・ランゲージについての発表@ Agile Tour Osaka です。 フィードバックいただいた皆様に感謝。

TRANSCRIPT

Page 1: テスト自動化のパタンランゲージ@Agilet Tour Osaka

テスト自動化のパタンランゲージ

検これ ⇒ .reviewrc(#reviewrc)

前川 博志(@Posaune)

Page 2: テスト自動化のパタンランゲージ@Agilet Tour Osaka

自己紹介

•まえかわ ひろし a.k.a @Posaune•#京アジャ•#reviewrc•なんにでも興味を持つ雑食系エンジニア•器用貧乏っていうな

•MS MVP for Visual Studio ALM(更新!)•Visual Studioで作ってJenkinsでビルドするというALM

2014/10/11 Agile Tour Osaka 2014

Page 3: テスト自動化のパタンランゲージ@Agilet Tour Osaka

発表諸元

•テスト自動化の現状

•上空5000メートルからの眺め

•地上からの眺め

•パタンランゲージの活用方法

•むすび

2014/10/11 Agile Tour Osaka 2014

Page 4: テスト自動化のパタンランゲージ@Agilet Tour Osaka

テスト自動化の現状

2014/10/11 Agile Tour Osaka 2014

Page 5: テスト自動化のパタンランゲージ@Agilet Tour Osaka

テスト自動化とは?

•テストをコンピュータプログラムにより自動で行うこと•単体・結合・システムのどのレベルでも

•最近はシステムテストレベルの自動化が流行?

•アジャイルにおいては、自動化されたテストは重要なプラクティス•XP: テスト駆動開発、継続的インテグレーション

•継続的デリバリ

2014/10/11 Agile Tour Osaka 2014

Page 6: テスト自動化のパタンランゲージ@Agilet Tour Osaka

テスト自動化に取り組むと…

2014/10/11 Agile Tour Osaka 2014

Page 7: テスト自動化のパタンランゲージ@Agilet Tour Osaka

たのしい

つらい

よっしゃ!自動化や!

テスト書くの楽しいぃぃ!

なんかめんどくさくね?

メンテつらい…時間かかるわー

効果上げてないからやめろってさ。ほんとうちの会社クソだな

自動化してなんか嬉しい事あったっけ?

Page 8: テスト自動化のパタンランゲージ@Agilet Tour Osaka

なんだか残念な感じ

2014/10/11 Agile Tour Osaka 2014

Page 9: テスト自動化のパタンランゲージ@Agilet Tour Osaka

・・・というわけで

•テスト自動化に取り組んでいる人たちの経験をアクセスしやすい形で公開しよう

•現状の問題がなぜ発生しているのかを理解し、それを解決しうる策を提供する

•周囲に潜む関連する問題への気づきを与える

2014/10/11 Agile Tour Osaka 2014

Page 10: テスト自動化のパタンランゲージ@Agilet Tour Osaka

2014/10/11 Agile Tour Osaka 2014

そこでパタンランゲージですよ!!

Page 11: テスト自動化のパタンランゲージ@Agilet Tour Osaka

パタンランゲージの構成要素

•コンテキスト•問題の背景となっている事情

•問題

•フォース•問題を発生させる要因となる外部からの力

•解決•問題の解決策

•結果•解決策を取った後に見込まれる結果

2014/10/11 Agile Tour Osaka 2014

Page 12: テスト自動化のパタンランゲージ@Agilet Tour Osaka

自動化パタンランゲージの一例 ~ダッシュボード~

2014/10/11 Agile Tour Osaka 2014

•文脈: [3分クッキング]により自動化そのものを取り入れることはできた。

•問題:テスト結果を適切に分析し、活用することができていない。

•フォース:多くの情報を解釈するには担当者のリソースが必要。

•解決:目的をもった結果レポートを出力するようにする。

•結果:メトリクスを[テスト仕分け]など自動化システムの改良に活用できる。

Page 13: テスト自動化のパタンランゲージ@Agilet Tour Osaka

それでは、実際にパタンランゲージを見てみましょう

2014/10/11 Agile Tour Osaka 2014

Page 14: テスト自動化のパタンランゲージ@Agilet Tour Osaka

上空5000メートルからの眺め

2014/10/11 Agile Tour Osaka 2014

Page 15: テスト自動化のパタンランゲージ@Agilet Tour Osaka

どどん!!

2014/10/11 Agile Tour Osaka 2014

導入のパタン 初期実装のパタン普及・もしくは

終焉

グッドパタン

アンチパタン

Page 16: テスト自動化のパタンランゲージ@Agilet Tour Osaka

・・・これだけじゃわかりませんよね。

2014/10/11 Agile Tour Osaka 2014

Page 17: テスト自動化のパタンランゲージ@Agilet Tour Osaka

地上からの眺め

とあるオートメータの記録風に

Page 18: テスト自動化のパタンランゲージ@Agilet Tour Osaka

三浦さん(仮名)は悩んでいた・・・

Page 19: テスト自動化のパタンランゲージ@Agilet Tour Osaka

三浦さんの悩み

•なんで俺様が、こんなだれでもできるような作業をやらんといかんのや…

•そもそもちょっと手順が違うだけでほとんど同じ作業の繰り返しやないか…

•こんなもん、ミスなくやれっちゅーほうが難しいて…

•あぁ、だからダブルチェックすんのか…

2014/10/11 Agile Tour Osaka 2014

Page 20: テスト自動化のパタンランゲージ@Agilet Tour Osaka

あー!!もうやってられん!!!誰か、なんとかしてくれー!!

2014/10/11 Agile Tour Osaka 2014

Page 21: テスト自動化のパタンランゲージ@Agilet Tour Osaka

まずは問題意識から~求む!英雄~

•自動化の必要性を、きちんと意識する、というパタン

•これ無しに自動化するとヒドイ目に会う可能性が高い

•すべての起点にあたるパタン

2014/10/11 Agile Tour Osaka 2014

Page 22: テスト自動化のパタンランゲージ@Agilet Tour Osaka

2014/10/11 Agile Tour Osaka 2014

Page 23: テスト自動化のパタンランゲージ@Agilet Tour Osaka

そんなとき、三浦さんの前にあるものが…

•ん?なんやこれ?“SisutemuTesutoZikkou.bat”?ちょっと実行してみよか・・・

•うおお!なんかシステム勝手に立ち上がっていろんな判定はじめよったぞ?

•なんかレポートも出とる!

2014/10/11 Agile Tour Osaka 2014

Page 24: テスト自動化のパタンランゲージ@Agilet Tour Osaka

こ・・・これはお宝やないか!?

2014/10/11 Agile Tour Osaka 2014

Page 25: テスト自動化のパタンランゲージ@Agilet Tour Osaka

過去の遺産の発掘~インディ・ジョーンズ~

•先人が残した自動化の資産を発掘し、うまく活用するパタン

•オーパーツと化しているので、扱いに注意しないと・・・

2014/10/11 Agile Tour Osaka 2014

Page 26: テスト自動化のパタンランゲージ@Agilet Tour Osaka

2014/10/11 Agile Tour Osaka 2014

Page 27: テスト自動化のパタンランゲージ@Agilet Tour Osaka

そしてお宝を発見した三浦さんは・・・

•うおー、これも、これも、使えるやないか!!

•自分でも、なんとか追加していけそうやぞ、例えばここをこう変えれば、別のもテストできそうや!

•よし、このバッチをコピペして、テストを大量生産や~!!

2014/10/11 Agile Tour Osaka 2014

Page 28: テスト自動化のパタンランゲージ@Agilet Tour Osaka

うおー!!テンション上がってきたで~!!

2014/10/11 Agile Tour Osaka 2014

Page 29: テスト自動化のパタンランゲージ@Agilet Tour Osaka

そろそろやばいぞ~自動化ハイ~

•自動化することそのものが目的になり、突っ走ってしまっているパタン

•ここから建て増し旅館を建築する例が多い

2014/10/11 Agile Tour Osaka 2014

Page 30: テスト自動化のパタンランゲージ@Agilet Tour Osaka

2014/10/11 Agile Tour Osaka 2014

Page 31: テスト自動化のパタンランゲージ@Agilet Tour Osaka

さて、時は少し流れ…

•よっしゃ、かなりのテストを自動化できてきたで~…

•「三浦さん、このテストとあのテスト、また落ちてるんですけど」

•あぁ、それはそういうもんなんや、タイミングで時々動かへんねん、ほっとき

•「は~い(もうこのテストはまじめに結果みなくてよさそうだな・・・)」

2014/10/11 Agile Tour Osaka 2014

Page 32: テスト自動化のパタンランゲージ@Agilet Tour Osaka

「ま、最後にちょろっと念為でテスト通せばいいか…」

2014/10/11 Agile Tour Osaka 2014

Page 33: テスト自動化のパタンランゲージ@Agilet Tour Osaka

もはやテストじゃない~験担ぎ~

•自動テストがただの儀式になってしまっているアンチパタン。例えば…•複雑すぎて時々失敗してしまうのが普通

•自動テストのメンテナンスが職人作業になり落ちても誰も触れない

2014/10/11 Agile Tour Osaka 2014

Page 34: テスト自動化のパタンランゲージ@Agilet Tour Osaka

もう少し時は流れ・・・

•「おい、三浦君、最近しょうもない不具合が多いよ?どうなってるの?」

•え?あれ?そのテストはちゃんと自動で…

•「いやあのテストはほとんど走らせてませんよ、最後に一度通せばOKかなって」

•えええ!?あかんやん!そんなん!

•「だってうまくいくかどうかわからんテストとかやってられませんよ」

2014/10/11 Agile Tour Osaka 2014

Page 35: テスト自動化のパタンランゲージ@Agilet Tour Osaka

『やっぱ、人間の手と目で確認しないとダメだね 』

2014/10/11 Agile Tour Osaka 2014

Page 36: テスト自動化のパタンランゲージ@Agilet Tour Osaka

自動化の終焉~原住民蜂起~

•自動化による効果を感じてもらえず、取り組みにピリオドが打たれるアンチパタン

•さようなら・・・みうらさん・・・

2014/10/11 Agile Tour Osaka 2014

Page 37: テスト自動化のパタンランゲージ@Agilet Tour Osaka

2014/10/11 Agile Tour Osaka 2014

Page 38: テスト自動化のパタンランゲージ@Agilet Tour Osaka

失意の三浦さん・・・

•なんでや、なんで元通りになってしまったんや・・・

•思えば、テンション上がって勝手に突っ走ったのはまずかったんやな。。。

•もっと、システム全体を見て、効果的な自動化をするべきやった。。。

•次こそは、次こそは・・・

2014/10/11 Agile Tour Osaka 2014

Page 39: テスト自動化のパタンランゲージ@Agilet Tour Osaka

2014/10/11 Agile Tour Osaka 2014

Page 40: テスト自動化のパタンランゲージ@Agilet Tour Osaka

2014/10/11 Agile Tour Osaka 2014

Page 41: テスト自動化のパタンランゲージ@Agilet Tour Osaka

失敗を糧にすべし~強くてニューゲーム~

•自動化失敗の原因を冷静に分析し、次の取り組みに活かすパタン

•次は本物の「英雄」になれるかも!?

2014/10/11 Agile Tour Osaka 2014

Page 42: テスト自動化のパタンランゲージ@Agilet Tour Osaka

生まれ変わった三浦さんは…

•よっしゃ、ガンガン自動化したるで~…いや、あかんあかん!

•実装を進める前に、まずシステム全体を見とかんとな!

•その上で、どこが「自動化が効く」ところなのか判断しよ!

2014/10/11 Agile Tour Osaka 2014

Page 43: テスト自動化のパタンランゲージ@Agilet Tour Osaka

全体像を描く& まずは“効く“ところから

2014/10/11 Agile Tour Osaka 2014

•自動化ハイをぐっとこらえ・・・

Page 44: テスト自動化のパタンランゲージ@Agilet Tour Osaka

生まれ変わった三浦さんは・・・

•テストがちょっと不安定になってきとるな…

•うお!?このコードはあかんやろ、修正しとかなあかんな・・・

•あと、要らんテストも多いな。これも仕分けしとかな。

2014/10/11 Agile Tour Osaka 2014

Page 45: テスト自動化のパタンランゲージ@Agilet Tour Osaka

ヤブ医者とブラックジャック& テスト仕分け

•アンチパタンへのカウンターを打ち…

2014/10/11 Agile Tour Osaka 2014

Page 46: テスト自動化のパタンランゲージ@Agilet Tour Osaka

生まれ変わった三浦さんは・・・

•人がやるテスト、大分減ってきたな。。。•んじゃあテスターさんにはもっと探索的なテストをやってもらお!•うお!思ってもみなかった不具合でたで!さすがプロやな~

•テストは大分自動化したで。もうどんなテストでも5分ででける!•…けど、結局環境構築大変やんな・・・•これも自動化せなな!ん?Chefってのがあるんか?

2014/10/11 Agile Tour Osaka 2014

Page 47: テスト自動化のパタンランゲージ@Agilet Tour Osaka

もっと、人間らしく& テストだけとか勿体無い

2014/10/11 Agile Tour Osaka 2014

•「文明の曙」へ向けて、三浦さんの自動化の旅は続く・・・

Page 48: テスト自動化のパタンランゲージ@Agilet Tour Osaka

パタンランゲージの活用方法

Page 49: テスト自動化のパタンランゲージ@Agilet Tour Osaka

① 自動化ユビキタス言語として

•自動化における問題点は、言葉に表現しにくいこともある

•パタンの言葉を使って会話するとイメージがわきやすい

2014/10/11 Agile Tour Osaka 2014

Page 50: テスト自動化のパタンランゲージ@Agilet Tour Osaka

たのしい

つらい

よっしゃ!自動化や!

テスト書くの楽しいぃぃ!

なんかめんどくさくね?

メンテつらい…時間かかるわー

効果上げてないからやめろってさ。ほんとうちの会社クソだな

自動化してなんか嬉しい事あったっけ?

求む!英雄!

自動化ハイ

ダッシュボード

まずは“効く”ところから

ヤブ医者とブラックジャック

テスト仕分け

原住民蜂起

強くてニューゲーム

Page 51: テスト自動化のパタンランゲージ@Agilet Tour Osaka

たのしい

つらい

よっしゃ!自動化や!

テスト書くの楽しいぃぃ!

なんかめんどくさくね?

メンテつらい…時間かかるわー

自動化してなんか嬉しい事あったっけ?

求む!英雄!

自動化ハイ

ダッシュボードまずは“効く”ところから

ヤブ医者とブラックジャック

テスト仕分け

テストだけとかもったいない!

文明の曙

テスト自動化定着への道標に!

Page 52: テスト自動化のパタンランゲージ@Agilet Tour Osaka

② 自分の経験を皆に伝えるツールとして

•自動化パタンは経験ベースの集合•新たな経験により常に進化していくもの

•なので、あなたのPull Request 受付中!!•https://github.com/KenColle/AutomationPatternLanguage•CC-BY にて公開中

•ぜひ皆さんの自動化体験談をパタンにしましょう!

2014/10/11 Agile Tour Osaka 2014

Page 53: テスト自動化のパタンランゲージ@Agilet Tour Osaka

むすび

2014/10/11 Agile Tour Osaka 2014

Page 54: テスト自動化のパタンランゲージ@Agilet Tour Osaka

自動化パタンランゲージ

•自動化だけなら長い歴史がある•失敗をもとに良いソリューションができてきている

•ソフトの自動化ははじまったばかり

•三浦さん(仮名)のように、一度討死するのもいいかもしれないけれど・・・

•パタンをベースに良いソリューションをショートカットできるのでは!

2014/10/11 Agile Tour Osaka 2014

Page 55: テスト自動化のパタンランゲージ@Agilet Tour Osaka

パタン言語はGithubにて公開中!!

•https://github.com/KenColle/AutomationPatternLanguage

•Issue / Pull Request 大歓迎!

•ぜひ皆さんの自働化体験談をパタンにしましょう!

2014/10/11 Agile Tour Osaka 2014

Page 56: テスト自動化のパタンランゲージ@Agilet Tour Osaka

文明の曙を目指して、Enjoy Automation !!

2014/10/11 Agile Tour Osaka 2014

Page 57: テスト自動化のパタンランゲージ@Agilet Tour Osaka

未完

自動化坂をよ…

Page 58: テスト自動化のパタンランゲージ@Agilet Tour Osaka