2025.1.16
【第3回】:アジャイル型IVIシステム開発に求められるテスト要件
自動車業界では、テクノロジーの加速やソフトウェア中心化が進み、ソフトウェア開発がこれまでにない変革の時期を迎えています。車内体験を向上する「IVI(In-Vehicle Infotainment)システム」の開発においても、開発速度の向上が求められています。
その中で拡大傾向にあるのが、短期間の開発サイクルを繰り返していく「アジャイル開発」を取り入れたアプローチです。しかし、アジャイル型のIVIシステム開発にはコスト増大や品質低下のリスクもあり、その取り組みには慎重な計画と取り組みが求められます。
こうした課題を解消するうえでは、テスト工程の最適化が不可欠となることを前回お伝えしました。詳細については、第2回の記事をご一読ください。
第3回となる本記事では、アジャイル開発の成功に欠かせない「テスト工程の見直し」に焦点を当て、アジャイル型IVIシステム開発に求められる具体的なテストの要件についてお伝えします。
アジャイル型IVIシステム開発に求められるテストの要件
アジャイルをIVIシステム開発に導入する場合、ステークホルダーとの連携体制の再構築や部門間のサイロ化解消、安全性の確保といった課題が立ちはだかります。ここでは、こうした課題の克服に向けて求められる具体的なテストの要件を3つに分けて解説します。
要件1:テスト設計やテスト実行の自動化
アジャイル開発において迅速性を確保するためには、手動プロセスの自動化による工数の削減や人的ミスの防止が求められます。なかでも、人的コストが集中しやすいテスト工程は自動化による潜在的な費用対効果が高く、優先的に取り組むべき課題といえます。
複数の機能が連携するIVIシステムにおいて、膨大なテストケースを手動で作成することは非効率的であり、人的ミスのリスクも高まります。したがって、アジャイルのメリットを最大限に活かすためには、テスト設計とテスト実行の両方を自動化できるソリューションの適用が不可欠です。
ただし、一般的な自動化ソリューションの多くはテスト実行のみに焦点を当てたものです。テスト設計に対応するためには、テストケースの自動生成機能を備えた高度なソリューションが求められます。たとえば、「モデルベーステスト」の手法を活用したソリューションであれば、仕様や設計にもとづくモデルから自動的にテストスクリプトを生成でき、効率的なテスト設計が可能です。
テスト設計・テスト実行の両面から自動化を図ることにより、手動プロセスの負担を軽減し、運用チームとの連携体制をより効果的に強化できます。
要件2:CI/CD環境の構築
一般的なアジャイルの導入にあたっては「CI/CD(継続的インテグレーション/継続的デリバリー)」が重要なアプローチとなります。CI/CDとは、コードの変更からデプロイまでの一連のプロセスを自動化し、継続的な開発・リリースを実現するアプローチです。
CI/CDでは、この一連のプロセスを「CI/CDパイプライン」に組み込み、統合的に自動化します。IVIシステム開発においても、テスト工程を含むCI/CDパイプラインを実行可能な環境を構築することで、テストに加えて広範なプロセスを自動化することが可能です。
IVIシステム開発においてCI/CD環境を構築する場合、ソフトウェアを変更する際の大まかな流れは次のようになります。
- コードの変更内容をコミットする。
- 変更されたプログラムをビルドする。
- プログラムの動作をテストする。
- テストで問題がなければ、プログラムをステージング環境へデプロイする。
実装からデプロイまでのプロセスをCI/CDにより自動化することで、開発チームと運用チームの連携が強化され、結果としてサイロ化からの脱却にもつながります。
なお、昨今のアジャイル開発では「シフトレフト(shift-left)」の考え方も注目されています。シフトレフトとは、テストやセキュリティ対策を前倒して実施することにより、早期のリスク検出や品質向上を図るアプローチです。シフトレフトを実現することで、不確定要素の多い開発初期段階でも問題の早期発見が可能となります。
IVIシステム開発のシフトレフト実現にあたっては、ターゲット機種ごとのテスト基盤の流用が難しい、といった特有の障壁もあります。とはいえ、CI/CDを実現できるソリューションであれば、アジャイル開発の先にあるシフトレフト構想の実現も近づきます。
要件3:非機能要件への対応
IVIシステムのテストにおいては、機能要件はもとより非機能要件も検証可能なテスト環境の構築が求められます。たとえばパフォーマンスやセキュリティは、ユーザー体験に直接影響を与える重要な非機能要件です。フィードバックを受けやすいアジャイル開発であっても、こうした非機能要件を無視したテストでは重大な問題を見逃し、信頼失墜を招きます。
前回お伝えしたように、アジャイル型IVIシステムの実現には安全性の確保が欠かせません。安全性を脅かすリスクを確実に検出するためには、セキュリティテストが重要です。コードの解析による脆弱性の検出や、擬似的なサイバー攻撃に対するセキュリティ機能の動作検証など、セキュリティ要件を検証できるソリューションが不可欠です。
非機能テストを自動化するうえでは、高負荷な状況やサイバー攻撃などの再現、およびその監視や測定などが求められます。機能テストに対応した自動化ソリューションでは、完全にはカバーできないことが少なくありません。そのため、機能テスト向けのソリューションと連携できる、適切な非機能テスト向けのソリューションが必要となります。
アジャイル型IVIシステム開発におけるテスト自動化のベストプラクティスとは?
今回は、アジャイル型IVIシステム開発に求められる具体的なテストの要件について解説しました。
■第3回のポイント
- アジャイル型IVIシステム開発においては、適切なソリューションによる自動テストの実装が不可欠となる。
- テスト設計やテスト実行の自動化、CI/CD環境の構築、非機能要件への対応を満たすソリューションが求められる。
アジャイル型IVIシステム開発の実現にあたっては、適切なソリューションを選定したうえで、それらを組み合わせた総合的なアプローチが求められます。IVIシステム開発にアジャイルを取り入れるうえでは、ベストプラクティスを理解することが有用です。
第4回となる次回は、アジャイル型IVIシステム開発におけるテスト自動化のベストプラクティスを紹介します。
- 2025.1.16
- 【第3回】:アジャイル型IVIシステム開発に求められるテスト要件