1.1テスト自動化の目的
ソフトウェアテストにおいて、以下のタスクをテスト自動化とする。
・目的に応じて構成されたソフトウェアツールを用いた、テストの前提条件の制御・設定
・テスト実行
・期待値と実際の挙動との比較
良い実戦としては、干渉を最小限に抑えるために、テストに使用するソフトウェアを被試験システム(SUT)自体から分離することである。試験ソフトウェアを被試験システム(SUT)に配備する必要がある組み込みシステムなど、例外もある。
テストの自動化は、多くのテストケースを異なるバージョンで一貫して繰り返し実行するのに役立つと期待されています。
SUT および/または環境のテストを自動化することができます。しかし、テストの自動化は、テストスイートを実行するためのメカニズム以上のものである。
テスト自動化は、テストウェアを設計する下記のプロセスを含みます
- ソフトウェア
- 文書化
- テストケース
- テスト環境
- テストデータ
テストウェアは、以下のようなテスト活動に必要です。
- 自動化したテストの実装
- テスト実行のモニタリングと制御
- テスト結果のレポートやログの解釈
テスト自動化には、SUTと対話するためのさまざまなアプローチがあります。
テスト自動化のデメリット
- 追加コストがかかる
- TASのセットアップのための初期投資
- 追加の技術が必要
- チームに開発と自動化のスキルが必要
- 進行中のTASのメンテナンスが必要
- テスト目的から逸脱する可能性がある(テストの実行を犠牲にしてテストケースの自動化に注力するなど)
- テストがより複雑になる
- 自動化により追加のエラーが発生する可能性がある
テスト自動化の限界
- 全てのマニュアルテストが自動化できるわけではない
- 自動化は機械によって解釈可能な結果しかチェックできない
- 自動化は自動テストオラクルで検証できる実際の結果しかチェックできない
- 探索的検査の代わりにならない