Asiyan Automation Alliance 2015(3)「神は細部に宿りたまう」 きめ細やかなテスト自動化 by Frienldy
2015/6/27(土)にAsiyan Automation Alliance 2015という関西のテスト自動化カンファレンス的なイベントに参加しました。
参加したセッション
・午前中セッション:オープニングセッション
そんな自動化で大丈夫か? ~大丈夫だ、問題ない~
@みうみうこと三浦一仁氏(@kazuhito_m)
・午前中セッション
ギアと開発とわたし
@鈴木一裕氏(@kz_suzuki)
(STAR(テスト自動化研究会))
・テスト自動化セッション1
「神は細部に宿りたまう」
きめ細やかなテスト自動化 by Frienldy
@石川達也氏(@StoneGuitar777)
・テスト自動化セッション2
統合的でシームレスなテスト環境を提供する
@SRA 泉和行氏
・テスト自動化セッション3
しくったシステムテストを立て直す。しくらない画像認識自動化ツールsikuli
@徳隆宏氏(@tokutaka)
・午後まとめセッション
欧米風と関西風、2つのTest Automation Patterns
@前川博志氏(@posaune)、森田誠氏
今回は、上記青文字のセッションについて紹介します。
・テスト自動化セッション1 「神は細部に宿りたまう」 きめ細やかなテスト自動化 by Frienldy @石川達也氏(@StoneGuitar777)
※以下、Asiyan Automation Alliance 2015及びその前日に開催されたJaSST'15関西の内容も併せて紹介します。
(1)Friendlyのサイト
株式会社Codeer(コーディア)のサイトを参照。
http://www.codeer.co.jp/AutoTest
(2)自動化
- 繰り返し実行可能
- テスト作業の一部を自動化
しかし、全部が自動化できるわけではない。
(2-1)メリット
- これまで作った機能を壊していないか、開発期間中ずっと確認できる。
→回帰テストがいつでもいつまでも実施できる。 - 作ったテストを管理(把握)することで、漏れたテストに気づくことができる。
(2-2)自動テストを成功するには?
安定して高速に動作させることが必要。
(3)テスト自動化に必要な能力
(3-1)テスト設計能力
手動テスト(スクリプトテスト)と同じ。
(3-2)シナリオ作成能力
テストエンジニアは、プログラミングの専門ではないので、キャプチャリプレイを使うことが多い。
(4)課題
全員開発チームの場合、「工数が無い」「テスト自動化の方法が分からない」などの障壁がある。
(4-1)課題を克服する方法
テスト自動化プログラムをレイヤー化する。 →アプリドライバを利用。
(4-2)作成方針
操作とシナリオを分ける。
- 開発チーム
- 操作制御の処理を作成。
→アプリドライバは開発チームのリソースを大きく食わないように小さく作る。
- 操作制御の処理を作成。
- テストチーム
- テストシナリオ作成。
→テストシナリオは、if文がそれほど無い。
- テストシナリオ作成。
(4-3)実装
- キーマウスエミュレート
- 不安定になりがち。
- 入力ストリームを介すので、プログラムから使うには指定が困難。
- 解決方法として、内部APIを使う。
(5)デモ
下記サイトにデモの動画やスライドがあるので、参照下さい。
http://www.codeer.co.jp/AutoTest/movies
(6)Q&A
Q1:Friendlyが苦手なところは?
A1:苦手なところは、ドライバとWebアプリに対応していないこと。
Q2:テストシナリオの劣化を解消するコツは?
A2:下記4点。
- ソースコードのレビューで欠陥を見つける。
- 変な書き方できないようにしていて、if文など分岐するような書き方はあまりない。
- 似た操作は、共通化する。
- レビューでワイワイと提案とか議論するとよい。
所感
開発中の機器にパラメータ設定するとき、USWCやAuto It!でWindowsアプリケーションを自動操作していますが、他アプリケーションによる割込でWindowハンドル取得に失敗することが多々ありましたので、更なる手段としてhttp://www.codeer.co.jp/AutoTestや開発者blogを参考にしながら試行しようと思います。