PR

 手間のかかっていたテストを自動化したが、システムの機能更新のたびにテスト自動化用のスクリプトの変更に追われるようになった。だんだん業務が追い付かなくなり、スクリプトの変更は放置されるようになった。せっかくテスト自動化の仕組みを整備したのに役立たずの代物と化した――。テスト自動化を導入した現場でよくある失敗例だ。

 テストの自動化では、リリース前に画面上で行うテストを「Selenium」などの自動化ツールを使って人手を使わずに実施できるようにする。あらかじめテスト担当者がテストの手順を定義して、テスト自動化ツールに読み込ませるプログラム(テストスクリプト)を作成する。一度テストスクリプトを作成すれば、その後のテストはテストスクリプトのジョブを実行するだけでいい。同じようなテストを何度も手作業で実施する手間を減らせる。

 テスト自動化が主に採用されるのは、プログラムの一部の変更でほかの箇所に不具合が出ていないかを確認する「リグレッションテスト」と呼ばれるテストだ。開発スケジュールの短納期化、リリースの早期化を求められる昨今のソフトウエア開発では、何度もリグレッションテストを実施する。同じようなテスト手順が多いリグレッションテストを自動化して、プロジェクト全体の短納期化を図ろうとする現場が多い。

 ただ、安易にテストの自動化を適用すると失敗してしまう。原因として多いのが、適用後の長期的な運用への想定が欠けていることだ。テスト自動化を適用したシステムで機能自体に変更があると、テストスクリプトの変更が発生する。これが度重なれば、テストスクリプトの変更が頻繁になり業務を圧迫する。テストスクリプトの更新が追い付かなくなると、結果的にその自動化プログラムは利用されなくなる。

 よくある失敗の要因は、次に挙げる4種類だ。

失敗1 自動化に不向きなシステム
失敗2 適用タイミングの誤り
失敗3 変更に対応しにくいテストスクリプト
失敗4 コーディング規約の欠如

 今回はこれらの失敗例を基に、テスト自動化に失敗しないためのポイントを解説しよう。適切な方法でテストを自動化できれば、プロジェクト全体の工数を削減できる。ヒューマンエラーの防止にもつながる。こうしたテスト自動化のメリットを十分に引き出せるようにしてほしい。