eSOL Marketing Official Blog

組込み開発におけるCI導入を阻む3つの課題とその解決方法とは?システムテストの約90%をCI化した実例を元に解説

2023/04/20 11:09:15

ソフトウェア開発は刻々と変化する社会の情勢や要請に柔軟かつ迅速に対応しながら、開発コスト削減、開発効率化、品質の確保が求められています。

このような状況に対応するため、Cloud系ソフトウェア開発ではテストを自動化する継続的インテグレーション、いわゆるCI(Continuous Integration)の導入がスタンダードです。

一方、組込みソフトウェア開発でのCI 導入は色々な課題があります。本記事ではこの課題に対するイーソル製品開発チームの取り組みを少しご紹介します。

オープンソースのCIツールであるJenkins、バージョン管理ツールであるSVN(Subversion)とイーソル製IDE (統合開発環境) であるeDEVS®を組み合わせてCIを運用し、月400 時間以上のテスト工数の削減、20日必要だったテストを1日で完了させるなど自社製品の開発工数を大幅に削減しました。

なぜそのようなことが可能なのか?製品開発チームの取り組みは次の通りです。 


CI導入を阻む3つの課題

イーソルの製品開発チームは、主に3つの課題に直面し、それぞれに解決策が必要でした。

① 開発ツールの自動操作

1つ目の課題は組込みソフトウェア開発向けIDEではCLI操作の対応が不十分な場合が多く 、Jenkins 等のCI ツールを使用した自動操作が出来ないことです。

この課題については、イーソルのプラットフォーム向け開発ツールであるeDEVSはCIツールと簡単かつ迅速に連携できるよう、CLIをサポートしました。 

eDEVSは GDB(GNU Project Debugger)に対応することで、CLIでのデバッグを実現しています。
GDB対応したeDEVSとJenkins/SVNを組み合わせることで完全なCI環境を実現しています。

CICD_Blog_01

 

② ターゲットボードの自動操作

2つ目の課題は開発者がテストイメージの更新、ターゲットボードのリセットなどターゲットボードを手動で操作する必要があることです。これらの操作はeDEVSの特別な機能で自動実行が可能です。

テストイメージの更新にはeDEVSのHFS(ホストファイルシステム)機能を使用します。HFSはホストPCの特定のフォルダをターゲットボード上のメディア(SDカードなど)と同じように扱うことができます。言い換えるとターゲットボードがホストPCの特定のフォルダに自由にアクセスできるということです。ビルドしたテストイメージをHFSとして指定したホストPCのフォルダに格納するようCIツールに指示することで、ターゲットボードを手動で操作することなくテストイメージの更新ができます。

ターゲットボードのリセットは主にデバッグプローブの連携機能を使用します。テスト実行前にeDEVS からデバッグプローブを介してターゲットボードを初期化するように設定することで、ここでもターゲットボードの手動操作が不要になります。
img_blog_CICD_20230421

③ 開発機材の不足

3つ目の課題は「開発機材の不足」です。

CIツールでは複数のテストを同時に実行することが可能ですが、テスト実行数分の開発機材が必要です。なかでも世界的半導体不足の影響もあり、ターゲットボード不足はボトルネックになっています。このボトルネック解消のためイーソルではオープンソースのQEMUシミュレータやArm FVP(Fixed Virtual Platform)といったターゲットハードウェアシミュレータを使用しています。特にArm FVPは、CPU、ペリフェラル、キャッシュを含むすべてのメモリからなるArmシステムの完全かつ非常にサイクル精度の高いシミュレーションを可能にします。

Arm FVPでは、仮想Ethernet IPも利用可能です。前述のeDEVSのHFS機能と組み合わせることで、メディアアクセス、ネットワークアクセスとプラットフォーム開発に必要な基本的なハードウェア機能は仮想的に実現可能です。

このような仮想環境を使用することで、開発機材の数に関わらず複数のテストを実現しています。

 

まとめ

この3つの課題を克服することで、イーソルの製品開発チームは、全システムテストのおよそ90%をCI化しました。その結果、テスト実施工数の削減、毎日のシステムテスト実施による障害早期検出化と手戻り工数を削減しました。

しかし、CIパイプラインによる自動化・開発効率化は、継続的な改善が必要な課題であることに変わりはありません。今後はスループット計測やVLANネットワークを構築した上での通信テスト などさらなるシステムテストのCI化、例外発生個所をソースファイル上とマッピングし通知するなどの 不具合を見つけた際のデバッグへのスムースな移行支援機能の強化などで、さらなる自動化/開発の効率化を進めていきます。

イーソルでは、この能力をエンジニアリングサービスとしてお客様に提供することで、お客様のCIパイプラインにもイーソルの製品をお使いいただき、メリットを享受していただいています。CI導入やeDEVSの詳細については、イーソルまでお問い合わせください。

  • eDEVSの詳細はこちら
  • CI導入ソリューションの詳細はこちら


マーケティングコミュニケーション部 S
.A

最近の記事

ブログの更新通知を受け取る