第1回キーワード駆動テスト勉強会
DESCRIPTION
第1回キーワード駆動テスト勉強会TRANSCRIPT
+
第 1 回 キーワード駆動テスト勉強会- キーワード駆動テストの定義 -
発表者:朱峰錦司( @kjstylepp )
+本日のお品書き
第 1 部 本勉強会の目的 キーワード駆動テストに関する調査報告 キーワード駆動テストのデモ
Open2Test デモ by あけみねきんぢ Selenium ラップツール by はたけやまさつき
第 2 部 第 2 回以降に向けての方向性議論
+本勉強会の目的
A.D.2013 2.6 10:42…
ハイ!よろこんで
+本勉強会の目的
ゴール 勉強会参加者が ISOWG で策定されるキーワード
駆動テストの記述についてレビューできるレベルまで本技術について理解を深めること
学習事項 既存文献等による本技術への理解 現状のサポートツールにおける実現範囲の理解 相性のよいテスト設計の検討
今日はこの 2つ
+世の中で語られているキーワード駆動テスト
とっかかりとして以下の文献を調査 ほぼ全て辰巳さんが列挙してくれた文献 ほぼ全て Dorothy の息のかかった文献
ID 文献名調査メン
バー(敬称略)
1 ソフトウェアテストの基礎 :ISTQB シラバス準拠 朱峰
2 Software Test Automation鈴木近江森
3 Experiences of Test Automation板垣早川
4EuroSTAR2006 Keyword-Driven Test Automation
朱峰
+調査の軸
定義
メリット/デメリット
キーワードの定め方/粒度
実現方法
+調査 (1)ソフトウェアテストの基礎 :ISTQB シラバス準拠
定義
テストスクリプト記述方法 5 レベルの最高レベル
データ駆動テストが実行ツールからデータを切り出すのに対し、キーワード駆動テストはデータのみでなくコントロールスクリプト相当の情報も切り出す手法
メリットスクリプトプログラミングスキルの低いメンバでも、テストデータだけではなく多種多様なテストシナリオを記述可能になる
デメリット 切り出された情報を実行ツールに渡す仕組みを作る高度なスキルをもった(少数先鋭の)メンバが必要
キーワードの粒度
言及なし
あらかじめ決めておく必要があるよね、という旨のみ
実現方法 言及なし
+調査 (2-1)Software Test Automation -Chapter3.2.5-
定義
キーワード駆動テストを実現する際に必要なコンポーネントは以下の 3 つ
A) コントロールスクリプト:複数のテストファイルを統括・制御
B) テストファイル:個々のテストシナリオ/データC) 補助スクリプト:実行ツールへの橋渡し
メリットテスト資産が特定のツールにロックインされないテスト対象のインタフェースの細かな仕様からテスト資産を独立させられる
デメリット 言及なし
キーワードの粒度
言及なし
実現方法
定義に関連するが、 A) が B) を C) に渡してテストが実行される流れ
B) はテーブルのようなモデルが想像される場合が多いが必ずしも限定はされない( = キーワードによって紐づく要素が異なっても問題ない)
+調査 (2-2)Software Test Automation -Chapter22-
定義
ActionWords 手法( since 1994 )
キーワード駆動テストの実現方法のひとつTestFrame とよばれることもある
メリット 言及なし
デメリット 言及なし
キーワードの粒度
言及なし
実現方法前述の B) を、キーとしての ActionWord (条件、操作、確認… etc )と、それにひもづく要素によって構成されるフレームで記述
+調査 (2-3)Software Test Automation -Chapter24-
定義
Business Object Scenarios 手法
キーワードを用いて記述されたシナリオ内にテストデータを内包する Window-centric Scenarios に対して、シナリオとデータを分離して扱うのがBusiness Object Scenarios。キーワード駆動とデータ駆動の合わせ技のようなもの。
メリット 言及なし
デメリット 言及なし
キーワードの粒度
言及なし
実現方法テストデータを Business Object 、キーワードにもとづくテストシナリオを Navigation とし、それをScenario Library で統括・制御
+調査 (3)Experiences of Test Automation
定義 言及なし
メリット
データ駆動と組み合わせることで高い保守性、移植性を伴ったテスト自動化が実現可能となる
ソフトウェアの完成を待たずにテスト資産を構築しはじめることができる
デメリット
ツール間の移植性を重視すると必然的に共通機能のみをサポートするようになりテスト対象独自の振る舞いを考慮しにくくなる
使い始めの時期は ROI が低い。(展開すればするほど、テスト資産の再利用が促進されればされるほどROI は高くなっていく)
キーワードの粒度
言及なし
実現方法 言及なし
+調査 (4)EuroSTAR2006 Keyword-Driven Test Automation
定義
キーワードを用いて自然言語のテスト手順に近い形でテストシナリオを記述し、それをスクリプトインタプリタが解釈し実行ツールに橋渡しする。
テストシナリオの作成は testers の仕事となり、 automators はインタプリタの構築に注力する。
メリット 高い保守性、移植性をもったテスト資産が構築できる
デメリット 凝ったインタプリタをつくればそれだけ柔軟性もあがるが、やりすぎると結果的に保守性をさげる
キーワードの粒度
様々な粒度が考えられるビジネス観点のテスト:抽象度の高いキーワードコンポーネントのテスト:抽象度の低いのキーワード
キーワード同士の親子関係を定義するのもあり
実現方法 ドキュメント内の概念図を参照
出典: EuroSTAR2006 Keyword-Driven Test Automation / Mark Fewster
+その他所感
メリットについて語られることは(当然ながら)多いが、デメリット、特に抽象度の高いキーワード扱うためのツール構築やメンテの大変さについてはあまり言及されていない
テストにおいては DRY(Don’t Repeat Yourself)の原則は有用ではないといわれることが少なくないが、これに対するアンチテーゼとなっている
キーワードの粒度(キーワード駆動テストを活用するテストレベル?)に関する議論が少ない いろんな粒度が考えられるよね、とは言われるがまだ
ベストプラクティスのようなものはないという印象
+
第 1 回 キーワード駆動テスト勉強会-Open2Test デモ -
発表者:朱峰錦司( @kjstylepp )
+Open2Test とは?
現在NTT データグループのインド企業が開発している OSS
メジャーな GUI テスト自動化ツールをサポートしているキーワード駆動テストサポートツール QuickTestProfessional Selenium TestPartner/SilkTest RationalFunctionalTester e-Tester OpenScript
デフォルトでは、キーワードは 1画面操作の単位で用意されている キーワードの抽象度の高さではなく、ツール移植性や記述容易性
をメリットとしてうたっている
+Open2Test の入力成果物
自動実行のためには主に 3 種類の成果物が必要 テストシナリオ
ユーザの GUI操作や結果の検証方法の情報
オブジェクトマップ シナリオ記述に使う GUI オブジェクトの名前(論理名)と実際の実装での名前(物理名)のマッピング情報
入力データテーブル 画面に渡すパラメータ情報 テストシナリオ内に直接書くことも可能だが一般的には外出しする
特にデータバリエーションテストの際に有効
Run Keyword ObjectDetails Action
rlaunchapp http://harel.nttdata.co.jp/wact/inputProc/inputUrlBL.do
r perform Textbox;InputUrlBox cleartextr perform Textbox;InputUrlBox set:dt_urlr check Button;RuleButton visible:true
Sno Object Name Object Type Parent ObjectPath
1 HarelPage Page 0name=HAREL
2 InputUrlBox Textbox 1 name=url3 RuleButton Button 1 ID=g-navi03
urlhttp://www.nttdata.co.jp
http://www.google.co.jp
デモ
+今後の展望
データベースのアサーション 現状は画面のアサーションのみサポート
モデルベースドテストにもとづくテストシナリオの自動生成(テスト設計の自動化) Testing というよりかは Checking の効率化人はより高度な Testing に注力
+では、議論をしましょう!