Fujihara)テスト自動化サービスmablのお手伝いをしていると、よく「テスト自動化のコスト」について質問される。今回は、現状僕がわかっている範囲でその回答をまとめてみようと思う。これを書こうと思ったかというと、ちょっと前に「人類よ!これがテスト自動化の実践だ!立ち上げのプロ&運用のプロから実践知を発見しよう!」というイベントを開催して、ゲストの増原さんも似たようなことを言及していたからだ。このイベントは、自分で言うのもあれだが、テスト自動化ツールの実践という意味では、かなり内容の濃いものになっていると思う。いい意味でマニアックなのだが、動画も公開しているので、mablのようなツールを活用してアジャイルテスティングを目指す人にぜひおすすめしたい。いい実践があればぜひ話してほしい。彼の言葉を思い出すと「開発にコストをかけようとするのに、品質になぜコストをかけようとしないのか?」という趣旨だったと思う。僕もこの意見には賛成で、「テスト自動化ツールで品質を安く買える」と考えているのであれば、それは大きな間違いを生む。自動テスト基盤構築のコストSaaSを利用すればやらなくていいことが増える。参考資料はこちらコストをひとつずつ整理していこう。ひとつめは、テスト実行環境の構築コストだ。テストを自動実行する環境を自動テスト基盤と呼ぶとする。この基盤を作るためには以下のような機能を実装しなければならない。加えて、自動テストの作成やメンテコストが必要になる(後述)。通知機能(Slackやメール)画面崩れ検知JSエラー検知ネットワークエラー検知などなどSaaSを使えば、初期の設定をちょろっとするだけで、簡単に自動テストを作成はじめられる。聞いた話だと、こういった自動テスト基盤を構築するのに2ヶ月ぐらいで300万円かかるそうだ。何人で作っているかわからないが、コストを金額計算するときの目安として活用すると、自動テスト基盤構築のコストについては、300万円近くのコスト削減になる。時間をコストとして考えると、リードタイムも2ヶ月が1日になる。初期自動テストの作成コストモバイルアプリのE2Eだと、過去に1ヶ月で「せいやーっっっっっっ!」と作ったことがある。当時のバディだった根本さんと二人でiOSとAndroid各100ケースぐらい作った。あのときはきっと若かった。若気の至りで一気にやるのも手。プログラマの平均単価が50〜100万らしいので、日本人らしく間を取って75万としよう。自動化以外の仕事もしているが、単純計算で1ヶ月100ケースで75万。1ケースあたり7,500円らしい。モバイルアプリのE2Eテストは難易度が高いのでWebのE2Eと単純比較できないが、それをいってたら話が進まないので、強引に比較してしまうと、同じぐらいのテスト1件をmablのようなサービスで作るなら、半分以下の時間でできると思う。よって、(感覚だけど)100ケース75万かかるのが半額37.5万ぐらいで作成できる。時間をコストとして考えると、リードタイムは1ヶ月が半月になる。自動テスト基盤と自動テストのメンテコストイニシャルコストが見えてきたので、ランニングコストを考えてみる。こちらも同じく、基盤とテストの2種類考えなければならない。言うまでもないが、クロスブラウザ環境やクロスOS環境を構築するため、そのメンテナンスコストが必要になってくる。このあたりは末村さんのスライドがわかりやすく、きっと多くのテスト自動化職人が共感して泣いたはずだ。mablの場合、新しいバージョンのブラウザがリリースされれば、すばやく対応してくれる。基盤を支えるミドルウェアのアップデートなど考えるとコストはどんどん膨らんでいく。エンジニアの数が潤沢で、予算がたくさんあるなら問題ないが、E2Eへの期待が大きくなればなるほど、片手間でやるのは辛い作業になるだろう。自動テストのメンテナンスである。開発スピードにもよるが、機能が作成・更新されるたびにテストのメンテが必要になる。これはマニュアルテストも同じだろう。mablのようなキャプチャ&リプレイ型のテスト自動化の弱点は、UIが変化したときに弱い点だろう。そのあたりをmablのような最近のツールは、AIを使ったテストの自己修復(オートヒール)や、Flowのような共通部品化(キーワード駆動テストに近い動作ができる)によって補おうとしている。どれだけAIが賢くても、現在の技術では処理内容が変わったら人間がメンテするしかない。将来は進化するかもしれないが、自動テストの新規・修正対応や、安定化コストは発生する。前述の300万のテスト基盤構築だと、人を1名以上貼り付けてランニングコストは50万〜100万ぐらいらしい。日本人らしく間を取って75万としよう。160時間稼働で時給は4,600円ぐらいか。自分のmabl経験だと、安定化させれば100件流しても日に30分の確認で済む(オールグリーンなら確認すらしないけど)。184,000円ぐらい。環境構築はほぼゼロなので、月75万かかるのが19万ぐらいになり、時間をコストとして考えると160時間が40時間になる。まとめまだまだ隠れたコストもありそうだが、代表的な部分をカバーできたのでまとめてみよう。19万40時間コスト面で整理すると、自力でがんばるメリットは少なく感じると思う。注意したいのは、テスト自動化サービス最高!ではない点だ。ツールを使おうが自力でテスト基盤やコード作ろうが、うまく自動テストを作成し活用するスキルは必要だと思う。無駄なテストを簡単に大量に作っていてもしかたがないのだから。テストや品質は開発の外側にあるわけではなく、開発チームや開発組織が自分ごととして考えるべき共有課題だ。明確にする必要がある。QAの現場」でとてもいいコメントを頂いているのであわせてご確認いただきたい。最後に、冒頭にもあったように「開発にコストをかけようとするのに、品質になぜコストをかけようとしないのか?」について、個人的な見解を書かせていただくと、開発と同じく、品質への投資はすべきだと思う。テスト自動化ツールを導入してその価値を手に入れているお客様には「テストをスピードへの投資」と考えている点が共通する。上記のようなコスト的な削減もめざせるが、スピードへの投資を検討する企業は、今後もどんどん増えていくと思う。ソフトウェア開発の実現に向けて奮闘中。週末に娘と息子とお昼寝しながら世界のビーチや離島を旅する夢を見る。ソフトウェア開発の実現に向けて奮闘中。週末に娘と息子とお昼寝しながら世界のビーチや離島を旅する夢を見る。購読管理このバーを折りたたむコメントを読み込み中...コメントをどうぞメール名前サイト%d人のブロガーが「いいね」をつけました。