JaSST’14  Tokyo
セッション D5-2  10:30～11:00(30分)

キーワード駆動テストを用いたGUIテスト自動化による工期短縮実現への取り組み
2014年3月8日
株式会社 NTTデータ
技術開発本部 プロアクティブ・テスティングCOE小林 由依

Copyright © 2014 NTT DATA Corporation

0.  自己紹介n 氏名Ø 小林 由依n 所属Ø 株式会社NTTデータ  技術開発本部
プロジェクトマネジメント・イノベーションセンタ
プロアクティブ・テスティングCOE 主任

n 活動・執筆歴
Ø GUIテスト自動化ツールの技術調査・開発・普及展開に従事Ø 書籍 「革新を続けるソフトウェア生産技術」 2013年10月発行
http://itpro.nikkeibp.co.jp/article/COLUMN/20130719/492667/
Ø NTT技術ジャーナル 2013年10月号「工期短縮の実現に向けたキーワード駆動テストへの取り組み」
http://www.ntt.co.jp/journal/1310/index.html
Copyright © 2014 NTT DATA Corporation2目次1.背景と解決方針
a.
b.
c.

背景
GUIテスト自動化の概要
キャプチャ・リプレイによる自動化の課題と解決方針

2. 提案手法
a.
b.
c.
d.
e.

工期短縮へのアプローチ
設計書を基に自動化準備する際の課題
キーワード駆動テストによる課題解決
資材作成時間短縮への取り組み
提案手法のまとめ

3. 適用効果検証
a.
b.
c.
d.

検証概要
検証結果
検証での課題
今後の展望

Copyright © 2014 NTT DATA Corporation

31.  背景と解決方針

Copyright © 2014 NTT DATA Corporation4

1-a.  背景
ü 工数削減/工期短縮のため、テスト自動化が求められている
ü GUIテスト自動化は特に適用事例が多い

GUIテスト

機能テストにおいて自動化している作業（出典：開発支援ツール徹底調査2011-テスト編-（ITPro））

GUI操作を伴うテスト実行

東京都    マウスクリック  江東区豊洲  キー入力  登録マウスクリック  Copyright © 2014 NTT DATA Corporation

5

1-b.  GUIテスト自動化の概要
ü 現在のGUIテスト自動化は、キャプチャ・リプレイによる自動化が主流である•

直感的であるため、容易に自動化可能【GUIテスト自動化とは】ü 記述された操作を自動実行するツールでテスト自動実行【GUIテスト自動化のメリット】
ü 同じ操作を繰り返し実行可能 → 工数削減、人的ミス抑制•

再テスト/回帰テストでの利用が効果的

人による操作を自動化ツールがスクリプトに記録  REC  東京都    江東区豊洲  登録

マウスクリック  キー入力  マウスクリック  自動化ツール  スクリプトを再生し、実行結果も記録    Win  XP  +  IE7Win  XP  +  IE8

東京都    東京都    江東区豊洲  江東区豊洲  登録Win  7  +  IE9

自動化ツール  Win  7  +  FF  東京都    東京都    江東区豊洲  江東区豊洲  登録

Copyright © 2014 NTT DATA Corporation登録PLAY  登録6

1-c.  キャプチャ・リプレイによる自動化の課題と解決方針【キャプチャ・リプレイによる自動化課題】

ü テスト対象アプリケーション完成後に操作を記録するため、大幅な工期短縮が難しい。
新規開発での工期手動で実施
キャプチャ・リプレイによる自動化

設計

製造

テスト実施・結果検証

設計

製造

自動化準備

実施

結果
検証

テスト対象アプリケーションが必須【解決方針】

ü 容易なテスト自動化を維持しつつ、工期短縮が可能なGUIテスト自動化の実現
Copyright © 2014 NTT DATA Corporation

7

2.  提案手法

Copyright © 2014 NTT DATA Corporation8

2-a.  工期短縮へのアプローチ
ü 設計情報を基に自動化準備を実施する• 製造工程と並行に実施することで、テスト工程での自動化準備期間を短縮【検討事項】
ü タスクの実施時期を早めることで、工期短縮できないか•

入力成果物による制約の排除

比較項目
キャプチャ・リプレイによる自動化

新規開発での工期
設計

製造

自動化準備

実施

結果
検証

テスト対象アプリケーションが必須

設計書を基に自動化

設計
設計書情報

Copyright © 2014 NTT DATA Corporation

製造
自動化準備

実施

結果
検証

工期短縮

9

2-b.  設計書を基に自動化準備する際の課題
ü 資材作成・レビューにコーディングスキルと多くの時間が必要である• 設計書に基づいて、ソースコード形式で記述する必要があるため【設計書を基に自動化する際の入出力成果物】
入力成果物

テスト手順

設計情報

オブジェクト名

オブジェクトのタイプ

物理項目名

定義属性

都道府県リスト

リストボックス

Pelistid

住所入力

テキストボックス

Addresstext

name

登録ボタン

ボタン

regibuttonid

1: 「都道府県リスト」から「東京」を選択する。
2: 「住所入力」に「江東区豊洲」を入力する。
3: 「登録ボタン」をクリックする。
…

出力成果物
import  org.junit.*;…
public  class  Sample  {    private  WebDriver  driver;    @Before    public  void  setUp()  throws  Exception  {         //事前処理driver  =  new  FirefoxDriver();}Copyright © 2014 NTT DATA Corporation@Test    public  void  testSample()  throws  Exception{      driver.get("http://www.sample.html");      driver.findElement(By.id(“Pelist”)).select(“東京”);  driver.findElement(By.name(“Addresstext”)).clear();          driver.findElement(By.name(“Addresstext”)).sendKeys(“江東区豊洲");                      driver.findElement(By.id(“regibutton")).click();}    @After    public  void  tearDown()  throws  Exception  {        //事後処理    …
102-c. キーワード駆動テストによる課題解決（１／３）	
ü コーディングスキルがなくても記述できる可読性の高い形式で自動化資材を作成するü キーワード駆動テストを利用する【採用理由】••

直感的なキーワードにより、可読性が高いノウハウがないユーザでもキーワードで容易に操作が記述できる【キーワード駆動テストとは】• 特定のキーワードを用いて，操作を外部ファイルに記述する自動化方法
スクリプト（操作内容）
キーワード1

キーワード2

入力

操作オブジェクト

豊洲  検索画面

ユーザ入力テキストクリック

http://www.TestPartner.com

ログインボタン

ユーザ名

オブジェクト情報
オブジェクト名

画面上の定義ユーザ入力テキスト

Id=UserTextbox

ログインボタン

Name=Loginbutton

Copyright © 2014 NTT DATA Corporation

検索

Input！
Click！

1. ツールに読込
2. 実行形式に変換	
11

2-c. キーワード駆動テストによる課題解決（２／３）	
ü Open2Test（OSS）を利用する【Open2Testとは】Excel形式の自動化資材でGUIテスト自動化を実現するフレームワーク• Excelで容易に操作を記述可能• ツールに依存しない形式でキーワードを記述可能

読込[スクリプト][オブジェクト情報]

ツール非依存（Excel形式）の自動化資材
Copyright © 2014 NTT DATA Corporation

変換

GUIテスト
自動化ツール  検索画面
http://www.TestPartner.com

実行

分類A
商品B

Open2Test

複数の自動化ツールに対応

検索

Click！
Click！
Click！

自動化ツール同等のテスト自動化を実現
12

2-c.  キーワード駆動テストによる課題解決（３／３）ü キャプチャ･リプレイによる自動化に比べ、自動化資材作成に時間がかかる
入力成果物

テスト手順

設計情報

オブジェクト名

オブジェクトのタイプ

物理項目名

定義属性

都道府県リスト

リストボックス

Pelistid

住所入力

テキストボックス

Addresstext

name

登録ボタン

ボタン

regibuttonid

1: 「都道府県リスト」から「東京」を選択する。
2: 「住所入力」に「江東区豊洲」を入力する。
3: 「登録ボタン」をクリックする。
…

出力成果物
オブジェクト情報

スクリプト（操作内容）

Object  Name

Object  Path

Keyword

ObjectDetail

都道府県リストPelistLaunchapp

http://www.sample.html

住所入力

Addresstext

Perform

listbox;都道府県リスト

select:東京

登録ボタン

regibutton

Perform

textbox:住所入力

set:江東区豊洲

Perform

button;登録ボタン

click

Copyright © 2014 NTT DATA CorporationAction13

2-d.  資材作成時間短縮への取り組み（１／３）	
ü 自動化資材を作成する際の機械的な作業にかかる時間を削減する
具体的には…
【削減対象作業①】
設計書に記載されたオブジェクト情報をOpen2Testの記述形式で記述する

オブジェクト情報を自動抽出【削除対象作業②】
スクリプトを作成する際に決まった記述を繰り返し入力する• 頻繁に使用する操作を毎回手動で記述する

スクリプトを一部自動作成
Copyright © 2014 NTT DATA Corporation14

2-d.  資材作成時間短縮への取り組み（２／３）ü 画面設計書やWeb画面（URL）からのオブジェクト情報自動抽出により資材作成工数を削減する
Web画面（URL）

画面設計書

マクロ

解析ツール

A:リストボックス:ID=idA
B:テキストボックス:name=nB……

オブジェクト情報
Copyright © 2014 NTT DATA Corporation15

2-d.  資材作成時間短縮への取り組み（３／３）üスクリプトの一部自動生成によりスクリプト記述工数を削減する【作成中のスクリプト】
登録済みオブ
ジェクト一覧

登録済みオブジェクト情報から、スクリプトの雛型を作成

オブジェクト情報から利用できる操作を選択・挿入使用できる操作をクリックで選択使用できるキーワード群一覧

Copyright © 2014 NTT DATA Corporation16

2-e. 提案手法のまとめ	『キーワード駆動テスト』＋  『資材作成自動化』により取組方針を実現

設計実施

製造

結果検証

Open2Test実行

自動化準備
設計情報
オブジェクト名

物理
項目名

xxリスト

Pelistオブジェクト スクリプト
情報作成
作成

スクリプト修正ü  キーワード駆動テストによる工期短縮！
ü  資材作成自動化による作業時間短縮！

Copyright © 2014 NTT DATA Corporation

17

3.  適用効果検証

Copyright © 2014 NTT DATA Corporation18

3-a.  検証概要  提案手法に示すGUIテストの自動化の、「自動化容易性の維持」および「工期短縮」に対する有効性を以下の方法にて検証ü 「自動化容易性の維持」検証
実際に自動化を行い、キャプチャ・リプレイツール（※）と必要な工数を比較※  Selenium  IDE（OSS）を使用

ü 「工期短縮」検証
テスト対象アプリケーションを用いず、設計書のみで実施可能な作業の工数を工期短縮として検証
工数計測単位  自動化準備  オブジェクト情報作成    スクリプト作成    入力データ作成    スクリプトテスト    テスト実施    結果検証  Copyright © 2014 NTT DATA Corporation19

3-b.  検証結果

30	  従来手法とほぼ同等の工数で	  テスト自動化を実現！	

【検証対象システム】
Webシステムにおける1画面遷移テスト（135テスト観点数、11スクリプト）

工数内訳	
25	  結果検証	工数(時間)	

テスト実施	

20	  スクリプトテスト 	
自動化準備-­‐入力データ作成 	

15	  

自動化準備-­‐スクリプト作成 	
自動化準備-­‐オブジェクト情報作成 	

10	  5	  0	  従来手法（キャプチャ・リプレイによる自動化）	

製造工程と並行した作業で	  工期短縮可能！	
提案手法	

従来手法	  提案手法	
（キャプチャ・リプレイによる自動化）	
Copyright © 2014 NTT DATA Corporation20

3-c.  検証での課題 （1/2）
【課題1】 スクリプト作成時間の増加
ü 設計書や手順書のオブジェクト名を確認しながら、スクリプトを作成するため、想定以上の時間がかかる。
ü 画面がないため、操作手順を正確にイメージする必要がある。
自動化資材作成に対する入力成果物
設計情報
オブジェクト名

物理項目名

都道府県リストPelist

住所入力

Addresstext

登録ボタン

regibutton

文字だけではイメージしにくい
東京都    江東区豊洲  登録

テスト手順
1: 「都道府県リスト」から「東京」を選択する。
2: 「住所入力」に「江東区豊洲」を入力する。
3: 「登録ボタン」をクリックする。

Copyright © 2014 NTT DATA Corporation21

3-c.  検証での課題 （2/2）
【課題2】  設計情報の制約ü オブジェクト情報が設計時に一意に定義されている必要がある。
テスト対象アプリケーション
テキストボックス1
Id  =  textbox

命名規約を策定していなかったから1つのテキストボックスしか操作できない！！

テキストボックス2
Id  =  textbox
テキストボックス3
Id  =  textbox

Copyright © 2014 NTT DATA Corporation22

3-d. 今後の展望	ü自動化準備工数の更なる削減• 検証での課題１を解決【検討案】テストケース自動生成ツールと連携し、テストケースからスクリプトを自動生成ü提案手法を実現できるプロセス整備• 検証での課題２を解決【検討案】設計段階での検討事項をガイドライン、ＴＩＰＳ集として整備

ü検証プロジェクトの拡大• 提案手法に適した開発特性を明確化

Copyright © 2014 NTT DATA Corporation

23

Copyright © 2011 NTT DATA Corporation

Copyright © 2014 NTT DATA Corporation