サイトアイコン TestRail Blog

自動テストカバレッジを改善する方法 

Taryn McMillan 著

自動テストカバレッジとは、自動化されたテストによってどの程度アプリケーションが検証されたかを意味します。通常はパーセンテージで表される数値です。テストカバレッジが高いことは、リリースの前にアプリケーションのより広い範囲がテストされ、エンドユーザーのエクスペリエンスを妨げる欠陥が少なくなり、ソフトウェアの品質が向上することを意味します。

テスト自動化カバレッジの改善に向けた具体的な5つのアクション

  1. 自動化するテストを決定する
  2. 適切なテストツールを選択する
  3. 適切なテストカバレッジ種類を選択する
  4. 自動テストカバレッジを評価するためのメトリクスを決定する
  5. テストのメンテナンスに投資する

1.自動化するテストを決定する

何を自動テストツールによってテストし、何を手動でテストするかを決定するための具体的なガイドラインを策定するべきです。自動化の範囲を決定する作業は、自動化実行可能性分析と呼ばれることがあります。 

アジャイルテストクアドラントを利用すると、目的によってテストを分類できます。開発のガイドとなる技術指向のテストは、ほぼどのような場合も自動化の良い候補です。

個々のテストに関して考慮すべきその他の条件は以下のとおりです。 

2.適切なテストツールを選択する

自動化フレームワークを決定する前にプロジェクトの要件を考慮します。SeleniumCypressPlaywrightが最もよく知られていますが、アプリケーションによっては、最適な選択肢ではないかもしれません。フレームワークを採用する前にリサーチを行い、サポート対象言語、クロスプラットフォーム互換性、使いやすさなどの観点から必要条件を検討します。

テスト管理ツールの選択についても同様に検討します。要件カバレッジに関しては、要件とテストケースの間のリンクをわかりやすく視覚化するツールが必要になるでしょう。たとえば、TestRailのようなツールは、双方向の統合によってJiraの課題とTestRailの特定のテストケースおよび結果をリンクし、QAチームと開発チームの両方が相手の作業を参照できるようにします。

3.適切なテストカバレッジ種類を選択する

カバレッジ種類はテストの特定の領域で不足しているカバレッジを検出するのに役立ちます。 

QAチームによっては、カバレッジ種類とメトリクスが同じ意味で使われることもあります。 

カバレッジ種類はカバレッジの計測に使用するアプローチです。メトリクスは実際の計測値そのものです。 

下の表は、一般的な5つのカバレッジ種類とそれを利用するべき理由です。

種類定義利用する理由
製品カバレッジどの程度製品の全体的な機能をテストしたかを計測します。テストがすべての重要な機能をカバーしたことを保証します。複雑でリスクの高い領域、または未テストの領域を検出するのに役立ちます。
要件カバレッジユーザーストーリー、機能要件、非機能要件を特定のテストケースに対応付けます。ストーリーおよびすべてのプロジェクト要件が検証されたことを保証します。
リスクカバレッジテスト作業がどの程度ハイリスク領域をカバーしたかに着目します。ユーザー認証などの脆弱な領域に的を絞ったテストを作成するのに役立ちます。
互換性カバレッジさまざまなプラットフォーム、ブラウザー、OS、その他の技術のうち、どこまでがテストに含まれているかを検証します。複数の環境および構成にわたってユーザーエクスペリエンスが一貫していることを保証するのに役立ちます。
境界値カバレッジテストがどの程度境界値またはエッジケースをカバーしているかに着目します。入力値の範囲内でバグやその他の問題を検出するのに役立ちます。

4.自動テストカバレッジを評価するためのメトリクスを決定する

テストカバレッジメトリクスは、カバレッジがどの程度網羅されているかを評価します。テストプロセスを評価する際に検討するべきメトリクスには、以下のようなものがあります。

5.テストのメンテナンスに投資する

通常、テストのメンテナンスは、特定のフェーズというよりも、スプリントを通して継続されるプロセスです。メンテナンスはレグレッションテストとともにソフトウェアの最近の変更に対処します。 

テストのメンテナンスに分類されるアクティビティには、以下のようなものがあります。

よいテストカバレッジとは

何がよいテストカバレッジであるかは、コンテキストによって多少異なります。

一般的には、よいカバレッジとは以下のような特徴を備えています。 

テスト管理ツールを利用して自動テストカバレッジを改善する方法 

テスト管理ツールは、構造化されたフレームワークを提供し、自動テストケースの管理を合理化することで、自動テストカバレッジを改善します。自動テストカバレッジの改善において、TestRailが特に役立つ点は以下のとおりです。

画像: 1つのコラボレーションプラットフォームで階層フォルダーを使用して自動テストケースと手動テストケースを管理、分類、追跡
画像: Selenium、単体テストフレームワーク、Jenkinsなどの継続的インテグレーション(CI)システムなど、一般的に利用されるツールのうちどれを利用している場合でも、TestRailはほぼどんなツールとでも統合できます
画像: QA活動の全体像を示すテスト分析およびレポートによってデータ駆動型決定を加速します。

テストカバレッジに関しては、常に改善の余地があります。

TestRailの機能を活用すると、自動化作業を効率的に管理し、カバレッジの不足を検出し、高いレベルのテストカバレッジを実現できます。今すぐ30日間の無料トライアルを開始してください。

自動テストカバレッジのFAQ

なぜ高いテストカバレッジが重要なのですか?

以下の自動テストカバレッジの投資効率が高い領域の例を参照してください。 

テストカバレッジとコードカバレッジは何が違うのですか?

全体的なテストカバレッジと比較して、コードカバレッジはより細かいメトリクスです。コードカバレッジは主に単体テストにフォーカスし、定量化が容易です。

コードカバレッジを計算するには、テストスイートによってカバーされたコード行数を実行可能な行の総数で割ります。この値を100倍したものがカバレッジ率です。

コードカバレッジ = (テストによってカバーされたコード行数/総コード行数) x 100

さらに細かく分けると、テストでカバーされたブランチ、ステートメント、パスの数に着目し、合計コード行数と比較することもできます。 

いっぽう、テストカバレッジはより広いメトリクスであり、ソフトウェアの複雑な性質から、定量化はより困難です。 

1つのアプローチとして、すべてのプロジェクト要件のリストを用意します。このリストと、要件ごとに成功したテストの数を比較します。 

テストが成功している場合、要件はカバーされたとみなせます。カバーされた要件を数え、下記の式に従ってテストカバレッジを算出します。

テストカバレッジ = (カバーされた要件の数/要件の総数) x 100

テストカバレッジとコードカバレッジが同じ意味で使われていることがよくあります。これらは別個の、しかし関連するメトリクスです。どちらも自動テストの成功度合いを計測するのに役に立ちます。

次の表は、テストカバレッジとコードカバレッジの類似点と差異点を分類したものです。

テスト属性テストカバレッジコードカバレッジ
定義テストがどの程度プロジェクトの要件および機能をチェックしたかテストがどの程度プロジェクトの要件および機能をチェックしたか
機能テストまたは非機能テスト機能テストおよび非機能テストの両方に関係する通常は機能テストに関係するが、パフォーマンステストなどの非機能シナリオでも役に立つ場面がある
テストの種類統合テスト、受け入れテスト、レグレッションテスト単体テスト、システムテスト、統合テスト
関連するツールテスト管理ではTestRail、課題追跡ではJira、テスト自動化ではSeleniumなどPythonではCoverage.py、JavaではJaCoCo、JavaScriptではIstanbul など
ホワイトボックステストまたはブラックボックステストブラックボックステストまたはホワイトボックステストホワイトボックステスト
計測可能性テストカバレッジは要件、機能、利用シナリオなど多くの要素を含む幅広い用語のため、定量化は困難数式を使用した定量化が容易

(この記事は、開発元Gurock社の Blog 「How to Improve Automation Test Coverage」2022年12月4日の翻訳記事です。)

関連する製品

テスト管理ツール TestRail

テストケースの管理やテスト結果の記録、チームでの情報共有など、Excelを使ったテスト管理の業務に限界を感じていませんか?TestRailはシンプルで使いやすいUIを提供し、テストにかかるさまざまな管理コストの削減に貢献します。

■ TestRailの特長 ■

日本国内では、テスト管理にExcelを使っていたお客さまからの乗り換えが多く、Web上で完結するテスト管理を実現されています。

TestRail でテスト管理のお悩みを解決しませんか?

モバイルバージョンを終了