from NTTデータ

工期短縮の実現に向けたキーワード駆動テストへの取り組み
大規模化するシステムに対して，限られた期間・コストの中で多くのテストを効率的に実施するために，テストの自動化が注目されています．NTTデータでは，各テスト工程におけるテスト項目作成やテスト実行など，さまざまな作業の自動化に関する研究開発を幅広く行っています．ここでは，キーワード駆動テストによるGUI（Graphical User Interface）テスト自動化に焦点を絞って，NTTデータにおける取り組みを紹介します．

テスト自動化の現状

プチャ・リプレイによる自動化が主流となっています ．
キャプチャ・リプレイによる自動化では，まずキャプチャ

近年，システムは大規模化かつ複雑化の一途をたどっ機能を用いて，テスト手順に従ったGUI操作を記録するており，それに応じて必要なテストも増大しています．

ことで，自動的にスクリプトを作成します．その後，回その一方で，ビジネスの急激な変化に低コストかつ迅速帰テストや再テストを実施する際に，リプレイ機能を用に対応するため，開発コストの削減，開発期間の短縮もいて作成したスクリプトを実行することで，前回のテス同時に求められています．そこで，限られたコスト，期トを自動的に再現できます（図１）．なお，テスト結果を間の中でいかに多くのテストを効率良く実施するかとい確認するために，作成したスクリプトに証跡取得などのう課題に対して，テストの自動化が注目されています．

手順を必要に応じて追加することで，結果検証を自動化

関連した動きとしては，『テストツールまるわかりガイドすることも可能です．

(1)（入門編） 』の公開や『Test Automation Body ofKnowledge（TABOK）(2)』の策定など，国内外で顕在化しつつあります．

キャプチャ・リプレイによる自動化では，一度手動でテストを実行すれば，同じ操作のテスト実行を手軽に再現でき，以下の効果が得られます．

NTTデータでは，テスト項目作成からテスト実行・結果検証までのテスト工程にかかわるさまざまな作業の自・再テスト，回帰テストなど，繰り返し実施するテストの工数削減動化に取り組んでおり，多数のプロジェクトで工数削減・テスト実施時における人的ミスの削減効果を挙げています．そして，GUI（Graphical User

しかし，キャプチャ・リプレイによる自動化では，「テ＊Interface）テスト に対しても自動化（GUIテスト自動スト工程開始後にGUIテスト自動化を実施するための準化）が広く普及していますが，その一方で既存の自動化備を行う必要があり，大幅な工期短縮が難しい」という方法では工数削減はできても，大幅な工期短縮は見込め課題があります．具体的には，キャプチャ・リプレイにないという課題に直面しています．ここでは，既存のよる自動化では，製造完了後の対象システムに対して一GUIテスト自動化方法の概要と課題を解説するとともに，度手動でテストを実行し，スクリプトを作成しなければ当該課題の解決が期待されるキーワード駆動テストに関すならないため，テスト工程期間中に，操作を手動で実施るNTTデータの取り組みを紹介します．

し，スクリプトを作成する期間を設ける必要があります．
さらに，「開発特性に応じて選定したツールごとに利用キャプチャ・リプレイによる自動化の概要と課題方法を習得する期間が必要となる」という課題もあります．キャプチャ・リプレイによる自動化を実現するツールには，OSS（Open Source Software）や商用製品

現在，GUIテスト自動化の手段として，直感的なキャなど数多くのツールが存在し，各ツールの機能や自動化できる対象システム，スクリプトの記述形式はそれぞれ＊ GUIテスト：テスト対象システムのGUIに対して，ユーザが操作を実施し，システムの正当性を検証するテスト．

34

NTT技術ジャーナル 2013.10

異なります．そのため，各プロジェクトで，開発特性を考慮したうえで選定したツールごとに利用方法を習得し②記録したユーザ操作をそのまま実行●①ユーザ操作を記録
●

PLAY

●REC

マウスクリック

東京都
江東区豊洲

キー入力

登録

マウスクリック

自動化ツール

マウスクリック

自動化ツール

江東区豊洲

キー入力

登録

マウスクリック

リプレイ機能

東京都

キャプチャ機能

読み込むスクリプト

操作内容を記録したスクリプト
1:Listbox.SetList ( 東京都 )2:Textbox.SetText ( 江東区豊洲 )3:RegisterButton.Click

図１

1:Listbox.SetList ( 東京都 )2:Textbox.SetText ( 江東区豊洲 )3:RegisterButton.Click

キャプチャ・リプレイによる自動化イメージ

なければなりません．に記述できるため，システムの製造工程と並行して，GUIテスト自動化を実現するスクリプトを作成できます．

キーワード駆動テストの概要

したがって，製造工程期間中にスクリプトを作成できれば，テスト対象が完成した直後からGUIテストを自動実

前述の課題を解決する方法として，キーワード駆動テ(3)行でき，大幅な工期短縮が見込めます．

．キーワード駆動テストでは，また，キーワード駆動テストでは，直感的に分かりや特定のキーワードを用いて，ユーザ操作を外部ファイル

すいキーワードでユーザ操作を記述できるため，ツールに記述します．テスト実行時には，外部ファイルに記述ごとに利用方法を習得する期間も軽減されます．

ストが注目されています

されたキーワードをツールが解釈して，ユーザ操作を再現します．例えば，操作内容に「 locateText
東区豊洲を入力に江する」と記述されている場合，ツーNTTデータにおけるキーワード駆動テストへの取り組み

ルがテキストボックス名や操作内容，データを解釈して，検索操作を再現します（図２）．
キーワード駆動テストを用いると，キャプチャ・リプ
レイによる自動化では難しい大幅な工期短縮が期待でき

NTTデータでは，前述のキーワード駆動テストを実現する取り組みとして，OSSのOpen2Test(4)を用いた自動化の研究開発を行っています．

ます．キーワード駆動テストでは，テスト対象が未完成

Open2Testとは，キーワード駆動テストを実現するの場合でも，設計情報を基にキーワードを外部ファイルためのフレームワークであり，GUIテスト自動化を実現

NTT技術ジャーナル 2013.1035

from NTTデータするツールと組み合わせて利用されます．Open2Testの操作を実施します．例えば，図２で示した操作を実現を用いてテストを自動実行する場合，まず表形式の外部する場合，Open2Testで使用するスクリプトは図３とファイルに記述されたスクリプトの内容をOpen2Testなります．

がツール向けに解釈し，ツールがテスト対象システムへ

図３の例からも分かるように，Open2Testで使用す①スクリプト（ユーザ操作内容）●③ツールがキーワードを変換してテキスト実行●

キーワード１

キーワード２

操作オブジェクト

1:UserText.SetList (東京都)

入力

東京都

prefecturelist

2:PasswordText.SetText (江東区豊洲)

入力

江東区豊洲

locateText

クリック

3:LoginButton.Click②ツールに読み込み●

RegisterButton

マウスクリック

東京都

図２江東区豊洲

キー入力

登録マウスクリック

キーワード駆動テストのイメージ① Open2Testのスクリプト●
RunKeyword

Object Details

Actionr

perform

Combobox;都道府県

select:東京都

東京都

rperform

Text box;住所

set:江東区豊洲

江東区豊洲

キー入力

r

perform

Button;登録ボタン

click

登録

マウスクリック

図３36②自動化する操作●

NTT技術ジャーナル 2013.10

Action2

Comments

Open2Test のスクリプト

マウスクリックるスクリプトの作成には，プログラミングスキルなどは不要で，キーワード駆動テストを容易に実施できるうえ，工期短縮を実現できます．
NTTデータでは，プロジェクトが容易かつ効果的にキーワード駆動テストを実現するため，研究開発と合わせて，支援ツールの開発にも取り組んでいます．支援ツールで■参考文献（1） ASTERテストツールWG： テストツールまるわかりガイド（入門編），
NPO法人ソフトウェアテスト技術振興協会，2012.
（2） http://www.automatedtestinginstitute.com/home/index.php?option=com̲content&view=article&id=1352&Itemid=189（3） 西： ソフトテストを啓蒙SQuBOKにまとめ日本品質を世界に， 日経コンピュータ，６月13日号，p.86，2013．
（4） http://www.open2test.com/（5） http://www.nttdata.com/jp/ja/news/release/2013/062700.html

は，スクリプトに記述するキーワードなどを自動で入力したり，リストで提示します．これにより，Open2Testの記述形式に関する知識がなくても，容易にスクリプトを作成できます．
また，Open2Testおよび支援ツールを用いたキーワー
ド駆動テストについて，実プロジェクトにおいて適用検証も実施しており，キャプチャ・リプレイによる自動化◆問い合わせ先NTTデータ
技術開発本部
プロアクティブ・テスティングCOE
TEL 050-5546-9972
FAX 03-3532-0492
E-mail tpi-staff kits.nttdata.co.jpと同程度の工数を維持しつつ，工期短縮が実現できることを確認しています．現在，適用検証時の問題点などを踏まえて，より効果的な導入に向けて，支援ツールの拡張や導入手順の整備を進めています．

今後の展望
ここでは，キーワード駆動テストを中心にテスト実行の自動化に関する紹介を行いましたが，テスト設計の自動化に関する研究開発も広く進められています．そして，それぞれ独立した自動化に関する研究成果を連携させて，さらに効率化を図ることが，プロジェクトから強く求められています．NTTデータにおいても，現在Open2Testを用いたキーワード駆動テストと，結合テスト項目自動生成ツールを連携して，テスト項目作成からテスト実行までを自動化するツール・手順を研究開発しており，さらなる工期短縮，工数削減の実現を目指しています．
NTTデータでは，NTTデータグループ内での共同研究を通して，キーワード駆動テストの実現に向けた研究開発・環境整備とともに，これらの取り組みを国内外に広く展開していきます(5)．

NTT技術ジャーナル 2013.1037