カバレッジ(網羅率)計測
カバレッジ計測で、単体テストの網羅性を視覚的にレポート
C/C++testがレポートするテストカバレッジには、行カバレッジ、ステートメントカバレッジ、判断文カバレッジ、条件カバレッジといった、C0、C1、C2に相当するコードカバレッジや、MC/DCカバレッジ、機能安全規格(ISO 26262)対応で要求されるコールカバレッジなどが含まれています。これらの複数のカバレッジを同時に計測することができます。
また、GUI上で実行/未実行の箇所を分かりやすくハイライトで表示するため、視覚的に確認することができます。
未実行の箇所を実行するためのテストデータを提案するカバレッジアドバイザーを用いることで、効率的にカバレッジを向上させることができます。
また、GUI上で実行/未実行の箇所を分かりやすくハイライトで表示するため、視覚的に確認することができます。
未実行の箇所を実行するためのテストデータを提案するカバレッジアドバイザーを用いることで、効率的にカバレッジを向上させることができます。
9種類のカバレッジを自動的に計測
C/C++testがレポートするテストカバレッジ分析
C/C++testは、単体テスト実行時に自動的に9種類のカバレッジを計測します。行カバレッジの計測結果の例
- ブロックカバレッジ
行カバレッジに関連するメトリクスです。ブロックカバレッジが測定するコード単位は「基本ブロック」です。 ソースコード中の基本ブロックについて、制御の流れが最低 1 回達したブロックの数を示します。
- 判断文カバレッジ(C1:分岐網羅率)
制御フローが通過したソースコード中の分岐の数を示します。各「判断文」がすべての分岐点ですべての可能な出力を少なくとも1回得た場合、判断文カバレッジは100%になります。
- 単純条件カバレッジ(C2:条件網羅率)
すべての「判断文」の条件の結果に対するカバレッジを表示します。1 つの「判断文」中の条件の数を n とした場合、1つの「判断文」に対する結果の数は、2 * nになります。したがって、100% のカバレッジを得るには、すべての条件がすべての可能な結果を取らなければなりません。ただし、ある条件が1つの結果(真または偽)を取るだけで、0以外のカバレッジが取得されます。
- Modified Condition/Decision Coverage (MC/DC)カバレッジ
MC/DCは、国際技術標準 DO-178B(RTCA)に準拠しています。これは、ソフトウェア証明のための基準を指定したものであり、対象となるソフトウェアには、航空業界で使用される重要機器およびシステムのためのリアルタイム組込みシステムも含まれます。
DO-178Bに従うと、完全な(100%の)MC/DCカバレッジを得るには、次の3つの条件を満たす必要があります。
a. 各「判断文」が、少なくとも1回すべての可能な結果を得ている。
b. 1つの「判断文」中の各条件が、少なくとも1回すべての可能な結果を得ている。
c. 1つの「判断文」中の個々の条件が、単独で全体の「判断文」の結果を左右する。
カバレッジ(網羅率)とは
カバレッジ(網羅率)とは、所定の網羅条件がテストによってどれだけ実行されたかを割合で表したものです。カバレッジを計測することは、テスト自体の定量的な品質を示す1つの指標になります。網羅条件が命令であれば、命令網羅と呼ばれ(またはステートメントカバレッジ、C0とも呼ばれます)、すべての実行可能な命令のうち、テストで実行された命令の割合を意味します。そのほかに、すべての判定条件(if文による分岐など)のうち、テストで実行された判定条件を意味する判定条件網羅(ブランチカバレッジ、C1とも呼ばれます)などがあります。 テストを実施するにあたって、カバレッジ (網羅率)を測定/分析することは、ソフトウェアの品質向上に非常に大きな意味を持ちます。なぜなら、カバレッジ情報からテストそのもの品質を定量的に測ることができるからです。テストのカバレッジを測定する方法は、コードや仕様、要件、設計など、さまざまな側面から計測する方法がありますが、単体テストの段階では、コードベースのカバレッジでテストの品質を測ることが一般的です。コードカバレッジを測定し、テストが実施されていないコードを確認することにより、テストの妥当性を向上させることができます。
PICK UP
イベント・セミナー
ニュース・キャンペーン
静的解析ツール・単体テストツール C/C++testに
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- parasoft-info@techmatrix.co.jp