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

CI(Continuous Integration:継続的インテグレーション)は開発における自動化プロセスであり、開発者がソースコードをコミットした後に静的解析、単体テスト、結合テストなどを行い、結果を確認するといった各種工程を自動化する、つまり「ソースコードをコミットするたびに継続して後工程を自動化する」ことで、開発を効率化することができます。

ソフトウェア開発では、CIを行うことが一般的になりつつあります。しかし、組込みソフトウェアでは実機で自動テストを行う必要があるため、CIの実現が難しいのが現状です。

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

お気軽相談

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

1. GSILによる組込みソフトウェアでのCI実現

GSILは、ユビキタスAIが開発、販売しているシミュレーションツールです。GSILを使用することで、組込みソフトウェアでもCIを実現することができます。

GSILによりCIが可能となる理由

  • 組込みソフトでは実現が難しいテスト入力/出力確認が可能
  • 実機(ハードウェア)によって異なるドライバなどの対応が不要
  • Pythonを使用した自動テストが可能

シミュレーション向け環境のGSILでは、検証環境をPCで実行可能なgccなどのコンパイラを使ってテスト対象のソフトをビルドします。その際、入力・出力は、VBUSと呼ばれるBUS上にデータをリードライトできるようにしています。

GSILを使用したPC上でのシミュレーション

GSILには、入出力用のGUIが備えられているので、そのGUI上でスライダーなどを使って入力を変化させ、プロッターで出力結果を確認できます。また、CSVファイルに入力を入れてテスト実行することも可能です。
GSILは、入出力をVBUSに直接リードライトします。BSWの部分はシミュレーション対象外となるので、実機ごとに異なるデバイスドライバ対応を行う必要はありません。

2. Pythonを使用した自動テスト

GSILは、Pythonを使用した自動テストが可能です。

Pythonによる自動テストスクリプト
Pythonによる自動テストスクリプト

Pythonを使用してはいますが、上記のようにテスト命令の引数のフォーマットを理解すれば、Python言語を知らなくてもテストスクリプトを記述できます。

3. 自動網羅テスト

GSILでは、人手では不可能な膨大な入力のテストを自動で生成、テストする、自動網羅テストを行うことができます。これにより、再現性が低く見つかりにくい、起きると機器がフリーズしてしまうようなゼロ除算、バッファオーバーランなどの実行時エラーを発見します。

自動網羅テストでのゼロ除算検出例

4. まとめ

GSILを使用することで、組込みソフトウェア制御開発におけるCIの課題を克服します。ソフトウェア開発者がコードを書き、コミットするだけで自動テストが行われ、結果をすぐに確認し、もし問題があればGSILでデバッグ再テストを行う、といったことが可能になります。

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

株式会社ユビキタスAI

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

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

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

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

お気軽相談

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


製品情報

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

GSIL

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

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

GSILのMILS開発への適用

コラムを読む

GSILのCI(Continuous Integration)適用

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

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