ソフトウェア・シンポジウム2016 in 米子

対話型アプリケーションを対象とした
多種多様な環境に対応できるテスト実行自動化に関する手法
安達 悠岩田 真治
丹野 治門
日本電信電話株式会社
adachi.yuu, iwata shinji s5, tanno.haruto@lab.ntt.co.jp
清水 誠介
今井 勝俊
株式会社 NTT データ
shimizusi, imaikt@nttdata.co.jp

要旨崮崡崰崡崗嵒崿崰‫ے‬崮崡崰崡崗嵒崿崰૗ఌਃચ

ソフトウェア開発において，1 つのテストスクリプトで様々なテスト実行環境に対応したテスト実行自動化を

崬嵤嵓$৷崮崡崰崡崗嵒崿崰

実現し，テスト実行自動化ツールの使い分けにより生ず崬嵤嵓‫ڶ‬‫ق‬崯崡崗崰崫崿岝:LQGRZV‫ك‬崬嵤嵓%৷
崮崡崰崡崗嵒崿崰

崬嵤嵓&৷崮崡崰崡崗嵒崿崰崬嵤嵓%‫ق‬崯崡崗崰崫崿岝0DF26‫ك‬崬嵤嵓&‫ق‬嵊崸崌嵓岝L26‫ك‬‫ے‬

るツール学習コストや，テスト実行環境ごとに生ずるテ

テスト実⾏

ストスクリプト作成の手間を削減する手法を提案する

テスト実⾏

テスト実⾏

図 1. 課題解決イメージ

1. はじめにプトを各種ツールに対する入力形式に変換するテストス
現在，ソフトウェア開発ではテスト工程の工数削減のクリプト変換機能の実現を目指す．
（図 1）

ためにテスト実行自動化ツール（以降，「ツール」）が利用されており，様々な特徴をもったツールが存在している．

3. 課題解決の方法

しかし，テスト実行環境（端末種別や OS など）によってツールの使い分けが必要なため（例えば Selenium[1] は前節で述べたテストスクリプト変換機能の実現にあた

デスクトップ端末向け，Appium[2] はモバイル端末 (iOS，り，まず，ツール個別に提供されているテストスクリプAndroid) 向け）ツールの学習コストがかかること（課題ト記述形式ではなく，共通的な記述形式を提供する．こ1），また，レスポンシブデザインの Web ページのようれにより，ツールの学習コストを削減する（課題 1 を解にテスト対象が 1 つであっても，テスト実行環境ごとに決）．次に，テスト実行環境に応じてツール個別に提供異なるテストスクリプトを作成する必要があること（課されているコマンドを 1 つに共通化して提供する．これ

題 2）が，テスト工程の工数削減の障壁となっている．

により，テスト実行環境ごとに発生するテストスクリプ
ト作成の手間を削減する（課題 2 を解決）．

2. 課題解決アプローチ
3.1. テストスクリプト記述形式の共通化
前節で述べた課題を解決するために，1 つのテストス
クリプトで多種多様なテスト実行環境に対応したテスト

課題 1 の解決において，共通的なテストスクリプト記実行自動化を目指す．具体的には，1 つのテストスクリ

述形式を提供するにあたり，単に共通化するだけでなく，

148

SEA

ソフトウェア・シンポジウム2016 in 米子崮崡崰૿ਊ঻峘੿ਛৱ౫崮崡崰崡崗嵒崿崰

表 1. キーワードによるテストスクリプトの記述例
Keyword

Object.H\ZRUG
LQSXW
LQSXW
SXVK

Parameter

typeid=user

taro

type

id=passwd

1234

click

id=login

HFWਝ৒崽崉崌嵓
3DUDPHWHULG XVHU
LG SDVVZGLG ORJLQ

WDUR

テスト実⾏環境：:LQGRZVL26E ⼊⼒崮崡崰崡崗嵒崿崰૗ఌਃચુৢ崛嵆嵛崱崮崡崰崡崗嵒崿崰૗ఌ崛嵆嵛崱૗ఌ嵓嵤嵓 D ఃஈ崯嵤崧嵁嵤崡F 出⼒

F 出⼒: QLQSXW
SXVK‫ؼ‬実⾏形式コマンド:LQGRZV
L26
崬嵤嵓$崬嵤嵓%W\SH
IOLFN
FOLFNWDS‫ؼ‬‫ؼ‬‫ؼ‬‫ؼ‬‫ؼ‬‫ؼ‬

Lより学習コストが低く，メンテナンス性の高いテストス
G

クリプト記述形式を採用するべきである．現在利用さ\SH nWDUR| |

G| :LQGRZV 崬嵤嵓$れているツールのテストスクリプト記述形式は，ソースコードによる記述とキーワードによる記述に大別される．
キーワードによる記述のほうが，コーディングスキルが| G

テスト実⾏nWDUR|‫پ‬嵔崡嵅嵛崟崾n

L26 崬嵤嵓%崯崞崌嵛峘ৃ

テスト実⾏

図 2. テストスクリプト変換機能の動作イメージ不要であり，テストスクリプトの可読性も高いため，課題

1 の解決には，キーワードによるテストスクリプト記述形式での共通化が有効と考えられる．表 1 にキーワードによるテストスクリプトの記述例を示す．オープンソー
スのテスト自動化フレームワークである Open2Test[3]では，キーワードによる記述形式で共通化されたテストスクリプトによって，Selenium や Unified Functional

ら実行形式のコマンドに変換および出力し（図 2（c）），
指定したテスト実行環境でツールによってテストが自動実行される．

4. おわりにTesting (UFT) [4] など各種ツールによるテスト実行が可能である．

3.2. コマンドの共通化

共通的なテストスクリプトの記述形式やコマンドを提供し，1 つのテストスクリプトで様々なテスト実行環境でのテスト実行自動化を可能とするテストスクリプト変換機能を提案した．現在，ソフトウェアテストの標準化

レスポンシブデザインの Web ページのようにテストの取り組みとして，ISO/IEC JTC1/SC7/WG26 では

対象が 1 つであっても，テスト実行時には，端末種別にキーワードによるテストスクリプト記述形式の共通化によって操作が異なるため（例えば，「押下」の操作は，デス向けた動きがあり [5]，本提案で提供するテストスクリ

クトップ端末では「クリック」，モバイル端末では「タップト記述形式を決めるにあたっての助力となっている．

プ」），端末種別ごとにテストスクリプトを作成するの今後，本提案の実現にあたり，テストを実行するツーが現状である．課題 2 を解決するため，テスト実行環境ルごとのコマンド変換ルールおよびテストスクリプト変に依存しない共通化されたコマンドを提供する．テスト

換機能の構築に向け，各種ツールベンダと連携していく

スクリプト変換機能でコマンドからテスト実行環境に対必要がある．

応した操作を解釈・変換し，各種ツールにて実行する．
図 2 にテストスクリプト変換機能の動作イメージを参考文献示す．予め，各種テスト実行環境に対するコマンド変換ルール（テスト実行環境に依存しない共通化されたコマンドからテスト実行環境に依存した実行形式のコマンドに変換するルール）をコマンド変換ルールデータベースに登録しておく（図 2（a））．テスト担当者は，共通化されたコマンドでテストスクリプトを作成し，実行先のテスト実行環境を指定してテストスクリプト変換機能へ入力する（図 2（b））．テストスクリプト変換機能は，コマンド変換ルールに基づいて共通化されたコマンドか[1] http://seleniumhq.org/[2] http://appium.io/[3] http://www.open2test.org/[4] http://www8.hp.com/jp/ja/softwaresolutions/unified-functional-automated-testing/[5] ISO/IEC/IEEE DIS 29119-5，Software and system engineering –Software testing– Part5:Keyworddriven testing，2015

149

SEA