ATS|テスト自動化

2025.2.13

【第4回】:テスト自動化のベストプラクティス

IVIシステム開発のためのアジャイル戦略

近年、自動車に情報とエンターテインメントをもたらす「IVI(In-Vehicle Infotainment)システム」の開発において、アジャイル型アプローチの導入が注目されています。アジャイルがもたらす迅速性・柔軟性は、IVIシステム開発においても大きなメリットがあります。

しかしながら、IVIシステム開発へのアジャイル導入は容易ではありません。スピードと品質という、相反する要求を同時に満たさなければならないためです。開発プロセスを効率化しつつ、効果的に品質を担保するうえでは、テスト工程の自動化が不可欠となります。

前回は、アジャイル型IVIシステム開発に求められる具体的なテストの要件をお伝えしました。詳細については、第3回の記事をご一読ください。

【第3回】:アジャイル型IVIシステム開発に求められるテスト要件

アジャイル型IVIシステム開発のテスト自動化には、適切なソリューションの選定と効果的な適用が求められます。その実現に向けて、テスト自動化の指針となるベストプラクティスを理解することが肝要です。

第4回となる本記事では、テスト自動化のベストプラクティスの一例として「Eggplant」を活用した具体的な適用ケースを紹介します。

Eggplantとは

Eggplantとは、「探索的テスト」の自動化を実現する革新的なプラットフォームです。一般的な探索的テストでは、熟練したテスターが経験を活かし、次のテストケースを探索しながら実行します。人間的な思考プロセスをともなうため、従来は自動化が困難でした。

しかしEggplantは、AI(人工知能)とモデリング手法を駆使することで、探索的テストの高度な自動化を実現。ソフトウェアの画面遷移や状態遷移をモデル化し、膨大な知識を蓄積したAIが探索することで、高精度なテストケースの探索を可能にしました。

探索的テストではテスト設計・テスト実行を並行的に進めますが、Eggplantはこれら両方の自動化が可能です。これにより、IVIシステム開発のテスト担当者の負担軽減はもちろん、アジャイルに求められる迅速・反復的なテストプロセスの実現も可能となります。

Eggplantによるアジャイル型IVIシステム開発のテスト自動化

Eggplantは様々なツールと連携でき、テスト自動化を包括的に自動化することが可能です。ここでは、アジャイル型IVIシステム開発におけるEggplantの適用ケースを3つに分けて紹介します。

UIテストの自動化

Eggplantはリモート技術や画像認識技術を活用することで、UIテストの高度な自動化を可能とします。具体的には、試験端末にEggplantを導入し、IVIシステムや「CANoe」などのテストツールと接続する、といった適用ケースが一例です。

IVIシステムへのEggplantの適用

EggplantはVNC(Virtual Network Computing)やRDP(Remote Desktop Protocol)といったリモート技術をサポートしており、IVIシステムの画面をリアルタイムに制御できます。リモート技術を介してテストスクリプトのUI操作指令を送ることで、テスターの手動操作を再現し、その挙動を検証することが可能です。

また、EggplantのAIは画像認識やOCR(光学文字認識)を活用することで、結果判定の精度も飛躍的に向上させます。表示位置や表示内容のわずかな差異を正確に検出できるため、人的ミスを防止することが可能です。

非機能テストの自動化

Eggplantと非機能テストツールを連携させることで、非機能テストの自動化が可能です。Eggplantのテストモデルに非機能テストツールを組み込むことで、自動生成するテストケースに非機能テストの観点を追加し、幅広い要件に対応したテスト設計が可能となります。

Eggplantを核にしたテストプラットフォーム

たとえば、Black Duck Software社のファジングツール「Defensics」をEggplantと併用することで、脆弱性検出を含むセキュリティテストの自動化が可能です。EggplantのテストスクリプトからDefensicsの画面を制御し、さまざまな異常データをIVIシステムへ送信した際の挙動を検証できます。

Eggplantと非機能テストツールの連携により、手動では困難な非機能テストを自動化でき、品質や安全性を確保しながら生産性向上を実現することが可能です。

CI/CD環境への適用による包括的な自動化

EggplantはCI/CDツールや各種ソフトウェアと連携することで、アジャイル開発におけるCI/CD環境の構築を可能とします。これにより、コードの変更からデプロイまでのプロセスを自動化しつつ、Eggplantの自動テストにより高精度な品質問題の検出が可能です。

Eggplantは、「Jenkins」といった主要なCI/CDツールとの連携をサポートしています。CI/CDパイプラインにEggplantを組み込むことで、一連のプロセスの中でEggplantの自動テストを実施できます。JenkinsによりCI環境を構築する場合の例は、次の通りです。

CIのイメージ図

この例では、CIの全体制御を「Jenkins」、ソースコード管理を「GitHub」、バグ管理を「Jira Software」が担当します。オンプレミス環境のサーバーにJenkins/Eggplant/テスト環境を配置し、GitHubやJira Softwareはクラウド経由でアクセス。Jenkinsは、Eggplantを含めた関連ソフトウェアの状態を把握し、CIのフローに沿って適切な指示を出します。

大まかなCIのフローは下記の通りです。

  1. プログラマーがコードをGitHubにアップロードする。
  2. Jenkinsはコードを取得・ビルドし、Eggplantへ自動テストの指令を出す。
  3. Eggplantは上記2の指令通りに自動テストを行い、テスト結果をJenkinsへ返す。
  4. Jenkinsはテスト結果をJira Softwareへ通知する。
  5. Jira Softwareはバグの起票やチケット更新、結果の通知を行う。
  6. テストで問題がなければ、Jenkinsはプログラムをステージング環境へデプロイする。

この場合、プログラマーに課される手動プロセスは、コードの変更・アップロードと最終結果の確認のみに限られます。そのため、アジャイル開発において繰り返し行われるソフトウェアの変更作業においても、開発者の負担を継続的に軽減することが可能です。

自動テストやCI/CDの導入にあたって、初期段階ではある程度の工数増加が考えられます。しかし、自動テストが定着すれば手動テストと比べて大幅に工数を削減できるため、開発サイクルを繰り返すごとに費用対効果の向上が期待できます。

高度なテスト自動化とアジャイルにより、IVIシステム開発は新時代へ

今回は、アジャイル型IVIシステム開発におけるテスト自動化のベストプラクティスの1つとして、Eggplantを軸にした具体的な適用ケースを紹介しました。

■第4回のポイント

  • IVIシステム開発にEggplantや適切なテストツールを適用することで、テスト設計を含む広範なテストプロセス、UIテストや非機能テストといった多彩なテストを自動化できる。
  • EggplantとCI/CDツールを併用することで、アジャイル開発の中核となるCI/CD環境を実現でき、生産性向上と品質確保を両立できる。

本連載では、アジャイル型IVIシステム開発の実現に向けて有用な情報をお伝えしました。

迅速性や柔軟性が求められるアジャイルは従来、IVIシステム開発への適用が困難でした。しかし昨今では、Eggplantのように強力なソリューションを活用することで、アジャイルの強みを活かしつつ、効果的なIVIシステム開発の実現が可能となっています。

IVIシステム開発にアジャイルを導入する際、品質保証との向き合い方は一層重要となります。自動車業界での品質問題がクローズアップされている昨今、アジャイルに求められるスピード感だけでなく、品質問題の流出防止も軽視できない課題となっています。

アジャイル型IVIシステム開発を実現しつつ、業界が直面する課題に対応するためには、Eggplantなどを活用した高度なテスト自動化が不可欠です。高度なテスト自動化とアジャイルの融合は、IVIシステム開発を次のステージへと導くための強力な施策となるに違いありません。

IVIシステム開発のためのアジャイル戦略 の記事一覧

IVIシステム開発のためのアジャイル戦略

  • 2025.2.13
  • 【第4回】:テスト自動化のベストプラクティス

BLOG シリーズ 一覧