ソフトウェア テストにおけるテスト カバレッジ
テストカバレッジとは何ですか?
テスト カバレッジは、一連のテストによって実行されるテストの量を測定するソフトウェア テストの指標として定義されます。 これには、条件付きステートメントのどの分岐が選択されたかを判断するために、テスト スイートの実行時にプログラムのどの部分が実行されるかに関する情報の収集が含まれます。
簡単に言うと、テストがコードをテストしていること、またはテストの実行によってコードのどの程度がテストされているかを確認するための手法です。
テストカバレッジとは何ですか?
- 一連のテスト ケースで実装されていない要件の領域を見つける
- 追加のテスト ケースを作成してカバレッジを増やすのに役立ちます
- 品質チェックの間接的な方法であるテストカバレッジの定量的尺度を特定する
- カバレッジを拡大しない無意味なテスト ケースを特定する
テストカバレッジはどのように達成できるのでしょうか?
- テストカバレッジは、ピアレビュー、検査、ウォークスルーなどの静的レビュー手法を実行することで実行できます。
- アドホックな欠陥を実行可能なテスト ケースに変換することによって
- コード レベルまたは単体テスト レベルで、自動化されたコード カバレッジ ツールまたは単体テスト カバレッジ ツールを利用することでテスト カバレッジを達成できます。
- 機能テストのカバレッジは、適切なテスト管理ツールの助けを借りて実行できます。
ソフトウェアエンジニアリングにおけるテストカバレッジの利点
- テストの品質を保証できます
- リリースまたは修正のためにコードのどの部分が実際に変更されたのかを特定するのに役立ちます。
- アプリケーション内のテストされていないパスを特定するのに役立ちます。
- 防ぐ 欠陥 漏れ
- 時間、範囲、コストを管理できる
- プロジェクトのライフサイクルの初期段階での欠陥の防止
- アプリケーションで使用されるすべての意思決定ポイントとパスを決定できるため、テスト範囲を増やすことができます。
- ユニットレベルおよびコードレベルでの要件、テストケース、欠陥のギャップを簡単な方法で見つけることができます
コードカバレッジとテストカバレッジの主な違いは何ですか?
コードカバレッジ およびテスト カバレッジは、アプリケーション コードの品質を評価できる測定手法です。
これらの取材方法のブース間の重要な違いをいくつか示します。
Parameters | コードカバレッジ | テストカバレッジ |
---|---|---|
定義 | アプリケーションの実行中にアプリケーション コードが実行されるときに使用されるコード カバレッジ用語。 | テスト カバレッジとは、テスト計画全体を意味します。 |
目標 | コード カバレッジ メトリックは、チームが自動テストを監視するのに役立ちます。 | テスト範囲には、アプリケーションの記述されたコーディングがテストされたレベルに関する詳細が示されます。 |
サブタイプ | コード カバレッジは、ステートメント カバレッジ、条件カバレッジ、ブランチ カバレッジ、Toogle カバレッジ、FSM カバレッジなどのサブタイプに分割されます。 | テスト カバレッジ メソッドのサブタイプはありません。 |
テストカバレッジの計算式
テスト カバレッジを計算するには、以下の手順に従う必要があります。
ステップ1) ソフトウェアの品質に含まれるコードの総行数 テスト
ステップ2) すべてのテスト ケースが現在実行しているコードの行数
次に、(X を Y で割った値) に 100 を掛けた値を求める必要があります。この計算の結果がテスト カバレッジ % です。
例:
システム コンポーネント内のコードの行数が 500 で、既存のすべてのテスト ケースで実行される行数が 50 の場合、テスト カバレッジは次のようになります。
(50 / 500) * 100 = 10%
テストカバレッジの例
例1:
たとえば、テストしたいアイテムが「ナイフ」であるとします。 次に、野菜や果物が正確にカットされているかどうかを確認することに重点を置く必要があります。 ただし、ユーザーが快適に操作できるかどうかなど、他の側面も考慮する必要があります。
例2:
たとえば、メモ帳アプリケーションを確認したい場合。 次に、その重要な機能を確認することは必須です。 ただし、他のアプリケーションを使用しているときにメモ帳アプリケーションが期待どおりに応答すること、ユーザーがアプリケーションの使用法を理解していること、ユーザーが異常なことをしようとしてもクラッシュしないことなど、他の側面をカバーする必要があります。
テストカバレッジの欠点:
- 自動化するツールがないため、テスト カバレッジ内のタスクのほとんどは手動で行われます。 そのため、要件を分析してテストケースを作成するには多大な労力がかかります。
- テスト カバレッジを使用すると、機能をカウントし、複数のテストに対して測定することができます。 しかし、常に判断ミスの余地が存在します。