GSILの網羅的自動テストケース生成機能を使ったECUの信頼性向上
1. 実行時エラーとは
実行時エラーとは、コンパイル時には不具合かどうかわからない、プログラムを実行したときに発生するエラーで、ゼロ除算、バッファオーバーランなどのエラーをいいます。実行時エラーが発生するとマイコンが停止したり、リセットしたりします。実行時エラーは、テストをしても見つからない可能性があります。特にプログラムが複雑になってくると、特定の条件下で稀にしか起こらないといったことがあります。自動車の機能を制御するECUに実行時エラーが起きると、特に運転中は危険な状態になるため絶対に避けなければいけません。
実行時エラーは、静的解析ツールで検出することも可能です。ユビキタスAIが提供している静的解析ツールCodeSonar は、自動車ECU開発で多くの採用実績がある静的解析ツールです。特に未検出が少ないという特長を持つCodeSonarですが、静的解析ツールはその原理からどうしてもエラーの未検出、誤検出が出てきます。実行時エラーを回避するには、同時に数多くのテストを行う必要がありますが、単体テストで数多くのテストケースを作成するには工数がかかります。実機テストを行うには準備が大変ですし、実行時エラーが起きてもデバッグが難しく、原因を探るのには長い時間を必要とします。
2. GSILによる網羅的自動テストケース生成機能
GSIL は、網羅的な自動テストケースを生成することができる、制御ECU開発向けシミュレーションツールです。人手では不可能な膨大なテストケースを、短時間で実行することが可能になります。GSILでは、特定の変数をランダムに変更することでこれを実現していますが、単にランダムに変数を変更するだけではまともなテストになりません。
例えば、自動車のオートクルーズシステム(車を特定の目標速度に保つ機能)のテストを行う場合、変更させる入力には「アクセルペダルの開度」「オートクルーズスイッチ」などが挙げられます。この場合、アクセルペダルが非常に短い間隔で全閉・全開状態を繰り返したり、オートクルーズスイッチが非常に短い間隔でオン・オフ状態を繰り返したりしてもオートクルーズの状態にはならず、まともなテストになりません。GSILではそのようなことを避けるため、変数に制約を付けることができます。「アクセルペダルを0.1秒間に最大で1%の変化にする」「オートクルーズのスイッチの状態を必ず1秒以上経過した後に変化させる」といった制約を付けることで、実際の車で起きるようなテストにすることが可能になるわけです。
より詳しい技術や関連製品について知りたい方へ
本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。
3. GSILの実行時エラー検出例
以下は、網羅的自動テストを、オートクルーズのサンプルアプリケーションで行った例です。このアプリケーションのECUソースコードには、ゼロ除算の実行時エラーが含まれています。このゼロ除算は、非常に起きにくいように実装されています。GSILは、作成したテストケースを使ったテストや手動のテストではほんと起こり得ない実行時エラーを、テストの実行から162秒後に検出しています。
4. まとめ
実行時エラーは、数多くのテストをしても見つからないことがあり、もし発生すると重大な問題となる可能性があります。GSILの自動網羅テスト機能を利用することで、実行時エラー発見の可能性を大幅に高め、ECUの信頼性を向上させることができます。
このコラムの著者
株式会社ユビキタスAI
エンベデッド第3事業部 担当部長
植田 宏​(うえだ ひろし)
大学卒業後Tire1メーカーへ入社、ECUソフトウェア開発を行う。その後海外で組込みソフトウェア開発エンジニアの経験を経て、帰国。1998年より車載系ソフトウェアの技術営業に従事。自身の経験を活かし、課題解決に役立つ海外のソフトウェア商材を取扱い、国内のエンジニアへ届けている。
より詳しい技術や関連製品について知りたい方へ
本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。
ソフトウェアアプリケーションの実行速度高速化技術
2024.09.04
組込み制御ソフトウェアでのCIの課題と実現方法
2024.09.02
イベントチェーンを応用した車載ECUのタイミング検証
2024.08.30
車載制御ECUソフトウェア教育向けパッケージGTrainerとは
2024.08.08
システムテストのカバレッジ測定
2024.06.13
組込み制御ソフト開発へのシミュレーション応用による開発効率向上
2024.06.04
CANを使用したSILSテスト ―車両全体シミュレーション、テストケース再利用―
2024.05.27
GSILのMILS開発への適用
2023.12.20
GSILのCI(Continuous Integration)適用
2023.09.22
OEM⇔サプライヤでのECU制御ソフトウェア環境共有による手戻り工数削減方法
2023.07.25
SILSを使用した車載制御ECUソフトウェア開発競争力強化
2023.07.20
車載ECUシミュレーションでテスト資産を活かすための技術とは?
2022.05.16
早期の車載ECUタイミング検証の実現
2021.08.27