自動化テストの成功を測定するための指標

企業は、テストの自動化に多額の投資をおこなうことで、早期に欠陥を発見し、早期リリースを目指します。そのプロセスは通常、熟練したテスターの採用から始まり、チームを編成し、多くのツールやフレームワークを使って自動化フレームワークを構築することから始まります。

多くの時間をかけてフレームワークを構築した後、チームはテストをCI/CD パイプラインに統合し、チェックインしたコードに基づいて定期的に実行します。ほとんどのチームは、これが自動テストの作成と実行のサイクル全体の終点であると考えています。

しかし、チームには、自動テストの成功を測定するために時間と研究を費やす必要があるという、もう一つの重要な側面があります。

自動化成功の測定には適さない指標

自動化の測定は非常に議論の多いテーマであり、企業は測定基準をさまざまな方法で捉えています。しかし、客観的に見て、自動化の成功の測定には適切ではないものもあります。
以下に示すのは、チームが日常的に測定する一般的な指標ですが、自動化の成功の測定には適していません。

自動化されたテストケースの数

これは、チームが自動化の成功の測定に使用する、もっとも一般的な指標のひとつです。
自動化されたテストが一定数あれば、自動化の取り組み全体が成功したと考えます。

しかし、これは自動化の成功を示す良い指標ではないかもしれません。なぜなら、自動化テストがチームに提供した実際の価値よりも、手動のテストケースを自動化するためにチームが費やした労力に焦点が当てられているからです。

また、自動化されたテストケースの数が多いからといって、正しいモジュールがテストされているとは限りません。たとえば、100個のテストケースがあり、そのうち90個が自動化されている場合、自動化したことに対して90%成功しているということになるのでしょうか?
この情報だけでは、自動化されたテストケースがチームにとって実際に価値のあるものだったかどうかは伝わりません。

見つかった欠陥の数

自動化スクリプトによって発見された欠陥の数を成功の尺度として使用することは、誤解を招きやすく、チームに誤った達成感を与えます。

たとえば、自動化スクリプトによって10個の欠陥が見つかった場合、開発者が自分の仕事を正しくおこなっていなかったことを意味する可能性があります。また、見つかった欠陥が0個の場合、自動化スクリプトが効果的でなかったことを意味する可能性があります。これらの結果を解釈する方法は複数あります。

これら2つの指標は異なる解釈が可能であるため、チームの考え方を、これらの自動テストが提供する価値から、誤った目標やベンチマークに誘導してしまう可能性があります。
ここで、チームが価値に焦点を戻すために使用できるいくつかの代替指標を検討してみましょう。

自動化成功を測定するための適切な指標

ここでは、プロジェクトやチームの状況に応じて、検討すべきいくつかの優れた測定基準を紹介します。これらの測定基準は、自動化の成功を測定する際の曖昧さを軽減し、それによってより価値のある情報を提供することができます。

短縮されたテスト時間

自動テストを構築する主な理由の一つは、貴重な手動テストの労力を節約することです。
自動テストがありふれたテスト作業を繰り返している間、テスターはより重要で優先度の高い作業に集中し、アプリケーションの探索に時間を費やし、自動化が困難で範囲であるクリティカルな思考(批判的思考)を必要とするモジュールをテストすることができます。

テスト時間がどれだけ短縮されたかは、チームにどれだけの価値が提供されたかを知るための良い指標となります。たとえば、2週間のスプリントにおいて、自動化されたテストによって手動テストの作業が2日から4時間に短縮されたとしたら、それはコストの節約であり、チームや企業にとっても素晴らしい結果となります。

自動テストの安定性

チームが4ヶ月かけて堅牢な自動化フレームワークを構築した後、実際に自動テストをおこなって不具合を発見するよりも、自動テストのメンテナンスに多くの時間を費やしたとしたら、その努力はすべて無駄になります。テストが、複数の要因によって失敗し続けるような不安定なものであった場合、チームは自動テストへの信頼をなくし、最終的にはすべての機能を手動でテストすることに戻ってしまいます。

重要なのは、少数のテストから始めて、それらを常に実行し、不安定なテストを特定し、安定したテストから分離することです。このような体系的なアプローチにより、自動テストを導入する価値を取り戻すことができます。

軽減されたリスクの数

リスクに基づいてテストに優先順位を決める必要があります。
リスクとは、ビジネスに影響を与える予期せぬ出来事、アプリケーションの欠陥が発生しやすい領域、またはプロジェクトに影響を与える可能性のある過去や未来の出来事などが考えられます。

リスクに関連して自動化の成功を測定する良い方法は、優先度の高いものから低いものまで、リスクにランクを付けることです。そして、リスクの優先順位に基づいてテストケースを自動化し、自動化されたテストによって軽減されたリスクの数をトレースします。

自動化フレームワークやテストの使いやすさ

チームはよく、自動テストはメンテナンスが少なく、誰でも簡単に実行でき、シンプルで理解しやすいコードでなければならないことを忘れがちです。また、実行されたテストについて、合格・不合格、ログ、ビジュアルダッシュボード、スクリーンショットなどの情報を提供しなければなりません。これは、自動化の取り組みが成功したかどうかの大きな指標となります。主観的な指標ではありますが、この情報はチームに大きな影響を与えます。

これらの指標はすべて、プロジェクトの状況に応じて適応させる必要があります。これは、”どのようなケースにも対応できる” ソリューションではありません。しかし、これらの指標は、意図的な数値や費やした労力ではなく、自動テストの価値に焦点を当てるよう、チームの考え方を変えるのに役立ちます。

作者について:

Raj Subrameyerは、国際的な基調講演者、ライター、およびキャリアコーチであり、技術的なバックグラウンドを豊富に持っています。 彼のBlog(rajsubra.com/blog/)では、読者の生活に役立ち、インスピレーションを与えるニュース、リソースを投稿しています。

(この記事は、開発元 Ranorex 社 Blog 「Metrics You Should Use to Measure Automation Success」2020年4月23日の翻訳記事です。)