組み込みソフトウェア開発における「CIパイプライン構築」のポイントとは?

いま注目される「モダン開発ワークフロー」の手法を解説

昨今のソフトウェア開発では、リリーススピードを高めるため、クラウド、コンテナ、CI/CDなどを用いた環境、DevOpsやアジャイルなどの開発手法が採用され、短時間でビルドからテスト、フィードバックのサイクルを回せる開発ワークフローの最適化・自動化を行う、いわゆる「モダン開発ワークフロー」が注目されています。

また、モダン開発ワークフローは、いまやWebアプリ / Webサーバ開発だけではなく、多くの組み込みソフトウェア開発の現場でも取り入れられ、ソフトウェア開発の効率化が進められています。

モダン開発、モダン開発ワークフローとは何か?

モダン開発や、モダン開発ワークフローについて、明確な定義は今のところありません。
一般的に、環境を素早く整備・使用できるクラウド活用や、ソフトウェアを迅速により短いサイクルでビルドおよびテストするDevOpsなどの生産性の高い開発スタイル・考え方を総称して、モダン開発と呼ばれることが多いです。モダン開発のライフサイクルを実現するために最適化された開発ワークフローのことを、弊社ではモダン開発ワークフローと呼んでいます。

必ずしも Webアプリ / Webサーバ開発でイメージされるようなマイクロサービスやサーバーレスの技術を取り入れることがモダン開発ワークフローに必須ではなく、モダン開発の考え方を実現するために、いかに迅速かつ高頻度にライフサイクルを回せるように自動化・最適化していくか、ということがポイントであり、組み込みソフトウェアの開発においても重要な考え方です。

組み込みソフトウェアの開発トレンド

実際に組み込みソフトウェア開発においても、モダン開発の取り組みは進んでいます。近年トレンドになっている、Linux を開発ホストとしたDocker コンテナ化、軽量な IDE、汎用性・拡張性の高いビルドユーティリティなど、コンパイラやターゲットに依存せず利用可能な開発環境は、モダン開発で求められる短いサイクルでのビルド、テストを行うため、また、生産性の高い開発スタイルを実現するために、多くの最適化がなされた結果とも言えます。

例えば、シンプルなコマンドラインで完結できるビルドユーティリティであるCMake やテストツール、インフラ環境や開発環境のセットアップをコードで実現できる Docker コンテナ(Dockerfile)、コーディングやビルドの動作が軽快で、移植性・汎用性も高い Visual Studio Code などがよく利用されるようになっています。また、構成管理ツールのトレンドとしては近年では SVN より Git が圧倒的に多くなってきており、機能が豊富な Git ホスティングツールを使い、ホスティングツールに統合された CI/CD サービスを利用することが増えています。

モダン開発ワークフローを実現するCIパイプラインの構築方法

モダン開発ワークフローを実現するためには、いかにこれらツールチェーンを組み合わせたCIパイプラインを構築するかが重要です。組み込みソフトウェア開発で採用されるモダン開発ワークフローの構成や、CIパイプラインに自動テストを組み込む方法、リリースされるコードにバグを混入させない品質ゲートの設定方法など、構築方法についてさらに詳しく知りたい方は、ホワイトペーパーにて、GitHub Actionsによる構築例をもとに詳しく解説していますので、ぜひダウンロードください。

<ホワイトペーパーでさらに分かること>
・組み込みソフトウェア開発におけるモダン開発ワークフローの構成例
・GitHub Actionsを活用したCIパイプライン構築方法(自動テスト、品質ゲートの設定方法など)


組み込みソフトウェア開発におけるCIパイプライン構築の解説資料は、こちらからダウンロードください。


静的解析・単体テストツールC++test

C++testは、静的解析(コーディング規約チェック/フロー解析)、単体テスト、カバレッジの計測、実行時メモリエラー検出、効率的な運用や規格順守を補助する機能などを搭載したC言語/C++言語対応のオールインワンテストツールです。

MISRA C/C++、AUTOSAR C++14コーディングガイドライン、CERT C/C++コーディングスタンダード、CWEなどで定められた規約に基づくコーディングの支援や、単体テストやアプリケーション実行時に自動的にカバレッジを計測するなど、さまざまな要件に対応し、ソフトウェアの品質向上とテスト工数の大幅削減をサポートします。

また、C++testは、効率的な運用や規格遵守を補助する機能を搭載しています。第三者認証機関であるTÜV SÜD社よりIEC 61508およびISO 26262、IEC 62304に準拠したテストツールとして認証を取得済みです。また、CIツール連携、Docker連携、レポート生成、ダッシュボード表示など各種機能を搭載しています。

Top