狠狠撸

狠狠撸Share a Scribd company logo
テスト自動化の パターンと実践 
.reviewrc(#reviewrc) 
石川达也,叁浦一仁,前川博志
Agenda 
?テスト自動化パターンについて(前川) 
?なぜパターン? 
?パターンの使い方 
?パターンの紹介 
?パターン詳説①:皮をむく(石川) 
?パターン詳説②:自動家をつくる(三浦) 
2014/12/14 テスト自动化カンファレンス2014
テスト自動化パターンについて 
2014/12/14 テスト自动化カンファレンス2014
自己紹介 
?まえかわひろしa.k.a@Posaune 
?#京アジャ 
?#reviewrc 
?なんにでも興味を持つ雑食系エンジニア 
?器用貧乏っていうな 
?MSMVP for Visual Studio ALM 
?VisualStudioで作ってJenkinsでビルド するというALM 
2014/12/14 テスト自动化カンファレンス2014
なぜパターンか? 
2014/12/14 テスト自动化カンファレンス2014
テスト自動化はむずかしい 
?ありがちなこと 
?そもそも始めるのに勇気と力がいる 
?最初はテンション上がって頑張るけど、 後から見直すとメンテ不能の何かができる 
?テンションを維持し続けるのが大変 
?みんなが共通してハマる罠が結構ある イメージ 
2014/12/14 テスト自动化カンファレンス2014
たのしい 
つらい 
よっしゃ! 自動化や! 
テスト書くの 
楽しいぃぃ! 
なんかめんどくさくね? 
メンテつらい… 時間かかるわー 
効果上げてないからやめろってさ。 ほんとうちの会社クソだな 
自動化してなんか 嬉しい事あったっけ?
なんだか残念な感じ 
2014/12/14 テスト自动化カンファレンス2014
???というわけで 
?テスト自動化に取り組んでいる人たちの 経験をアクセスしやすい形で公開しよう 
?現状の問題がなぜ発生しているのかを 理解し、それを解決しうる策を提供する 
?周囲に潜む関連する問題への気づきを与える 
2014/12/14 テスト自动化カンファレンス2014
2014/12/14 テスト自动化カンファレンス2014 
そこでパタンランゲージですよ!!
パタンランゲージの 構成要素 
?コンテキスト 
?問題の背景となっている事情 
?問題 
?フォース 
?問題を発生させる要因となる外部からの力 
?解決 
?問題の解決策 
?結果 
?解決策を取った後に見込まれる結果 
2014/12/14 テスト自动化カンファレンス2014
自動化パタンランゲージの 一例~ダッシュボード~ 
2014/12/14 テスト自动化カンファレンス2014 
?文脈:自動化そのものを取り入れることは できた。 
?問題:テスト結果を適切に分析し、 活用することができていない。 
?フォース:多くの情報を解釈するには 担当者のリソースが必要。 
?解決:目的をもった結果レポートを出力 するようにする。 
?結果:メトリクスを[テスト仕分け]など 自動化システムの改良に活用できる。
パタンランゲージの 活用方法
①自動化ユビキタス言語として 
?自動化における問題点は、言葉に表現しに くいこともある 
?パタンの言葉を使って会話すると イメージがわきやすい 
2014/12/14 テスト自动化カンファレンス2014
たのしい 
つらい 
よっしゃ! 自動化や! 
テスト書くの 
楽しいぃぃ! 
なんか面倒 くさくね? 
メンテつらい… 時間かかるわー 
効果上げてないからやめろってさ。 ほんとうちの会社クソだな 
自動化してなんか 嬉しい事あったっけ? 
求む!英雄! 
自動化ハイ 
クラウドトーク 
験担ぎ 
建て増し旅館 
原住民蜂起
たのしい 
つらい 
よっしゃ! 自動化や! 
テスト書くの 
楽しいぃぃ! 
なんかめんどくさくね? 
メンテつらい… 時間かかるわー 
自動化してなんか 嬉しい事あったっけ? 
求む!英雄! 
自動化ハイ 
ダッシュボード 
まずは“効く” ところから 
ヤブ医者と ブラックジャック 
テスト仕分け 
テストだけとか もったいない! 
文明の曙 
テスト自動化 定着への道標に!
②自分の経験を皆に伝える ツールとして 
?自動化パタンは経験ベースの集合 
?新たな経験により常に進化していくもの 
?なので、あなたのPull Request 受付中!! 
?https://github.com/KenColle/AutomationPatternLanguage 
?CC-BYにて公開中 
?ぜひ皆さんの自動化体験談をパタンにしま しょう! 
2014/12/14 テスト自动化カンファレンス2014
それでは、実際に パタンランゲージを見てみましょう 
2014/12/14 テスト自动化カンファレンス2014
上空5000メートルからの眺め 
2014/12/14 テスト自动化カンファレンス2014
全体像 
2014/12/14 テスト自动化カンファレンス2014 
導入のパタン 
初期実装のパタン 
普及?もしくは 終焉 
パタン 
アンチパタン
??? これだけじゃわかりませんよね。 
2014/12/14 テスト自动化カンファレンス2014
地上からの眺め 
とあるオートメータの記録風に
三浦さん(仮名)は 悩んでいた???
三浦さんの悩み 
?よっしゃ、だいぶ自動化もすすんできたな。 ええかんじやで。。。 
?ん?なんや、またテスト落ちたか。 えーと、、、あぁ、またボタンの位置変え よったな。 
?クリック位置をちょいとずらして、 よし、通った通った。 
?はー、今日もいい仕事したで!って、、、 
2014/12/14 テスト自动化カンファレンス2014
ワシ、こんなことしたくて 自動化したんちゃうぞ! もっと落ちひんテストかきたいわ! 
2014/12/14 テスト自动化カンファレンス2014
そことちゃうねん! ~皮をむく~ 
?自動化を妨げる、動作が不安定なレイヤ? 変化の激しいレイヤを取り除いてテストを 行うパタン 
?安定なテストを行うことができるが、 皮を向くための作業が必要なことも 
?剥いた皮は捨てないように!! 
2014/12/14 テスト自动化カンファレンス2014
更に悩める三浦さん 
?ん?新しいテスト追加っすか?いいっすよ いいっすよ!これってどうやって確認する んでっか?? 
?あ、、、はい、、、このクラスとこの クラスとこのクラスに反映されるはず、と。 
?なんやねんめんどいなー(????)あっ、 喜んでやらしてもらいます~? 
2014/12/14 テスト自动化カンファレンス2014
もうちょっとテストのこと 考えてもらえませんかねぇ… 
2014/12/14 テスト自动化カンファレンス2014
ハードウェアでは当たり前 ~ピンを生やす~ 
?テストに使いやすいようなアクセス ポイントをアプリケーションに設けておく 
?ハードウェアの世界におけるデバッグピン 
?便利だけれど、デバッグピンのテストを 書かないように注意 
2014/12/14 テスト自动化カンファレンス2014
ロバストなテストがかけて ハッピーな三浦さん! 
?よっしゃよっしゃー、UI変更なんのそのや、 皮を剥きまくってバンバンテストするで! 
?楽勝楽勝~、これで品質も上がったやろ! ん?なんか部長が呼んでるぞ?もしかして、 表彰か?褒章か? 
????あ、ボタン押しても反応しない。 あ、客先で、あ、はい。。。 
2014/12/14 テスト自动化カンファレンス2014
剥いた皮、すてたら あかんかった??? 
2014/12/14 テスト自动化カンファレンス2014
お残しはダメよ ~皮もおいしく~ 
?剥いた「皮」といってもそれも アプリケーションの一部。その部分の テストは計画しておく必要がある。 
?おいしく皮を食べましょう。 
2014/12/14 テスト自动化カンファレンス2014
がんばれ負けるな 三浦さん! 
?皮を剥いたテスト書いて、アプリ側の設計 にも顔を出してピンを出してもらって、 剥いた皮のテスト計画もして、、、 めっちゃ忙しいぞワシ今!! 
?新しいビルドサーバも欲しいな。いや、今 はもうCIはサービスに回す時代か!どうせ ならGithubEnterpriseも??? 
?稟議書かななー、えーっと、ROIっていう んやっけ、これ計算せんと??? 
2014/12/14 テスト自动化カンファレンス2014
…これ、ついででできる作業 ちゃうって!!!! こういう職業やで!!!!! 
2014/12/14 テスト自动化カンファレンス2014
自動化から自動家へ ~自動家を作る~ 
?テスト自動化を専業とする役割を組織の 中に作るパタン 
?テスト?実装?予算獲得などの自動化に 関するお仕事を引受け、他のエンジニア と協業する 
?ゆくゆくはテスト以外も自動化してい く! 
2014/12/14 テスト自动化カンファレンス2014
おさらい 
2014/12/14 テスト自动化カンファレンス2014 
導入のパタン 
初期実装のパタン 
普及?もしくは 終焉 
パタン 
アンチパタン
…というわけで 
?ざっくりとした説明では分からなかった所 を、専門家に詳しく解説してもらいます! 
?テクいやつ(『皮を剥く』を中心に) 
?石川さん!! 
?エモいやつ(『自動化を作る』を中心に) 
?三浦さん!! 
2014/12/14 テスト自动化カンファレンス2014

More Related Content

テスト自动化のパターンと実践