組込み制御ソフトウェアでの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事業部 担当部長

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

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

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

お気軽相談

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


製品情報

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

GSIL

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

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

GSILのMILS開発への適用

コラムを読む

GSILのCI(Continuous Integration)適用

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む

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

コラムを読む