次に、下記の条件でGUIテスト自動化におけるROIを求めてみましょう。
■利益
ΔB(t) = Σ(自動テストによる固定費の削減分)(t) + Σ(n2回手動テストを実施した場合の変動費)(t) - Σ(n1回自動テストを実施した場合の変動費)(t)
Σ(自動テストによる固定費の削減分)(t) = なし Σ(n2回手動テストを実施した場合の変動費)(t) = 1年当たりに必要な手動テスト実行の人数 * エンジニアの1年当たりの単価 * 年数 Σ(n1回自動テストを実施した場合の変動費)(t) = 1年当たりに必要な自動テスト実行の人数 * エンジニアの1年当たりの単価 * 年数
具体的な値を代入すると、下記のようになります。
ΔB(12カ月) = 0 + (10 * 9,600,000 * 1) - (1 * 9,600,000 * 1) = 86,400,000(円) ΔB(24カ月) = 0 + (10 * 9,600,000 * 2) - (1 * 9,600,000 * 2) = 172,800,000(円)
■コスト
ΔC(t) = Σ(自動テストによる固定費の増加分)(t) + Σ(自動テストの開発費) - Σ(手動テストの開発費) + Σ(自動テストのメンテナンスコスト) (n1/N)
Σ(自動テストによる固定費の増加分)(t) = 3年間のハードウェアのコスト * (経過年数 / 3) Σ(自動テストの開発費) = 1年当たりに必要な自動テストのエンジニアの人数 * 1年当たりのエンジニア単価 Σ(手動テストの開発費) = 1年当たりに必要な手動テストのエンジニアの人数 * 1年当たりのエンジニア単価 Σ(自動テストのメンテナンスコスト) = 1年後に発生する自動テストのメンテナンスコスト = 1年後のメンテナンスに必要なエンジニアの人数 * 1年当たりのエンジニア単価
具体的な値を代入すると、下記のようになります。
ΔC(12カ月) = (900,000 * (1/3)) + (15 * 9,600,000) - (5 * 9,600,000) + 0 = 96,300,000(円) ΔC(24カ月) = (900,000 * (2/3)) + (15 * 9,600,000) - (5 * 9,600,000) + 1 * 9,600,000 = 106,200,000(円)
■ROI
ROI(t) = ΔB(t) / ΔC(t)
ROI(12カ月) = 86,400,000 / 96,300,000 = 0.897(→損益分岐点に達しない) ROI(24カ月) = 172,800,000 / 106,200,000 = 1.627(→63%リターン)
スモークテストのときと同じように「手動テストの実行を外注している」と仮定し、下記のように条件を変更して再度ROIを求めてみましょう。
■利益
ΔB(12カ月) = 0 + (10人 * 7,200,000 * 1) - (1人 * 9,600,000 * 1) = 62,400,000(円) ΔB(24カ月) = 0 + (10人 * 7,200,000 * 2) - (1人 * 9,600,000 * 2) = 124,800,000(円) ΔB(36カ月) = 0 + (10人 * 7,200,000 * 3) - (1人 * 9,600,000 * 3) = 187,200,000(円)
■コスト
ΔC(12カ月) = (900,000 * (12/36)) + (15 * 120,000,000) - (5 * 9,600,000) + 0 = 132,300,000円 ΔC(24カ月) = (900,000 * (24/36)) + (15 * 120,000,000) - (5 * 9,600,000) + 9,600,000 = 142,200,000円 ΔC(36カ月) = (900,000 * (36/36)) + (15 * 120,000,000) - (5 * 9,600,000) + 9,600,000 = 142,500,000円
■ROI
ROI(12カ月) = 62,400,000 / 132,300,000 = 0.472(→投資期間) ROI(24カ月) = 124,800,000 / 142,200,000 = 0.878(→損益分岐点に達しない) ROI(36カ月) = 187,200,000 / 142,500,000 = 1.317(→32%リターン)
この条件では、「スモークテストよりテストレベルが上がるため、手動テスト実行のエンジニア単価を上げる」と同時に、「自動テストの設計、実装も難易度が上がる」と仮定し、自動テストを内製化するエンジニア単価も上げました。エンジニア単価の変更に伴いROIと損益分岐点が大きく変化しています。
この結果から、「特に人件費の高い先進国では、ツールやハードウェアのコストよりも人件費がROIに大きく影響を与える」ことが分かると思います。逆に、「ツールやハードウェアへの投資が人件費の削減につながる」のでしたら、積極的にツールやハードウェアに投資した方がROIが高まるともいえます。
本連載では「テスト自動化でROIを試算する理由」から、「テスト自動化のROIの構成要素と複数の試算式」、そして「試算の実際」を解説してきました。
テスト自動化に限らず、ソフトウェア開発ではさまざまな外部要素や変動要素が絡むため、精確なROIを求めるのは難しいですが、今回の試算例でも分かるように、簡易的な試算であれば最小限の構成要素から試算できます。
テスト自動化の提案や企画の際には、定量的な交渉条件として、本連載で学んださまざまなROIの試算式を読者が活用することを楽しみにしています。
太田健一郎
大手SIerで開発支援ツール開発SEを経験した後、商用・オープンソースを使った各種の自動テスト、パフォーマンステスト、インスペクションをお客さまプロジェクトで担当。その後、大手Webサービス会社でJenkinsを始めとするCIやテスト自動化、パフォーマンスチューニングなどを担当。
現在、株式会社SHIFTでテスト自動化やCIの導入、トレーニングを担当。その他、コミュニティ活動として、JaSST実行委員会、テスト自動化研究会などに所属し、公私ともにテスト自動化を始めとする自動化に情熱を燃やしている。
Copyright © ITmedia, Inc. All Rights Reserved.