チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net...
Transcript of チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net...
![Page 1: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/1.jpg)
チームで成功させるシステムテスト⾃動化by Friendly
株式会社Codeer石川達也http://www.codeer.co.jp/
![Page 2: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/2.jpg)
⽯川達也
株式会社Codeer代表取締役
Microsoft MVP for .Net
Windowsアプリテスト⾃動化歴10年
Windowsアプリ操作⽤ライブラリFriendlyの開発者
⾃⼰紹介
http://www.codeer.co.jp/
http://ishikawa-tatsuya.hatenablog.com/
![Page 3: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/3.jpg)
Friendly紹介
じわじわ来てます。⼀部上場企業様でも続々と採⽤中
先進的な設計・検証技術の適⽤事例報告書2014年度版に事例掲載予定
![Page 4: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/4.jpg)
アメリカでも⼤好評でした!
Friendly紹介
Microsoft MVP Showcase 2位!http://blogs.msdn.com/b/mvpawardprogram/archive/2014/11/04/mvp-showcase-winners.aspx
![Page 5: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/5.jpg)
5
アジェンダ
・テスト⾃動化とは
・テスト⾃動化に必要な能⼒
・テスト⾃動化プログラムのレイヤ化
・アプリケーションドライバの実装
![Page 6: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/6.jpg)
6
テスト⾃動化とは
About test autom ation.
![Page 7: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/7.jpg)
7
テスト⾃動化
膨⼤なコストが必要とされるテスト作業の
「何割か」
を⾃動化することです。
全てを置き換えるものではない。非現実的な期待をしない。
About test autom ation.
![Page 8: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/8.jpg)
⾃動化しておけば、テストは繰り返し実⾏可能です。
【品質状況の把握】⽇々、指定のテストケースに関しては、リスクが排除されていることが、分かります。つまり、品質の状況を把握できるのです。これは⾃動化した最⼤のメリットです。
デグレードのリスク回避
About test autom ation.
![Page 9: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/9.jpg)
機
能1実
装
機
能2実
装
機
能3実
装
機
能4実
装
機
能5実
装
機
能6実
装
機
能7実
装
機
能8実
装
実
装
完
了
一回当たりテスト件数
開発期間→
自動 手動
テスト⾃動化のメリット
⼿動は、⼀度やったら終わりですが、⾃動化しておけば、それは開発期間中ずっと実⾏されデグレードのリスクを回避することができます。テストの負荷分散にもつながります。
手動の場合、最後に頑張って再度一通り見直す作業が入る
テストの蓄積と、テスト実⾏作業の負荷分散
About test autom ation.
![Page 10: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/10.jpg)
10
・リリース後に重要な機能で不具合が発覚!その機能は網羅的に⾃動テストを付けていたが、漏れていたケースがあった。
・漏れていた観点を元にテスト付け⾜し。
・修正後テスト実⾏→既存の⾃動テストでNG発⾒
→作ってて良かった!
・再修正→全てのケースをクリア→無事リリース!
つい先⽇も、こんなことがありました。
About test autom ation.
![Page 11: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/11.jpg)
そもそも網羅性の⾼いテストが⾃動化されている機能だった。
11
これが可能だったのは
1 6 11 16 21 26 31 36蓄積され続けたテストケースがあった。
安定動作する⾃動テストだった。
About test autom ation.
テストケース(網羅性)が把握できていて漏れが⾒つかった場合、すぐに改善出来た。
![Page 12: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/12.jpg)
12
テスト⾃動化に必要な能⼒
Ability for test autom ation.
![Page 13: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/13.jpg)
13
システムテスト⾃動化には、⼆つの能⼒が必要です。
テスト設計能⼒
テストシナリオ作成能⼒
Ability for test autom ation.
![Page 14: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/14.jpg)
テスト設計能⼒
・基本は⼿動の場合と同じ
・開発側からの視点を追加し、グレイボックス的なメニューもあればより効率的
なんにせよ、既にできているはずですよね?
Ability for test autom ation.
![Page 15: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/15.jpg)
15
テストシナリオ作成能⼒
ココがボトルネックになっている!
Ability for test autom ation.
![Page 16: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/16.jpg)
16
全部テストチームでやる?
・キャプチャリプレイ使う?・スクリプトの整形は?・トラブル発⽣したら?・開発側が内部的に何か変えたときのメンテは?
無理じゃない?
Ability for test autom ation.
テストシナリオ作成能⼒
![Page 17: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/17.jpg)
17
全部開発チームでやる?
・調べたらできるかもしれんけど・・・・時間ない・量は作れない・とは⾔え、やっぱやり⽅わからん
なしではないけど、もっといい手段ない?
Ability for test autom ation.
テストシナリオ作成能⼒
![Page 18: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/18.jpg)
18
プロジェクトで⼀丸となって取り組めば何とかなるのでは?
Ability for test autom ation.
![Page 19: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/19.jpg)
19
テスト⾃動化プログラムをレイヤ化する
Separate the test autom ation program to layer.
![Page 20: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/20.jpg)
20
モヤモヤしたテストシナリオ
複雑な操作、内部仕様(コントロールのIDなど)、テスト仕様
が混沌と書かれている
メンテも量産ももちろん分業も無理
Separate the test autom ation program to layer.
![Page 21: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/21.jpg)
21
アプリケーションドライバを使ってレイヤ化したテストシナリオ
テストシナリオ.dll
テストプロセス
① ②アプリケーションドライバ.dll
操作とテストが分離されている
Separate the test autom ation program to layer.
![Page 22: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/22.jpg)
・・・・・・
アプリケーションドライバ
アプリケーションをテストシナリオから操作するためのインターフェイス操作に関する複雑さを隠蔽する。開発チームが担当。
アプリケーションドライバ テストシナリオ
Separate the test autom ation program to layer.
![Page 23: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/23.jpg)
・・・・・・
テストシナリオ
外部仕様のみで記述される。基礎的なプログラムの知識のみで記述可能。テストシナリオはそれなりのボリュームになる。主にテストチームが担当。
アプリケーションドライバ テストシナリオ
Separate the test autom ation program to layer.
![Page 24: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/24.jpg)
ボリュームイメージ
・・・・・・・・・・・・
アプリケーションドライバ
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・・・・
・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
シナリオ
アプリケーションドライバは画⾯、機能の実装時に付け⾜し実装していく
プロダクトに特化した⾼品質なインターフェイスを使うことでシナリオを容易に実装
小
大
Separate the test autom ation program to layer.
![Page 25: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/25.jpg)
25
デモ
https://github.com/Ishikawa-Tatsuya/HandsOn14
アプリケーションドライバを使って、テストチームがテストシナリオを書く
Separate the test autom ation program to layer.
![Page 26: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/26.jpg)
26
アプリケーションドライバの実装
Im plem ents of AppDriver.
![Page 27: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/27.jpg)
27
とは⾔え、別プロセス操作。
どうすれば?
しかも低コストで作成しなければならない。
Im plem ents of AppDriver.
![Page 28: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/28.jpg)
⼀般的には
キーマウスエミュレート→不安定、プログラムから使うには指定が困難。
Im plem ents of AppDriver.
テストスクリプト
---------
⼊⼒ストリーム
UIオートメーション→難易度が⾼い。⾃由度が低い。
テストスクリプト
------
Library
![Page 29: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/29.jpg)
6Im plem ents of AppDriver.
内部APIは、ここでは通常の実装時に使⽤、作成するAPIを指します。
⾮常に強⼒です。
確実に動作します。
【提案】 内部APIを使いましょう!
プロダクト実装時の知識を活かせるのです!
![Page 30: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/30.jpg)
30
Windowsアプリで内部API操作はこれ!
Is a magical library!It break through the walls of processes.
Win32、WinForms、WPF対象プロセスに仕込みなしで内部APIを呼べる魔法のライブラリ!
Im plem ents of AppDriver.
![Page 31: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/31.jpg)
31
デモ
Im plem ents of AppDriver.
![Page 32: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/32.jpg)
6
便利なライブラリも多数提供実装コストをさらに軽減
Friendly
Friendly.Windows
Friendly.Windows.Grasp
Friendly.Windows.NativeStandardControls(Win32)
Friendly.FormsStandardControls(WinForms)
Friendly.WPFStandardControls(WPF)
Friendly.PinInterface
Friendlyはアプリケーションドライバを実装するのに使います。
![Page 33: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/33.jpg)
システムテストは団体戦です。→あと⻑期戦です。
![Page 34: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/34.jpg)
34
テスト⾃動化⽀援業務承らせていただきます。
・コンサルティング・トレーニング・テスト⾃動化受託・プロダクト開発+テスト⾃動化受託
ご好評いただいております。まずは、御社の開発状況を伺わせてください。
![Page 35: チームで成功させるシステムテスト⾃動化 by Friendly · Microsoft MVP for .Net Windowsアプリテスト⾃動化歴10年 ... 11/04/mvp-showcase-winners.aspx. 5](https://reader031.fdocumentos.tips/reader031/viewer/2022011909/5f651370ca64d465734bd463/html5/thumbnails/35.jpg)
35
ご清聴ありがとうございました!
【Picture】Dawn Huczek