ECUソフトウェアのカバレッジを90%以上に向上させる方法 ─ GSILの自動網羅テスト─

「テストケースをどれだけ作っても、カバレッジ(網羅率)が上がらない」「想定外の組み合わせによるバグを見逃してしまう」─ 車載ECUソフトウェア開発の現場では、こうした課題がよく聞かれます。本コラムでは、Shift Leftの観点から、GSILの自動網羅テストがこれらの課題をどう解決するかを、具体的な数字とともに紹介します。

1. GSILとは

GSIL は、株式会社ユビキタスAIと株式会社エー・アンド・デイが共同開発した、車載ECUソフトウェア開発向けのシミュレーションツール(SILS:Software In the Loop Simulation)です。ECUソフトウェアをPC上で動作・検証できる仮想環境を提供し、エンジンECU・トランスミッションECU・ボディECUなど、さまざまなECUのアプリケーション検証に対応します。

GSILの主なメリット

  • 実ECU・HILS・実機が不要:PCだけで開発の早期段階から検証を開始できる
  • vECU構築の半自動化:マイコン依存部分の自動修正やスタブ自動生成により、構築工数を大幅に削減
  • ローコストで複数人数による並列開発が可能:実機の台数制約なし
  • デバッグが容易:ソフト/ハードの問題切り分けが不要で、いつでもどこでもテスト可能
  • 自動テストとCI対応:PythonテストスクリプトとJenkins/GitHub Actionsを組み合わせた組込みCIを実現

リリース後の修正コストは、要求段階の60〜100倍に達するといわれます。このような背景の中、GSILは開発の上流でバグを発見・修正する「Shift Left」を実現し、開発コストの大幅な削減に貢献します。

2. 「制約付きランダムテスト」とは何か

GSILは、制約付きランダムテストによって、人手では不可能な膨大な数の入力組み合わせを自動生成します。実機の完成を待つことなく、仮想ECU上でこれを実行できるので、開発の早い段階から高カバレッジな検証を開始できます。これがShift Leftの実践です。

重要なのは、GSILのランダムは「意味のない乱数」ではないという点です。

  • ❌ 意味のない乱数:範囲や変化率に制限のない入力
  • ✅ 制約付きランダム:現実的な範囲・変化率の中でランダムに変化する入力

例えば「アクセルペダルを0〜100%の範囲で変化率±1%/sでランダムに変化させる」「オートクルーズスイッチのオン・オフ切り替えは10秒以上経過後に行う」といった制約を設けることで、実車で起こりうる動作を模した意味のある組み合わせテストを自動で実行できます。

これにより、ゼロ割・NULLポインタアクセスなど、人手では再現しにくい実行時エラーの検出や少ない工数でのカバレッジの向上を実現します。

3. カバレッジ90%以上を10分で実現

オートクルーズのサンプルアプリケーションで比較検証しました。テストスクリプトによるテストは、オートクルーズの一連の動作(加速、車速設定、クルーズモード、ACC(加速)、COAST(減速)、オートクルーズ終了)を行うスクリプトです。

  • テストスクリプトによるテスト:Lines 60.9% / Branches 43.1%
  • 自動網羅テスト(10分間実行):Lines 99.4% / Branches 93.1%

自動網羅テストでは、Linesカバレッジを60.9%から99.4%へ、Branchesカバレッジを43.1%から93.1%へ引き上げることができました。テストケースの作成・保守に工数をかけることなく、これだけの網羅率を達成できることの価値は大きいです。なお、100%に到達しない部分については、次のデッドコード検出で説明します。


図1:テストスクリプトによるテストと自動網羅テストのカバレッジ率比較

4. 100%にならない理由 ─ デッドコードの検出

自動網羅テストにおいて、あらゆる組み合わせを実行し尽くしても実行されないコードがあれば、それは論理的に到達できない「デッドコード」である可能性が高いと判断できます。他社ツールではあまり取り上げられないこの観点も、GSILなら自動的に可視化できます。

実際の検出例では、switch文にdefault節があるために5つのブランチのうち1つが実行されないケースがあったり、特定の条件分岐が論理的に成立しないために実行されないコードが見つかったりしています。「カバレッジが100%にならない理由」を明確に切り分けて説明できるのは、品質保証上の証跡として重要です。また、MISRAなどのデッドコード禁止ルールの検証にもそのまま活用できます。


図2:自動網羅テストによるデッドコードの検出例

5. カバレッジの計測 ─ gcovとTestwellCTC++

GSILはgcovを使用した単体カバレッジ計測に対応しており、Lines・Functions・Branches・Conditionsといった指標をファイル単位で確認できます。

gcovは、gccに付属している無償のカバレッジ計測ツールです。GSILのようなPC上でのカバレッジ計測が可能ですが、MC/DC計測や実機での計測には対応していません。MC/DCや実機計測が必要な場合は、弊社で取り扱っているドイツ Verifysoft社のカバレッジ測定ツール「Testwell CTC++ 」をご利用いただけます。

  • gcovによる単体カバレッジ計測
    Lines / Functions / Branches / Conditions
  • TestwellCTC++への対応
    MC/DC計測・実機カバレッジ計測に対応

カバレッジを「測定して終わり」にせず、自動網羅テストによってカバレッジ率そのものを自動的に底上げできる点が、GSILならではの強みです。

6. まとめ ─ GSILだからできること

GSILの自動網羅テストは、制約付きランダム入力によって人手では実現できない組み合わせ検証を自動化し、短時間でカバレッジ90%以上を達成します。さらに、カバレッジが100%にならない箇所をデッドコードとして特定し、gcov・TestwellCTC++による計測と組み合わせることで、品質と網羅性の証跡を明確に示せます。

そしてこの自動網羅テストは、GSILの仮想ECU上で実行できます。実機完成前から高カバレッジな検証を開始できるため、Shift Leftと組込みCI(Jenkins/GitHub Actions連携)を自然に実現できます。

GSILは以下をひとつの環境で実現します。

  • 仮想ECU
    実機・HILSなしでPC上で動作検証
  • 自動網羅テスト
    制約付きランダムで数百万通りの組み合わせを自動検証
  • カバレッジ計測
    gcov / TestwellCTC++に対応
  • 組込みCI
    Jenkins / GitHub Actions連携

実機レス・早期検証・自動化。この3つを同時に実現できることが、他のSILSツールにはないGSILの強みです。

このコラムの著者
株式会社ユビキタスAI エンベッデッド第3事業部 担当部長 植田宏

株式会社ユビキタスAI

エンベデッド第3事業部 担当部長

植田 宏​(うえだ ひろし)

大学卒業後Tier1メーカーへ入社、ECUソフトウェア開発を行う。その後海外で組込みソフトウェア開発エンジニアの経験を経て、帰国。1998年より車載系ソフトウェアの技術営業に従事。自身の経験を活かし、課題解決に役立つ海外のソフトウェア商材を取扱い、国内のエンジニアへ届けている。

より詳しく技術や​関連製品について​知りたい方へ

お気軽相談

本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。


製品情報

車載ECUソフトウェア開発向けシミュレーションツール

GSIL

ハードウェア完成前にPC上でECUソフトウェアを検証
製品ページを見る
製品情報

カバレッジ測定ツール

Testwell CTC++

組込み向けターゲットシステム向けカバレッジ測定
製品ページを見る

ECUソフトウェアのカバレッジを90%以上に向上させる方法 ─ GSILの自動網羅テスト─

コラムを読む

マルチコアRTOS設計における実装前検証 ― chronSUITEによるタスクタイミングの可視化 ―

コラムを読む

SDV・マルチコア時代のブレーキ制御ECUに求められるタイミング検証とは

コラムを読む

GSILの網羅的自動テストケース生成機能を使ったECUの信頼性向上

コラムを読む

ソフトウェアアプリケーションの実行速度高速化技術

コラムを読む

組込み制御ソフトウェアでのCIの課題と実現方法

コラムを読む

イベントチェーンを応用した車載ECUのタイミング検証

コラムを読む

車載制御ECUソフトウェア教育向けパッケージGTrainerとは

コラムを読む

システムテストのカバレッジ測定

コラムを読む

組込み制御ソフト開発へのシミュレーション応用による開発効率向上

コラムを読む

CANを使用したSILSテスト ―車両全体シミュレーション、テストケース再利用―

コラムを読む

GSILのMILS開発への適用

コラムを読む

GSILのCI(Continuous Integration)適用

コラムを読む

OEM⇔サプライヤでのECU制御ソフトウェア環境共有による手戻り工数削減方法

コラムを読む

SILSを使用した車載制御ECUソフトウェア開発競争力強化

コラムを読む

車載ECUシミュレーションでテスト資産を活かすための技術とは?

コラムを読む

早期の車載ECUタイミング検証の実現

コラムを読む
メニューを閉じる
一つ前に戻る