PR

失敗1 自動化に不向きなシステム

 テスト自動化には向くシステムと向かないシステムがある。その見極めが重要だ。一概には言えるものではないが、筆者の経験では「バージョンアップ回数が月に1回(年12回)」を下回るシステムでは、テスト自動化が十分な効果を発揮できないと感じる。

 一般論として、テスト自動化の効果はテストを実行する回数が多くなるほど増大する。テストの実行回数が少ない場合、テストにかかる工数はテスト自動化を適用した場合のほうが大きい。テスト自動化では、自動化基盤の構築やテストスクリプトの作成などを実施しなければならないからだ。

 極論すると、テスト自動化はテストの実行を重ねれば重ねるほど1回当たりの工数は小さくなる。テストの実行回数が一定以上になるまでは、自動テスト(テスト自動化後のテスト)の1回当たりの工数は手動テストより高くつく。これを図で説明しよう。

手動テストを自動化した場合の損益分岐点
手動テストを自動化した場合の損益分岐点
[画像のクリックで拡大表示]

 上の図は横軸をテスト実行回数、縦軸をテストにかかる累積工数として、手動テスト、自動テストの工数をプロットした図だ。なお、これはイメージであり、必ずこの通りになるとは限らない。

 青のラインが手動テストで、テスト実行回数と比例して工数が増大していく。オレンジのラインが自動テストだ。テスト実行回数がゼロでも工数がかかっているが、テスト実行回数とともに伸びる工数は手動テストよりも小さく済む。

 グラフで分かる通り、テスト実行回数が一定以上になるまではテストにかかる累計工数は手動テストのほうが小さい。一定の回数を超えると、自動テストのほうが累積工数が小さくなる。これがテスト自動化の損益分岐点である。損益分岐点を超えるシステムかどうか、テスト自動化を適用する前に検討しておいたほうがよい。

 テストの実行回数はプロダクトやシステムの性質に依存する。例えば1カ月に複数回のバージョンアップを行うようなシステムは、リグレッションテストの回数がそれだけ多く、テスト自動化に向いている。一方で、バージョンアップが半年に1回しかないようなシステムはリグレッションテストを行う機会が少ない。テスト自動化を適用しても、その導入にかかるコストや労力に見合った効果は得にくい。