ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

テストの自動化にROIなんてないんじゃない?

 JaSST2013 Tokyoや、テスト自動化カンファレンス2013で、テスト自動化研究会「テスト自動化のROI」というのを一つのテーマとして発表しています。
 何が全テスト自動化だ、何がリグレッションテストコストがゼロ円だ、何がプロジェクトを強くしてやるだ!夢見させるようなこと言うな!ということですよね。

https://www.slideshare.net/omn/stac2013openingkoukaiwww.slideshare.net

 ですが一方で、表題のようなタイトルのブログ記事を見かけましたので、紹介*1しておきましょう。

blog.smartbear.com    「not」と「no」で二重否定ではなく、強い否定を表すという、正統でない構文ですね。
 割りと釣りくさいタイトルですが、主張はまず、以下のように始まります。

ROIを語れるのは、具体的で(tangible)・追跡可能で(traceable) ・完全に相関のある(100% correlated)利益(revenue)があるときのみ。「品質」とか「テスト全体の価値」といった抽象的な(intangible)なものなら、定量的に測定するアルゴリズムが必要だ。

 これを読むと、自動化によって削減できたコスト、つまりマイナスのマイナスを、「利益」として計算すればいいのでは?と考えてしまいます。ですが、テストツールによってコスト削減したことを、記事では次のような比喩で表しています。

たとえばクーポン割引でモノを買ったとき、それは「金を使わずにすんだ(save)」のではない。「使う金が少なかった(spend less)」だけ。

 筆者自身の言うとおり、この理屈は「hairsplitting」、枝葉末節でしかないように思えます。
 ただ、よくよく考えてみると、妙なことに気づきます。例として、服を買う場合のROIを考えてみましょう。払った金額がInvestmentで、得られた「価値」から金額を引いたものをがReturnと考えてみましょう。

  1. 12,000円の価値のある服を、値札通り10,000円で買う
  2. 12,000円の価値のある服を、値札の10,000円から2割引きクーポンを使って買う

 (a)のROIは、(12,000 - 10,000) / 10,000 = 20%
 (b)のROIは、(12,000 - (10,000 - 2,000)) / (10,000 - 2,000) = 50%

 さて、ここで言うROIって、何のROIでしょうか。 服のROIですよね。  比喩を元に戻すと、服がテスティング作業に、クーポンが自動化ツールに相当します。よってここで得られているROIは、ツールではなく、あくまでテストという行為のROIです。

 では、ツールのROIはどうやって求めるのでしょう。

ツールに金を使い、自動化に投資する。そのリターン(期待される利益)は何か。何もない。コストがあるだけだ。会計の言葉でいう、サンクコストなのだ。

 ツール自体がもたらす利益があるわけではない、という考え方です。
 さらに記事はこう主張します。

テスティングのコストについて偽るのをやめて、テスティングへの投資と、それがもたらす便益(benefit)とがどう釣り合うかを、ステークホルダーやチームの人たちがわかるようにしよう。それには、費用便益分析だ!

行ったことを正しく評価したいなら、いくら金が戻ってきたかでなく、得られたものを数えてみるべき。

 確かにわたしはこれまで、ROIのRとは「節約できたコスト」と考えていました。が、それはもしかすると、「利益」ではない・・・?

 モヤモヤのまままとめると、以下になると思います。

  • ツールの購入はサンクコストであり、それ自体が利益を産むわけではない。よってROIはゼロ。これをツール導入の根拠に使うのはミスリーディングだ。
  • テスト自動化の取り組みやツールの導入の際に行うべき分析は、ROIではなく、費用便益分析である。

 ぜひ元記事を読んでいただき、本当の記事の意図を教えていただければと思います。元記事のコメント欄も盛り上がっています!

*1:わたしの記事の解釈はひどく怪しいです。もし興味をもたれたら、ぜひ元記事を読んで、わたしの誤解を指摘してください。