テスト自動化もタダ(無料)じゃない~その恩恵とコストの関係性~
はじめに
こんにちは。
GO株式会社 プロダクトマネジメント本部 クオリティマネジメント部の二河です。
自分のQAチームでもWebのテスト自動化環境を整備し始めて早2年以上経過しました。
リソース不足でなかなか手が回らなかったリグレッションテスト範囲を自動化でいつでも対応するために導入したのですが、開発チームにも使ってもらいながら順調に環境を運用しています。
ところで、テスト自動化をすればコスト大幅カット可能!…とはよく耳にするものの、実際のところはどうなんでしょうか…
安定して運用していくには色々とお金(コスト)がかかるもので…
仕事である以上、テスト自動化の予算に対しての実績を提示していく必要があります。
言い換えれば、費用対効果を証明しないといけない。
ということは、コスト管理も当然重要になります。
ただ、テスト自動化の導入についての情報は世の中にあふれているが、テスト自動化の費用対効果について論じている資料はなかなか見当たらず…
そこで今回は、自分が体験した運用コストの管理と、自分のチームが費用対効果をどう見せているかについての話をさせていただこうかと思います。
あくまでも一例でしかありませんが、参考にしていただければ幸いです。
まずはチームの自動化の現状について
自分の所属するQAチームでは、現在複数のサービスに対し、約120の自動テストシナリオを運用中です。
機能検証前後のリグレッションテストや、開発側がリファクタした際の影響確認等で、それなりの頻度で自動テスト環境を使用しています。
その結果、人間は「基本的なテスト」以外の作業に集中することができるので、チーム全体の作業効率は大幅に上がっていると思います。
ただ、『自動化あるある』になりますが、機能改修や複数画面で使用される共通部品に手が入った際はメンテ工数等のコストが掛かります。
テスト自動化は環境を整えるだけでは意味がなく、長期間継続運用して初めてその効果が出るもの。
そうなると、テスト自動化の運用とそのコストの関係を意識し続ける必要があります。
自動化に関わるコストとは
ではその自動化に関わる「コスト」はとは一体なにがあるのかを改めて整理してみます。
具体的に挙げると…
テスト自動化ツール関連費用
初期環境構築工数
メンテ工数
運用工数
etc...
当然ながら、自動化といっても通常のテスト業務とは別に、色々とコスト自体は掛かってきます。
ここでは具体的な数字は出せませんが、それなりに「余裕」がないと難しいのが現実。
そもそも自動化の効果とは
特に「テスト自動化ツール関連費用」については一般的に年間数十万~数百万円レベルになることもあるので、予算を確保しなければならない場面もあるのではないでしょうか
予算を取るのであれば、何に対してどれくらい必要か、そして実績がどうだったかを出していく必要があります。
テスト実施担当者視点であれば…
「自動テスト環境を構築して運用しています」
「自動テストを毎朝実行して品質を担保しています」
「小さなリファクタでも自動テストを回して品質を担保しています」
…でいいかもしれませんが、QAリーダー等の責任者であれば、予算を出ている以上、その予算に見合った「効果」を出せているかを提示していく必要があるはず。
では、自動化の「効果」はどのような形で提示していくべきなのでしょうか
ツールの予算は一回きりではなく、月or年単位の契約が継続的に発生するので、一定期間ごとに数値化された指標があった方がよいかと思います。
何故数値化した方がよいのかというと、以下のような「財布」を握っている方に対し、効果を見える化する必要があるため。
予算の決定権を持つ人がQAについて詳しいとは限らない
QAに疎い人にも理解可能な「効果」を見せる必要がある
自動化の費用対効果を数値化できないか
では、効果を見える化するためにはどうすればよいでしょうか。
プロジェクト毎にそれぞれあるかと思いますが、自分のチームでは効果を定量的に提示する方法として、以下の方程式を採用しています
こちらを算出するには色々と前提条件があります。
次の章で詳細に記載します。
費用対効果を見える化することに必要なもの
自動化によりカバーできた工数とは
ではまず「自動化によりカバーできた工数」は具体的に何か…
自分のチームでは自動実行項目を手動で実施した場合の想定工数をそれに充てています。
その「自動実行項目を手動で実施した場合の想定工数を」を算出するためには、まず以下の情報が必要となります。
1.手動テスト時の各種工数の記録
2.自動化テストシナリオ観点の整理
これらが正しく算出されていなければ、「効果」を数字で出したところで、説得力がなくなります。
①各種工数を記録とは?
過去に実施したテストの各種工数やテスト内容を継続的に記録していることが大前提となります。
テスト項目数はどれくらいあったのか
そのテストにどれくらい工数がかかったか
👇
1項目実施当たりだとどれくらいの工数になるか
② 自動化テストシナリオ観点の整理とは?
自動テスト用の観点を整理することも重要。
整理したうえで大事なのが、自動テスト用観点を「手動で実行」した場合、どれくらいの項目数になるかを見積もること
自動テスト用のシナリオ単位で、「手動実行時の項目数」を出す
それにより、
「どのシナリオを何回実行したか」
という結果から、
「それらを手動で実施していた場合、どれくらい工数がかかっていたか」
が算出できるようになります。
言い換えればXX人日分の作業が自動化で賄えたかになり、それがそのまま数値化された自動実行の「効果」としてしまってもよいかと考えました。
自動化関連の工数とは
シナリオ新規作成工数
テスト環境整備も含め、運用に関する工数
検証結果纏め・分析・報告等の工数
その他(ナレッジ・教育・ルール策定・各種ツール作成等)
「自動テストの効果」が見えてくれば、そこから自動テストにより賄うことが出来たコストも算出可能です。
そのコストが分かれば、以下のようにテスト自動化導入後の損益分岐点がどこになるかを提示することも可能となるかと思います。
さいごに
テストは実行実績だけで効果を見せられるものではないはずです。
テスター視点ではそうであったとしても、財布を握ってる人への説得材料としては弱い…(と思われる)
他にもっと説得力のある効果測定方法があるかもですが、とりあえず自分のチームはこのような感じで数字を出しています。
プロジェクトによってはもっと分かりやすく出せる仕組みを整備しているところとかあるかもしれません。
もしそのようなものがあればどんどん取り入れていきたいですね。
最後になりますが、品質管理を担うクオリティマネジメント部は、課題や難しい局面を、共感しながらともに成長・チャレンジしてくれる仲間を探しております!
少しでもご興味があれば、カジュアル面談も受け付けていますので、お気軽にお声掛けください。
■GO株式会社 採用情報
https://goinc.jp/career/