SQiPシンポジウム2009

目次

コストを考慮した自動テストの導入と維持

１． 背景～フリーウェアを利用した低コストのテスト自動化の実現～

２． テスト自動化のコストとは？
３ テスト自動化のコストを下げるには？
３．
４． テストツール

株式会社フォーラムエイト TestGroup

５． 課題○古江 智和

2

背景（１）

背景（2）

・ 2002年 リリース前の自社開発製品をターゲットに、自動テストをメインに実施する部署としてTestGroupが発足。
ンに実施する部署としてTestGroupが発足

テスト自動化を通して発生する様々なコストとリスク
短期間で数種類のテストツールを検討

・ 短期間で数種類のテストツールを検討した結果、Mercury Interactive社のWinRunnerを選択
本格運用開始本格運用開始。

試行錯誤を繰り返して現在の業務に収束

・ 様々な試行錯誤を繰り返しつつ自動テスト自体はほぼ現在の運用形態に近い内容に収束したがテストツ ルの特性上対処運用形態に近い内容に収束したがテストツールの特性上対処できない不満や要望も残った。

テストツールの特性上対処できない不満や要望
etc…

・ 2007年 フリーウェアであるUWSCでテストを作成する機会が発生し、性能及びコストパフォーマンスの高さを実感。新規テスト作成及び既存テストのリプレ スをUWSCで実施することにテストのリプレースをUWSCで実施することに。

我々の経験知を基に 上記各内容を説明
我々の経験知を基に、上記各内容を説明。
自動テスト導入検討時の御参考に。

年現在、ほぼす てのテ トをで実施中。
2009年現在、ほぼすべてのテストをUWSCで実施中。
3

テスト自動化のコストとは？

4

テスト自動化のコストとは？（１）

テスト自動化のコストとリスクを把握するツールの選定／購入コスト
導入前

 短期間での選定を要求される

ツ ルの選定／購入コスト
ツールの選定／購入コスト

・ ツールに対する一定のスキルがないと最適な選択は困難に対する 定キ がな と最適な選択は困難
・ 高価なツールは導入後、後戻りできない。

導入前後

 商用テストツールは相当高価なものが多い（2002年当時）

ツールの習熟に関わるコスト
習熟 関わる
導入後

テストスクリプトの作成／メンテナンスコスト

実は極めてリスクの高い作業56

SQiPシンポジウム2009

テスト自動化のコストとは？（2）

テスト自動化のコストを下げるには？（１）ツ ルの条件
ツールの条件
テストスクリプトの作成／メンテナンスコスト
 テストスクリプトは複数回使えてなんぼの世界 価格

・ 同じスクリプトを何回使うかで自動テストの成否が決まる
同じ クリプトを何回使うか 自動ト 成否が決まる
・ スクリプトの変更を最小限に抑えて使い続けるには？

・ 購入コストは導入後の運用、維持における足枷
購入
トは導入後 運用 維持における足枷・ 必要ライセンス数の購入が困難
・ 他ツ他ツールへの乗り換えが困難
ルへの乗り換えが困難

・ テストオブジェクトへの適用時期を考慮
・ スクリプトを作り込み過ぎないテクニック

 シンプル・ 多機能な程、作成／メンテナンスコストが増大
・ ツールによるリソースの消費はテスト実行に悪影響・ スクリプト関数は多いほどスキル習熟が要求される・ レポート作成、BTS連携等TestSuite的機能は必要？

メンテナンス（改修）コストの抑え込みがポイントであるがテストツ ル以外の要因（テストの種類 適用時期）も大きテストツール以外の要因（テストの種類・適用時期）も大きい
78

テスト自動化のコストを下げるには？（２）

テスト自動化のコストを下げるには？（3）

テストスクリプトの作成／メンテナンス ストを下げる条件
テストスクリプトの作成／メンテナンスコストを下げる条件

テストスクリプトの作成／メンテナンス ストを下げる条件
テストスクリプトの作成／メンテナンスコストを下げる条件

 テストの種類

 シンプルコーディング
シンプル
デ ング

・ 回帰テストが基本
・ 最少のGUI操作で出力結果を比較して取得
・ 出力比較には別ツールを使用した方が効率的

自動テストはインタフェースの変更を予測できない
自動テストはインタフェスの変更を予測できない
アプリケーションが相手
・ GUI操作は必要最小限の記述で・ 過度に作り込まない（戻値のチェック等必要最小限）

 適用時期の考慮
・ 安定バージョン（Ver1.0.0以降）のみに適用する
・ ファーストリリース前、仕様は常に揺れ動く・ 大規模改修が予想されるアプリに適用しない

スクリプトに求められるものは完璧な動作ではなくメンテナンスの早さ、容易さ

メンテナンスコストの発生が少ないと想定される時期を考慮
ンテナン
発少な想定される時期を考慮すれば、自動回帰テストは十分に有効なテストとなる
910テストツール(1)

テストツール(２)最初に導入したツール(WinRunner)の問題点リプレースしたツール(UWSC)による問題点の解決

 高価

 安価

・ ライセンスの追加が困難
イセ
追加が困難
・ 他部署への導入が困難

・ ライセンスの追加が容易
イセ追加が容易・ 他部署への導入が容易 多機能 シンプル・ 使いこなすには一定のスキルが必要
使いこなすには 定のスキルが必要
・ 環境構築からしてある程度敷居が高い

・ 必要最低限な関数の数・ プログラマであれば習熟は容易

 重い

 軽快

・ 手動では出現しないエラーの発生（リソースの消費がテストオブジェクトの動作に影響？）

・ 自動テスト運転時間の短縮
11

Test部署で作成したスクリプトを他でも簡単に利用可能にスクリプト作成／メンテナンスコストの低減↓
他のテストへ時間を回せる
テストデータを増やせる
orテスト報告書提出時間短縮
12

SQiPシンポジウム2009

テストツール(3)テストツール（４）テスト例

WinRunnerとUWSCの比較
UWSC

WinRunner価格

フリーウェア（シェア版有）100万円前後

IDE無し

有り

性格

Windows自動化ソフト

企業向機能テストツール

関数の数80個前後

スクリプト例 CLKITEM(id, “開く”, CLK_MENU);(*1)

670個前後(*2)参照GUIMAPを使用しない記述(*1)ファイルサブメニュー「開く(O)…」を選択する動作
ブ「択(*2)menu_select_item(“{class: ¥”menu_item¥”, label:¥”開く(O)…
Ctrl O¥, parent: ¥Ctrl+O¥,¥”{class:{class: ¥¥¥¥¥¥” menu_item¥¥¥menu item¥¥¥”,,
label: ¥¥¥”ファイル(F)¥¥¥”}¥”}”);(*1) 独自開発ツール使用(ExcelVBA+Delphi) http://www.vector.co.jp/soft/winnt/prog/se347531.html(*2) WinMerge等のフリーウェア http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html「JaSST‘08 Tokyoフリーウェアで作る自動テスト －UWSCの利用例－」P.9 から抜粋

13

14

課題(1)

課題(2)

回帰テスト以外 の自動テストの適用を模索
回帰テスト以外への自動テストの適用を模索

組合せテストの半自動化

取り組み例 Pairwiseテストケース生成ツールと連携して組合せテストを半自動化する

PICTで生成したテストケースを画面に自動設定使用するツ ル （すべてフリ使用するツール（すべてフリーウェア）
ウェア）
・PICT（Pairwiseテストケース生成ツール）
・AssistAllpair（PICTのExcelフロントエンド）
p
・UWSC（テストケース内容をテストオブジェクトに設定）

以前は作成したテストケースを見ながら手動で設定していたが、画面への設定を自動化することにより効率が大きく向上した
15

16