バックナンバーはこちら

today&tomorrow

Technology Update

  • T&T HOME
  • Technology Update
  • Virtualizer Development Kitを使用したソフトウェアの継続的インテグレーションとテスト自動化

2018 Mar. vol.109

Virtualizer Development Kitを使用したソフトウェアの継続的インテグレーションとテスト自動化~ Jenkinsのケース・スタディ

次に、ビルドを設定します。ここでは、Jenkinsから呼び出し可能な通常のシェル・スクリプトを使用します(図5)。最初に追加するのは、Linuxクロスコンパイル・プロセスを呼び出すスクリプトです。 このビルド・プロセスでは「make」およびARM GNUクロスコンパイラ・チェーンを使用します。Jenkinsはビルドの詳細な出力を記録し、エラーが発生した場合はビルド失敗として報告します。 これらの情報はすべてJenkinsのウェブ・インターフェイス内から可視化できます。ビルドが正常に完了した場合は、Linuxイメージ、ファイルシステム、ブートローダ用の新しいバイナリが作成されます。

画像

図5:Jenkinsのビルドとテストに関する設定

次に、ビルドしたソフトウェアがテストされます。ここでは、テストを制御する2番目のシェル・スクリプトを使用します。このシェル・スクリプトはLAVAを使用してテストを実行します(図5)。 LAVAの概要、およびVDKとの既存の統合の詳細については、以前のホワイトペーパー[7]をご参照ください。

[6] Jenkins: 代表的なオープンソースの自動化サーバ。https://jenkins.io/

[7] "Scaling Automated Software Testing with Virtualizer Development Kits",
https://www.synopsys.com/cgi-bin/proto/pdfdla/pdfr1.cgi?file=vdk-lava-wp.pdf

このシェル・スクリプトでは、1つのLAVAジョブが引数としてLAVAディスパッチャに渡されます。このLAVAジョブは最近ビルドしたソフトウェア、ターゲット・デバイス(この場合はARMv8 VDK)および実行するテストを指し示します。 LAVAディスパッチャとVDKシミュレーションはそれぞれの出力をJenkinsに送信し、Jenkinsでレポートが作成されます。テスト実行中に何らかの異常が発生した場合、Jenkinsは「ビルド失敗」のラベルを付けます。 次の図は、Jenkinsで記録されたLAVAおよびVDKのログの一部を抜粋したものです。

画像

図6:Jenkinsのビルドおよびテスト・ログ

まとめ

組込みソフトウェア・プロジェクトの課題とリスクに対処するには、継続的インテグレーション(CI)やテスト自動化など先進のソフトウェア手法が不可欠です。 その一方で、組込みプロジェクトではハードウェアへの依存性や配布の難しさといった理由からCIや継続的デプロイ(CD)といった手法を導入してもその利点を十分に引き出せないという問題があります。 拡張が容易なバーチャル・プロトタイピングは、(a)CIシステムを採用しているチームの組込みソフトウェア開発者、および(b)組込み製品にCDプロセスの導入を検討している品質保証部門のニーズを満たす最適なテクノロジです。 本稿ではこれらの内容についてご説明するとともに、VDK(Virtualizer Development Kit)を最も代表的なCIツールであるJenkins、 および自動化フレームワークのLAVAとシームレスに統合し、既存のテスト・フローを容易に補完および拡張する方法を、実際のケース・スタディを通じてご紹介しました。

参考文献

"Model-based Fault Injection for Large-Scale Failure Effect Analysis with 600-Node Cloud
Computers", Y. Nakata, Y. Ito, Y. Takeuchi, Y. Sugure, S. Oho, H. Kawaguchi and M. Yoshimoto.
http://www.hitachi.co.jp/New/cnews/month/2011/12/1202.html

"Scaling Automated Software Testing with Virtualizer Development Kits", http://www.techdesignforums.com/practice/technique/scaling-automated-software-testing-virtualizer-vdks/
"Is Your Automotive Software Robust Enough for Hardware Faults? Part 1: Fault Mode and Effect Analysis Using Virtual Prototyping, Physical Modeling and Simulation",
https://www.synopsys.com/cgi-bin/proto/pdfdla/pdfr1.cgi?file=automotive_software_p1_wp.pdf

カテゴリートップ