システムテストのカバレッジ測定
カバレッジ測定は、テストの「進捗率把握」「終了基準」の一つとして使用されます。
例えば、C0(ステートメントカバレッジ)と呼ばれるカバレッジでは、測定対象のソースコード行数に対してテストで実行された行数の割合となります。
例:コード行数が100行あり、テストで実行された行数50行の場合、カバレッジ率50%。
カバレッジ率が100%となればすべての行が実行されたという証明になり、ここでテストを終了する一つの基準としたり、受託開発であれば、発注元にどれだけのテストを行ったかというデータとして提出したりすることができます。
ただし、カバレッジ率が100%になったからといってすべての入力の組み合わせをテストしたということではありませんし、不具合が無いことの証明にもなりません。
1. 組込みでは難しいシステム全体のカバレッジ測定
組込みソフトウェアでは、一般的に単体関数のカバレッジ測定(単体テスト)は行われていますが、システム全体での測定はあまり行われません。その理由は、カバレッジ測定にはインスツルメントという仕組みにより測定用のマクロをソースコードに埋め込むとともに、測定データを記録するためのメモリーが必要ですが、組み込みの実機にはROM、RAM容量に制限があるので、全体のカバレッジ測定を行うことが難しいためです。
しかし、単体テストでのカバレッジ測定に比べて、システム全体でのカバレッジ測定には以下のメリットがあります。
- ドライバ、スタブを実装する必要が無く、テストの準備が容易
- 単体テストより少ない労力で多くの組み合わせテストが可能
- 複数の関数をスタブではなく実際の関数で呼び出すので、より実際の動作に近いテストが可能。
より詳しい技術や関連製品について知りたい方へ
本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。
2. 組込みシステムに適したカバレッジ計測ツールの利用
ユビキタスAIが国内販売するVerifysoft Technology社のTestwellCTC++は、ROM、RAM容量が少ない環境でもシステム全体に対してカバレッジの測定が可能な、カバレッジ測定ツールです。TestwellCTC++を利用することで、メモリー容量に制限がある組込みシステムでも、システム全体でカバレッジ測定を行うことが可能になります。
カバレッジ測定結果レポート(カバレッジ率)
カバレッジ測定結果レポート(未実行個所の表示)
3. 自動網羅試験で実行時エラーを自動検出
ユビキタスAIが販売するGSIL には、自動網羅試験機能があります。人手では不可能な膨大な入力の組み合わせをテストすることで、ゼロ除算、バッファオーバーランなどの発見しにくい実行時エラーも自動で検出し、システムの信頼性向上が可能となります。この機能をTestwellCTC++に応用すれば、テストケースを作成しなくても高いカバレッジ率を達成することができます。
自動網羅テストの例
TestwellCTC++は、コンソールからのインスツルメント実行、テスト実行、カバレッジデータ処理が行えるので、CI/CDを容易に実現可能です。
CI/CDの構築例
4. まとめ
このように、TestwellCTC++は、組込み制御ソフトウェアのシステムでのカバレッジ測定に使用することで、テスト準備工数削減、信頼性向上、CI/CDを容易に実現することが可能となります。
ご興味ある方は、下のボタンからお問い合わせください。TestwellCTC++についてより詳しくご説明いたします。
このコラムの著者
株式会社ユビキタスAI
エンベデッド第3事業部 担当部長
植田 宏​(うえだ ひろし)
大学卒業後Tire1メーカーへ入社、ECUソフトウェア開発を行う。その後海外で組込みソフトウェア開発エンジニアの経験を経て、帰国。1998年より車載系ソフトウェアの技術営業に従事。自身の経験を活かし、課題解決に役立つ海外のソフトウェア商材を取扱い、国内のエンジニアへ届けている。
より詳しい技術や関連製品について知りたい方へ
本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。
ソフトウェアアプリケーションの実行速度高速化技術
2024.09.04
組込み制御ソフトウェアでのCIの課題と実現方法
2024.09.02
イベントチェーンを応用した車載ECUのタイミング検証
2024.08.30
車載制御ECUソフトウェア教育向けパッケージGTrainerとは
2024.08.08
組込み制御ソフト開発へのシミュレーション応用による開発効率向上
2024.06.04
CANを使用したSILSテスト ―車両全体シミュレーション、テストケース再利用―
2024.05.27
GSILのMILS開発への適用
2023.12.20
GSILのCI(Continuous Integration)適用
2023.09.22
GSILの網羅的自動テストケース生成機能を使ったECUの信頼性向上
2023.09.13
OEM⇔サプライヤでのECU制御ソフトウェア環境共有による手戻り工数削減方法
2023.07.25
SILSを使用した車載制御ECUソフトウェア開発競争力強化
2023.07.20
車載ECUシミュレーションでテスト資産を活かすための技術とは?
2022.05.16
早期の車載ECUタイミング検証の実現
2021.08.27