Webサイトのテストを簡単に行いたい、というニーズは以前からあり、有名なツールとしては Selenium が挙げられます。
(http://www.seleniumhq.org/)
これらのツール、一見良さそうに見えますが、頑張って作成した自動テストケースが以下の理由で使い物にならなくなることがあると思います。
・仕様を変更したため、いままでOKだったデータがNGになってしまった
・仕様変更により、設定する必須項目が増えてしまい、NGになってしまった
また一度、作成したテストツールに対しても、以下のような要望が出てくることがよくあります
・使用するテストデータを変更したい
・この画面だけテストを回したい
・この画面のこのテストケースだけ回したい
結局自動テストが回せなくなってしまう原因は、テストコードがプログラムであるため変更できるのが、プログラマしかいないのが問題だと考えます。
自動テストを作業範囲をプログラマではなく、テスターへある程度移譲できれば、仕様変更に対するテストロジックの修正もだいぶ容易になります。
弊社ではドキュメントがなく、開発を続けたWebサイトに対して以下の手順で自動テスト環境を構築しました。
(1) 画面仕様書を作成
まずテスト内容を明らかにするために仕様書を作成します。
ここで入力値の制限値や必須入力などの項目を洗い出します
(2) テストケースの作成
単体テストに必要なデータパターンをタグ付けしながら列挙します。
限界・境界値テスト、必須項目ありなし、などのテストパターンも追加します
(3) テストロジックの作成
画面仕様書、テストケースからテストロジックを作成します。
ここは画面ごとに作成する必要はなく、出現するデータパターンによってテンプレートからコピーするだけです。
もしテンプレートになければ、テストロジックを作成します
(4) テスト準備
テストケースに記載されているテストパターンから、テストデータを作成します。
(5) テスト実行
テストケースに従い、テストを実行します
このテスト環境の最大のメリットは、項目の増減、テストデータの変更、エラー条件の変更などが、テストケースの修正だけで行える事にあります。
つまりテスト仕様書と、テストデータが合致することにより仕様書と実際の挙動との乖離がなくなり、正しいテスト結果を担保できることにあります。
また仕様変更によりテストケースの変更も容易に行えるようになります。
自動テスト環境を構築してサイトの品質を向上させたい、デグレの発生を極力抑えない、などのご要望がありましたら、詳細はお問い合わせいただければ、と思います。
(問い合わせ: kei.akatsuka@keit.co.jp )
ご紹介した自動テスト環境には、テストケースの選択、テストサイトの指定、テスト言語の指定、なども行えるようにしましたので、必要に応じてカスタマイズが可能です。