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と考えてみましょう。
- 12,000円の価値のある服を、値札通り10,000円で買う
- 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:わたしの記事の解釈はひどく怪しいです。もし興味をもたれたら、ぜひ元記事を読んで、わたしの誤解を指摘してください。