アプリケーションの機能テスト自動化が、なぜ進んでいないのか? Part 5
»
『機能テストの自動化が進んでいないのか?』について、ここまで4回お伝えしてきました。
--
◆過去ログ
2009/10/05 アプリケーションの機能テスト自動化が、なぜ進んでいないのか?
2009/10/06 アプリケーションの機能テスト自動化が、なぜ進んでいないのか? Part 2
2009/10/07 アプリケーションの機能テスト自動化が、なぜ進んでいないのか? Part 3
2009/10/13 アプリケーションの機能テスト自動化が、なぜ進んでいないのか? Part 4
--
さて、今回は、ツールが使われて自動化されているケースについて、いくつかお伝えしたいと思います。
- 企業向けパッケージソフトウェアの定期的バージョンアップへの適用
個人向けのWebアプリケーションでは、「飽きられない」「先進的なイメージ」などから、頻繁にインターフェイスが変更される場合がありますが、企業向けのWebベースパッケージソフトウェアは、機能追加・バグフィックスを中心としており、比較的にインターフェイスの大幅な改編がすくなく、かつ、定期的なバージョンアップを繰り返す場合が多いものです。
例えば、四半期や半年に一度のマイナーバージョンアップ、1~2年に1回のメジャーバージョンアップの際に、新機能などが正常に稼働しているかというテストは、高いレベルでのテスト実行が可能かと思いますが、デグレ発生リスクを回避するための機能テスト(レグレッションテスト)を網羅的に行うことは、そのアプリケーションの規模にも依存しますが、手動での対応はかなり困難なものとなるでしょう。
-
そこで、テスト自動化ツールの登場となりますが、ユーザインターフェイスの大幅な仕様変更がなければ、積み重ねてきたテスト自動化の資産を有効活用して、テストの網羅性を高める事が可能となり、ひいては、ソフトウェア品質の向上に繋がります。
バージョンアップ開発期間中も、デイリービルドがアップされた段階で、自動テストのスクリプトを実行して、テスト結果からデグレが無かったかを容易に確認できるようになります。 夜間のバッチ処理でテストを実行して、テスト結果をメールで送るような体制を整えれば、無人での夜間テストおよび朝イチでの結果入手というデイリーテスト自動化ルーチンが出来上がります。
新バージョンの機能追加に伴う自動テストも追加していくことで、網羅性の高いテスト=ソフトウェア品質の向上に繋がります。
- - スクリーンショットのエビデンス保存とDBチェック機能の活用
意外に手間の掛る各テスト実行時の画面(スクリーンショット)保存。
内部統制などにより、従前よりも「エビデンス保存」に対する要求が高まるなか、全ての画面遷移やテストパターンごとの画面を手動で保存することは、事実上、無理ではないでしょうか?それもブラウザで見えない範囲までもキャプチャするフルスクリーンショットが必要になるケースもあります。
そこで、テスト自動化ツールの活用となりますが、全ての画面遷移を自動的にスクリーンショットとして保存してくれる製品があります。(オープンソースのツールには、同様の機能が実装されていなかったかと思いますが、最新情報については、要確認です。)
これにより、テストを実施したことのエビデンスを保存し続けることが可能となり、自動化ツールで生成されるテスト結果の文字情報だけではなく、画面を確認することで、特に障害(バグ)発生時の対応が容易になります。
更に、DB(データベース)のデータを自動的に確認できるツールがありますが、この機能を使えば、テスト結果レポートのテキスト情報、フルスクリーンショット、DBのレコード(データの中身)という3重ものテスト結果を得る事ができます。
DBチェック機能があれば、画面上では正常に終了したと思える処理が、DB上では反映されていなかったとうSQL文などのバグ・抜け漏れが無いことを確認できるので、とても有効でしょうし、各テスト・各フィールドで、手動のSQLによるDBチェックも、行えるものではないので、自動ツール活用のメリットが享受できるのではないでしょか?
- - 自動化ツールだけではなくカスタムツール(外部プログラム)との連携
ツールに実装されている機能だけではもの足りないケース、もっと効率化を図りたいケースなどに有効な手段が、カスタムな外部プログラムを作成して、自動化ツールと連携させる方法があります。
VBScriptなどによるカスタムアプリを作成することで、自社のテスト結果レポートフォーマットに合わせたい際(自動生成されたテスト結果レポートから必要な情報を抽出して整形し直したり、Excel形式で生成したり)、テスト結果サマリをメールで通知させたり、複数のテストをバッチ実行させたり、Webアプリケーション専用のテストツールでは実現できないExcelデータの比較を行ったり・・・かなり広範なテスト自動化が実現できるようになります。
具体的な例として、約1万のテストケースの約40%を2ヵ月という短期間で自動化した際に、テストツールで自動化できなかった範囲への対応や、テスト行程におけるレポート作成プロセスを自動化することで、大幅な効率化が図ることができています。
プログラミングスキルを有する品質保証部門の方や、開発部門によるテスト自動化の協力、あるいは外部のテスト関連サービスベンダーの協力が得られることで、自動化の範囲は広がっていきます。
関連して、テスト用フォームデータの自動生成ツール活用することで、テストデータ生成に掛る労力(コスト)や網羅性の抜け漏れなどを抑制することも、非常に有効な手段になると考えられます。
--
--
SpecialPR