コードカバレッジと単体テスト

組み込み機器において、機器の差別化のためソフトウェアの重要度が増してきています。また、ソフトウェアの信頼性、品質の確保に対する要求も高まっています。このような背景の中、一般的にソフトウェアの品質はソフトウェアテストによって担保されることが多いです。

しかしながら、ソフトウェアの多機能化、複雑化や大規模化によって、テスト工数の割合が増加しています。

コードカバレッジとは

限られた工数の中で、開発しているソフトウェアのコードに対し、信頼性や品質を確保するためのテストを実施するには「どの程度テストを実施したか」を表す指標が必要です。このテスト実施具合の指標を数値化して表したものをコードカバレッジと言います。機能安全認証においては、動的解析および試験において要求される技法として、カバレッジの解析による構造のテストが求められています。

コードカバレッジの効果

コードカバレッジを測定することで、テストによって対象のプログラムコードがどれだけ実行されたかを判定し、テストの実施率を評価することが可能になります。また同時に、テストが実施されていない命令文や分岐文を確認することができるため、未検証のコードや不用なコード、及び不足しているテストデータを早期に発見し、品質向上につながるテストを実施することが可能になります。

※以下、「コードカバレッジ」を「カバレッジ」と表現します。

カバレッジの種類

カバレッジには、テストに合わせて複数の種類がありますが、ここでは一般的に利用されている、ステートメントカバレッジ(C0)、判断文カバレッジ(C1)、コンディションカバレッジ(C2)、MCDCのご紹介と、車載システムのテストで利用されることが多い、関数カバレッジ、コールカバレッジをご紹介します。

  • ステートメントカバレッジ(命令網羅率:C0)
  • 判断文カバレッジ(分岐網羅率:C1)
  • コンディションカバレッジ(条件網羅率:C2)
  • MC/DC(Modified Condition/Decision Coverage)
  • 関数カバレッジ
  • コールカバレッジ
  • その他のカバレッジ

※各カバレッジの詳細は、DL資料をご確認ください。

単体テストツールの利用

ご紹介したカバレッジを単体テストの工程で計測する場合、数百、数千のテストケースの実行結果を収集し、カバレッジの計算を手動で行うという事は現実的ではありません。そこで、単体テストツールを用いて、効率的にテストを実施することが一般的になってきています。ツールは実行結果を収集し、カバレッジを計算する作業を自動化してくれます。

では、カバレッジを計測するうえで、ツールに求められる条件は何でしょうか?

続きは資料DLしてご覧ください。

作成:テクマトリックス株式会社

2023年2月