UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Test】テスト自動化のROIを計算する

機能拡張を盛んに行った結果、予期せぬ不具合が頻発するようになった

ページ数も増えたことで、これまで手動でやっていたテストだけでは品質が保ててないとということで、一部のテストを自動化することを考える

ただ、テスト自動化はすぐにやれるものでもないので、導入の効果をROI(Return On Investment、投資効率)という観点で説明できるようにしたい

ROIとは

会計学上のROIの定義

ROI = (当期営業利益 + 減価償却費) / (株主資本 + 有利子負債) * 100

抽象化すると

ROI = 利益 / 投資額 * 100

これを現在手動で行っているテストを自動化した場合の式に当てはめる

利益

まず、利益を自動テストを開発し運用している時間「t」の関数とすると

利益(t) = 手動テストを続けた場合の運用コスト(t) - 自動テストの運用コスト(t)

※上記のROIの構成要素と試算例は『The Return on Investment(ROI)of Test Automation』(PDF)というペーパーで解説されていたらしいが検索してもどれもリンクが切れていてたどり着けない

投資額

投資額については、上で引用した『The Return on Investment(ROI)of Test Automation』(PDF)では、

投資額 = 自動テストの初期開発コスト(時間tの関数にはなりません)

となっていて、自動テストの初期開発コストのみを投資額としているので実態とあっていない

そこで、他のテスト自動化のROIを解説しているペーパーから引用すると以下の式がよく使われているみたい

ROI(t) = (手動テストを続けた場合の運用コスト(t) - 自動テストの運用コスト(t)) / (自動テストの初期開発コスト + 自動テストの運用コスト(t))

これで完璧とは言えないが、何かしら数字を出せと言われたら使えそう

参考

https://www.slideshare.net/oota_ken/aaa-roiwww.slideshare.net

https://www.atmarkit.co.jp/ait/articles/1406/13/news016_2.html