Economic perspectives in test automation | Proceedings of the 2006 international workshop on Automation of software testを読みました。

さらっと読んだだけなので後半の細かいところまだわかってないですが、なるほど確かにな~と思ったのでブログにしちゃいます。


論文全体のポイント(と私が思ったところ)としては以下です。

  • 議論ポイント
    • いつ自動化すべきか
    • 自動テストと手動テストのトレードオフ
  • コストモデルを単純化しすぎてやいないか?の問題提起

テスト自動化の利益は定量化が難しいですが、これはコストばかり考えてしまっているからではないでしょうか。

一般的なテスト自動化のコストとしては、

  • ツールやフレームーワーク
  • 自動化の人件費
  • 自動テスト維持の人件費

などがあり、固定費と変動費で考えられています。そして「テスト自動化のROIを計算しよう!」となった場合、手動テストと自動テストのコストを比べて、自動化して*回実行すると同じだけ手動実行したときと比べてお得!という考え方をしがちです。 *回、のところは文献等によって差があり、2回~20回までさまざまです。

ちなみに私が真面目にこの方法で計算したときに「ペイするのは4年後ですね~」みたいになったことも。

さておき、この論文ではこれら一般に行われている計算方法おかしくない?と問題提起しています。そうなんですよねー、自動テストやってる人からすると、「ぶっちゃけ数字のマジックな部分もあるけど、これ説得しないとツールの予算とれないしなぁ・・・」みたいな場面が多々あったりするんですよねー。

本論文が言っているおかしいポイントは以下。

  • コストだけを考えている。ベネフィットを考えてない。手動テストと自動テストだと目的が違う
  • 手動テストと自動テストは比べられない。異なるプロセスであり、コストや見つけるバグの数を単純比較するのは無意味
  • 全てのテストケースや実行が同じ重要度ではない
  • プロジェクトのコンテキストが考慮されていない
  • 追加コストが考慮されていない

どれも同意できます。

そこで本論文ではOpportunity cost:機会費用というコストモデルを提案していて、テストのコストを最小化するのではなくて、テストの利益を最大化する向きに考えましょう、とのことです。

この先の細かい話に興味が湧いてきたので、コツコツ続きも読んでみます。