このブログについて

ソフトウェア開発におけるエラーの予防やプロジェクト管理、品質管理を支援するParasoft製品のTIPSなどを、国内総販売代理店テクマトリックスのサポートスタッフが紹介しています。

2015年1月21日水曜日

第2回:Webアプリのテスト自動化は、なぜ失敗するのか?

今回は、2つ目の課題の『画面数や、ブラウザのサポート数に比例して、テストシナリオの数や長さが大きくなる』の対策について紹介します。
前回のおさらいは、 『第1回:Webアプリのテスト自動化は、なぜ失敗するのか?』 を参照してください。

---------------------------------------------------------------------------------------------------------------
 ◆◇ 画面数や、ブラウザのサポート数に比例して、テストシナリオの数や長さが大きくなる ◇◆
---------------------------------------------------------------------------------------------------------------

◆ 課題
たとえば、下図のような業務処理A~Cの操作では共通する画面遷移があります。

共通する画面遷移:
「トップ画面」 ⇒ 「ログイン画面」 ⇒ 「メニュー①画面」 ⇒ 「メニュー②画面」

テストシナリオを作成した場合、業務ごとに共通する画面遷移のシナリオが作成されます。
このようなケースでは、共通する画面でのシナリオの修正に対し、業務ごとに同じ対応を行う必要があります。

また複数ブラウザのテストが必要となった時、各業務のテストシナリオ数×ブラウザ分のテストシナリオを作成することになり、テストシナリオの増加に比例しメンテナンスに掛かる時間も大きくなります。

◆ 原因
各業務の操作やアプリケーション全体の画面遷移を考慮したテスト設計を行わず、安易にテストシナリオを作り始めると冗長的なメンテナンス性の低いテストシナリオが出来上がります。
このようなテストシナリオを自動化してもメンテナンスの時間が大きくなるだけでなく、シナリオの修正ミスを引き起こす原因にもなります。


◆ 対策
テストツールでテストシナリオを作成する前に、シナリオ(画面遷移)を分析し、共通化できる箇所を検討します。

たとえば、下図のように共通の画面遷移のテストシナリオを1つにまとめることができます。
これにより共通の画面の修正は1度で済むため、メンテナンスに掛かる時間と修正範囲を最小限に抑えることが可能となります。














◆ SOAtestで課題を解決!
SOAtestは、WebアプリケーションおよびWebサービス(Web API)の機能テスト・回帰テストや負荷テストを行うためのテストツールです。SOAtestには、今回、紹介した対策がツールの機能として提供されており、課題を簡単に解決することができます。

※ 共通の画面を共有化し、テストシナリオを作成!
テストシナリオを作成する時に、他のテストシナリオを参照することができます。
参照元のテストシナリオ部分を修正することで、参照先の全てのテストシナリオに修正内容が反映されます。



※ テストシナリオ実行時に、複数ブラウザを選択可能!
テストシナリオを実行する際に、ブラウザを選択し、実行することができます。
ブラウザは、Internet ExplorerMozilla FirefoxGoogle Chromeに対応しています。
1つのテストシナリオを複数ブラウザで実行可能です。




次回予告
-----------------------
次回は、3つ目の課題である『テストシナリオがコード(Javaなど)で管理される場合、運用できる人が限定される』の対策について紹介します。


体験版ダウンロード
------------------------------------------
http://www.techmatrix.co.jp/quality/download/index.html#soatest