勘違いしないで欲しい自動テストの時間のあり方

ライフイズテックで1人QAを担当しているotkyskです。いつもブログをご覧いただきまして誠にありがとうございます。
前回の記事で自動テストツールを選定し、細々と実装・運用してきての気づきを書きたいと考えました。


一般的な自動化の導入目的

新規機能開発が進むにつれて、更新やリファクタリングが行われない既存機能に対してのデグレテストを手動でやるコストが増大しないよう、自動テストを導入して抑止するのが目的かと言われています。ここでは「手動でやるコストの抑止」として明記しておきます。

プロダクトアップデートに伴う自動化率の推移
(赤が自動、青が手動、縦軸はそれぞれの割合)

自動テストにかかるトータルの時間

自動テストを導入する事で前述した「手動でやるコストの抑止」は実現できますが、「自動テストにかかるトータルの時間」は、ほぼ変わらないです。
簡単に言えば、自動テストの対象となるテストケースが増えれば自動テストにかかる時間も増えるからです。ここで勘違いしやすいのが、自動テストを導入する事で「全体のテストにかかる時間」の抑止ができると勘違いしやすいです。
結果、「全体のテストにかかる時間」は増えます。ただし、「手動でやるコストの抑止」は成立しているのです。

自動テストが有効だと考えられやすい指標や成果を考えてみた

以下のような事が自動テストが有効だと考えられやすい指標や成果かと考えてみました。

  • 指標

    • 既存機能のリグレッションテストが増えるにつれて、どれだけ自動化率が発揮されているかを明確にする。

    • 自動テストのランニングコスト

      • 無料プランを使っているので0円。当面は維持できるが、プロダクトの規模が大きくなるにつれてプランの検討をする可能性もある。(それでも次のプランは93,000円/年間)

  • 成果

    • 開発者が急な自動テストを依頼してもすぐに出来る。

      • 開発者の精神が安心する。

        • 本当ならCircle CIやgithub actionsと連携して任意のテストシナリオが動くように今後はしたい。

最後に

自動テストにかかる時間は掛かれど、コストは0なので、遠慮なく自動テストツールを酷使してみようと、「全体のテストにかかる時間」が増えようが、改めて考えた次第です。
自動テストツールの選定や導入にお迷いの際はコメント頂けますと幸いです。

現在インフラ/SREグループのメンバーを絶賛募集中なので、ご興味があればぜひご連絡ください!


いいなと思ったら応援しよう!