自動化パタンランゲージ

50
テスト自動化の パタンランゲージ 関西検証コレクション(#検これ) 前川 博志(@Posaune)

Upload: hiroshi-maekawa

Post on 22-Jun-2015

4.693 views

Category:

Engineering


10 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 自動化パタンランゲージ

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

関西検証コレクション(#検これ)

前川 博志(@Posaune)

Page 2: 自動化パタンランゲージ

自己紹介

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

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

Page 3: 自動化パタンランゲージ

発表諸元

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

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

•地上からの眺め

•むすび

2014/6/28 Asian Automation Aliance

Page 4: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 5: 自動化パタンランゲージ

テスト自動化取組みの現状(#検これ 調べ)

•まだまだ導入初期•(少なくとも関西では)

•討死事例も多い気がする•しかもなんか似たような事例多い

•結局「組織が対応できてない」みたいな飲み会のグチみたいな話で終わりがち

2014/6/28 Asian Automation Aliance

Page 6: 自動化パタンランゲージ

なんだか残念な感じ

2014/6/28 Asian Automation Aliance

Page 7: 自動化パタンランゲージ

・・・というわけで

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

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

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

パターンランゲージのフォーマットがよさげ!

Page 8: 自動化パタンランゲージ

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

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

•問題

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

•解決•問題の解決策

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

2014/6/28 Asian Automation Aliance

Page 9: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

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

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

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

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

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

Page 10: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 11: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 12: 自動化パタンランゲージ

どどん!!

2014/6/28 Asian Automation Aliance

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

終焉

グッドパターン

アンチパターン

Page 13: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 14: 自動化パタンランゲージ

地上からの眺め

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

Page 15: 自動化パタンランゲージ

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

Page 16: 自動化パタンランゲージ

三浦さんの悩み

•なんでエンジニアが、こんなだれでもできるような作業をやらんといかんのや…

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

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

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

Page 17: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 18: 自動化パタンランゲージ

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

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

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

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

Page 19: 自動化パタンランゲージ

2014/6/28 Asian Automation Aliance

Page 20: 自動化パタンランゲージ

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

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

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

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

2014/6/28 Asian Automation Aliance

Page 21: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 22: 自動化パタンランゲージ

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

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

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

Page 23: 自動化パタンランゲージ

2014/6/28 Asian Automation Aliance

Page 24: 自動化パタンランゲージ

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

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

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

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

2014/6/28 Asian Automation Aliance

Page 25: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 26: 自動化パタンランゲージ

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

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

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

Page 27: 自動化パタンランゲージ

2014/6/28 Asian Automation Aliance

Page 28: 自動化パタンランゲージ

さて、時は少し流れ…

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

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

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

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

2014/6/28 Asian Automation Aliance

Page 29: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 30: 自動化パタンランゲージ

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

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

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

Page 31: 自動化パタンランゲージ

もう少し時は流れ・・・

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

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

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

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

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

2014/6/28 Asian Automation Aliance

Page 32: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 33: 自動化パタンランゲージ

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

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

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

Page 34: 自動化パタンランゲージ

2014/6/28 Asian Automation Aliance

Page 35: 自動化パタンランゲージ

失意の三浦さん・・・

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

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

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

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

2014/6/28 Asian Automation Aliance

Page 36: 自動化パタンランゲージ

2014/6/28 Asian Automation Aliance

Page 37: 自動化パタンランゲージ

2014/6/28 Asian Automation Aliance

Page 38: 自動化パタンランゲージ

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

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

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

Page 39: 自動化パタンランゲージ

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

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

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

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

2014/6/28 Asian Automation Aliance

Page 40: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

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

Page 41: 自動化パタンランゲージ

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

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

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

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

2014/6/28 Asian Automation Aliance

Page 42: 自動化パタンランゲージ

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

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

2014/6/28 Asian Automation Aliance

Page 43: 自動化パタンランゲージ

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

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

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

2014/6/28 Asian Automation Aliance

Page 44: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

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

Page 45: 自動化パタンランゲージ

むすび

2014/6/28 Asian Automation Aliance

Page 46: 自動化パタンランゲージ

自動化パタンランゲージ

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

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

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

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

2014/6/28 Asian Automation Aliance

Page 47: 自動化パタンランゲージ

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

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

•Issue / Pull Request 大歓迎!

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

Page 48: 自動化パタンランゲージ

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

2014/6/28 Asian Automation Aliance

Page 49: 自動化パタンランゲージ

未完

自動化坂をよ…

Page 50: 自動化パタンランゲージ