第1回キーワード駆動テスト勉強会

21
+ 第 1 第 第第第第第第第第第第第第第 - 第第第第第第第第第第第第第 - 第第第 第第第第第 :( @kjstylepp

Upload: kinji-akemine

Post on 20-Jun-2015

3.567 views

Category:

Documents


0 download

DESCRIPTION

第1回キーワード駆動テスト勉強会

TRANSCRIPT

Page 1: 第1回キーワード駆動テスト勉強会

+

第 1 回 キーワード駆動テスト勉強会- キーワード駆動テストの定義 -

発表者:朱峰錦司( @kjstylepp )

Page 2: 第1回キーワード駆動テスト勉強会

+本日のお品書き

第 1 部 本勉強会の目的 キーワード駆動テストに関する調査報告 キーワード駆動テストのデモ

Open2Test デモ by あけみねきんぢ Selenium ラップツール by はたけやまさつき

第 2 部 第 2 回以降に向けての方向性議論

Page 3: 第1回キーワード駆動テスト勉強会

+本勉強会の目的

A.D.2013 2.6 10:42…

Page 4: 第1回キーワード駆動テスト勉強会

ハイ!よろこんで

Page 5: 第1回キーワード駆動テスト勉強会

+本勉強会の目的

ゴール 勉強会参加者が ISOWG で策定されるキーワード

駆動テストの記述についてレビューできるレベルまで本技術について理解を深めること

学習事項 既存文献等による本技術への理解 現状のサポートツールにおける実現範囲の理解 相性のよいテスト設計の検討

今日はこの 2つ

Page 6: 第1回キーワード駆動テスト勉強会

+世の中で語られているキーワード駆動テスト

とっかかりとして以下の文献を調査 ほぼ全て辰巳さんが列挙してくれた文献 ほぼ全て Dorothy の息のかかった文献

ID 文献名調査メン

バー(敬称略)

1 ソフトウェアテストの基礎 :ISTQB シラバス準拠 朱峰

2 Software Test Automation鈴木近江森

3 Experiences of Test Automation板垣早川

4EuroSTAR2006 Keyword-Driven Test Automation

朱峰

Page 7: 第1回キーワード駆動テスト勉強会

+調査の軸

定義

メリット/デメリット

キーワードの定め方/粒度

実現方法

Page 8: 第1回キーワード駆動テスト勉強会

+調査 (1)ソフトウェアテストの基礎 :ISTQB シラバス準拠

定義

テストスクリプト記述方法 5 レベルの最高レベル

データ駆動テストが実行ツールからデータを切り出すのに対し、キーワード駆動テストはデータのみでなくコントロールスクリプト相当の情報も切り出す手法

メリットスクリプトプログラミングスキルの低いメンバでも、テストデータだけではなく多種多様なテストシナリオを記述可能になる

デメリット 切り出された情報を実行ツールに渡す仕組みを作る高度なスキルをもった(少数先鋭の)メンバが必要

キーワードの粒度

言及なし

あらかじめ決めておく必要があるよね、という旨のみ

実現方法 言及なし

Page 9: 第1回キーワード駆動テスト勉強会

+調査 (2-1)Software Test Automation -Chapter3.2.5-

定義

キーワード駆動テストを実現する際に必要なコンポーネントは以下の 3 つ

A) コントロールスクリプト:複数のテストファイルを統括・制御

B) テストファイル:個々のテストシナリオ/データC) 補助スクリプト:実行ツールへの橋渡し

メリットテスト資産が特定のツールにロックインされないテスト対象のインタフェースの細かな仕様からテスト資産を独立させられる

デメリット 言及なし

キーワードの粒度

言及なし

実現方法

定義に関連するが、 A) が B) を C) に渡してテストが実行される流れ

B) はテーブルのようなモデルが想像される場合が多いが必ずしも限定はされない( = キーワードによって紐づく要素が異なっても問題ない)

Page 10: 第1回キーワード駆動テスト勉強会

+調査 (2-2)Software Test Automation -Chapter22-

定義

ActionWords 手法( since 1994 )

キーワード駆動テストの実現方法のひとつTestFrame とよばれることもある

メリット 言及なし

デメリット 言及なし

キーワードの粒度

言及なし

実現方法前述の B) を、キーとしての ActionWord (条件、操作、確認… etc )と、それにひもづく要素によって構成されるフレームで記述

Page 11: 第1回キーワード駆動テスト勉強会

+調査 (2-3)Software Test Automation -Chapter24-

定義

Business Object Scenarios 手法

キーワードを用いて記述されたシナリオ内にテストデータを内包する Window-centric Scenarios に対して、シナリオとデータを分離して扱うのがBusiness Object Scenarios。キーワード駆動とデータ駆動の合わせ技のようなもの。

メリット 言及なし

デメリット 言及なし

キーワードの粒度

言及なし

実現方法テストデータを Business Object 、キーワードにもとづくテストシナリオを Navigation とし、それをScenario Library で統括・制御

Page 12: 第1回キーワード駆動テスト勉強会

+調査 (3)Experiences of Test Automation

定義 言及なし

メリット

データ駆動と組み合わせることで高い保守性、移植性を伴ったテスト自動化が実現可能となる

ソフトウェアの完成を待たずにテスト資産を構築しはじめることができる

デメリット

ツール間の移植性を重視すると必然的に共通機能のみをサポートするようになりテスト対象独自の振る舞いを考慮しにくくなる

使い始めの時期は ROI が低い。(展開すればするほど、テスト資産の再利用が促進されればされるほどROI は高くなっていく)

キーワードの粒度

言及なし

実現方法 言及なし

Page 13: 第1回キーワード駆動テスト勉強会

+調査 (4)EuroSTAR2006 Keyword-Driven Test Automation

定義

キーワードを用いて自然言語のテスト手順に近い形でテストシナリオを記述し、それをスクリプトインタプリタが解釈し実行ツールに橋渡しする。

テストシナリオの作成は testers の仕事となり、 automators はインタプリタの構築に注力する。

メリット 高い保守性、移植性をもったテスト資産が構築できる

デメリット 凝ったインタプリタをつくればそれだけ柔軟性もあがるが、やりすぎると結果的に保守性をさげる

キーワードの粒度

様々な粒度が考えられるビジネス観点のテスト:抽象度の高いキーワードコンポーネントのテスト:抽象度の低いのキーワード

キーワード同士の親子関係を定義するのもあり

実現方法 ドキュメント内の概念図を参照

Page 14: 第1回キーワード駆動テスト勉強会

出典: EuroSTAR2006 Keyword-Driven Test Automation / Mark Fewster

Page 15: 第1回キーワード駆動テスト勉強会

+その他所感

メリットについて語られることは(当然ながら)多いが、デメリット、特に抽象度の高いキーワード扱うためのツール構築やメンテの大変さについてはあまり言及されていない

テストにおいては DRY(Don’t Repeat Yourself)の原則は有用ではないといわれることが少なくないが、これに対するアンチテーゼとなっている

キーワードの粒度(キーワード駆動テストを活用するテストレベル?)に関する議論が少ない いろんな粒度が考えられるよね、とは言われるがまだ

ベストプラクティスのようなものはないという印象

Page 16: 第1回キーワード駆動テスト勉強会

+

第 1 回 キーワード駆動テスト勉強会-Open2Test デモ -

発表者:朱峰錦司( @kjstylepp )

Page 17: 第1回キーワード駆動テスト勉強会

+Open2Test とは?

現在NTT データグループのインド企業が開発している OSS

メジャーな GUI テスト自動化ツールをサポートしているキーワード駆動テストサポートツール QuickTestProfessional Selenium TestPartner/SilkTest RationalFunctionalTester e-Tester OpenScript

デフォルトでは、キーワードは 1画面操作の単位で用意されている キーワードの抽象度の高さではなく、ツール移植性や記述容易性

をメリットとしてうたっている

Page 18: 第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

Page 19: 第1回キーワード駆動テスト勉強会

デモ

Page 20: 第1回キーワード駆動テスト勉強会

+今後の展望

データベースのアサーション 現状は画面のアサーションのみサポート

モデルベースドテストにもとづくテストシナリオの自動生成(テスト設計の自動化) Testing というよりかは Checking の効率化人はより高度な Testing に注力

Page 21: 第1回キーワード駆動テスト勉強会

+では、議論をしましょう!