2024.10.3
【第3回】:テスト実行のベストプラクティス
自動車業界で相次ぐ品質不正は、日本のQA(Quality Assurance)現場における品質保証のあり方に大きな問題を投げかけています。自動車に情報やエンターテイメントを提供する「IVI(In-Vehicle Infotainment)システム」の開発においても、品質保証の抜本的な見直しが急務です。
品質保証業務の中でも、多大な労力をともなうテストの実行には種々の課題があります。IVIシステムのテストにおける課題と対応ポイントについては、第2回の記事をご一読ください。
人的リソースといった制約の多い現代のQA現場が課題を解決するうえでは、テスト自動化の適用が現実的な選択肢といえます。しかしながら、IVIシステムのテスト自動化はハードルが高く、ソリューションの選定には慎重さが求められます。
IVIシステム開発のテスト自動化にあたっては、「Eggplant」がベストプラクティスの1つと言えるソリューションです。第3回となる本記事では、IVIシステムのテスト実行において有力となるEggplantの基本事項についてお伝えします。
Eggplantとは
米キーサイト社のEggplantとは、「探索的テスト」の自動化を可能とするプラットフォームです。探索的テストは、経験を頼りにテストケースを探索しながら実行していく手法であり、本来はテスターの豊富な経験が要求されます。
Eggplantは、探索的テストに高度なAI(人工知能)技術を適用する、という世界初のアプローチを採用。これにより、人間の経験に依存しない高品質な探索的テストを実現します。
Eggplantの市場評価・採用実績
Eggplantには10年以上の販売実績があり、欧米を中心に製造、医療、小売、金融といった幅広い業界のテスト自動化に寄与しています。
下図は、大手リサーチ会社のフォレスター社が実施したテスト自動化ソリューションの市場調査結果です。Eggplantは、市場での存在感(Market presence)、現行製品(Current offering)の2観点でともに高い評価を受け、リーダー(Leaders)の地位を得ました。
また、欧米では自動車業界のテスト自動化における採用実績も多数存在します。Webアプリケーションやモバイルアプリケーションだけでなく、車載のような組み込みシステムにも適用可能です。機能性・汎用性の高さから、日本でも企業の採用ケースが増えています。
Eggplantの特長
Eggplantには多くの特長があり、IVIシステムのテストに適用することでその恩恵を享受することができます。Eggplantの主な特長は、次の4つです。
特長1:テストケースの自動生成
一般的な探索的テストには、熟練者の豊富な経験やノウハウが求められるため、システム化は困難です。しかしEggplantは、機械学習により高度化したAI、および「モデルベーステスト」の手法を組み合わせることで、探索的テストを実現します。モデルベーステストとは、システムを模式化したモデルにもとづきテスト設計を行う手法です。
Eggplantの自動テストでは、テスト対象となるシステムの画面遷移や状態遷移などを「テストモデル」で表現します。テストモデルの作成は、操作性に優れたUIでグラフィカルに行うことが可能です。このテストモデルには、下記の要素を網羅します。
- システムが取り得るステート(状態)
- 各ステートで行われ得るアクション(イベント)
- アクションにともなう状態遷移(矢印)
Eggplantにおけるテストモデルのイメージは下図の通りです。この例では、ホームページ画面でのボタン押下というアクションによって、対応する各画面(レストランやホテルなど)へ遷移することが分かります。
このテストモデルをAIが把握・分析し、「次に実施すべきテストケース」を動的に探索することで、テストケースを自動生成します。このテストケースは、再利用可能なコード(スニペット)を組み合わせて記述されます。スニペットは、直感的に理解しやすいスクリプト言語「SenseTalk」で記述されるため、比較的容易にテストケースの調整が可能です。
自動車業界では、仕様や設計から導出されたモデルに基づきコードを生成する「モデルベース開発」が普及しています。これに近いアプローチを採用するEggplantは、深いレベルでのソリューションの統合を可能にします。
特長2:テストケースの優先順位付け
Eggplantの探索的テストでは、テストケースに優先順位を付け、最も優先すべきものから順に実行します。これにより、テスト状況に沿って合理的に自動テストを進めることが可能です。優先順位には、次のような要素が加味されます。
- それまでのテスト結果
- テスト対象システム(SUT)の特性
- テストシナリオごとのカバレッジ
- テスト担当者による重み付け
たとえば、テスト結果のNG項目の内容から不具合が疑われるシナリオを予測し、重点的に実行することも可能です。また、テストケース数に対して実行件数が少ないシナリオを優先的に行うことで、カバレッジを均等化・最大化することも可能となります。
Eggplantでは、多くの知見を蓄積したAIが高精度な探索を行い、成果につながるテストケースを絞り込みます。人間では見落としやすいテストケースも漏れなく探索できる上に、成果が期待できないテストケースへの工数浪費を防止できるのが大きな強みといえます。
また、あらゆるタイミングで起こり得る異常系イベント(通信断など)を「グローバルアクション」として定義することも可能です。これにより、異常系テストケースを漏れなく生成でき、テストの網羅性を飛躍的かつ効果的に向上させることができます。
特長3:画像認識技術やOCRによる表示系テストの自動化
EggplantはUIベースの自動化を得意としており、IVIシステムの表示系テストにおいても高いパフォーマンスを発揮します。表示系テストの自動化を可能にするのは、AIによる画像認識やOCR(光学文字認識)といった高度な技術です。
画像認識によってオブジェクトの表示内容や表示位置を特定し、OCRによって200種類以上の言語で表示された文字を識別します。膨大なデータから学習したEggplantのAIは、目視では見落としやすい微細な表示ずれの検出も可能です。これにより、画面制御や表示判定をともなうテストの高精度な自動化を可能にします。
別のテスト自動化ツールには、プログラムのコードを拠り所にしたUI操作を行う製品も少なくありません。この場合、対象のデバイスやブラウザなどによっては適切に制御できない、表示の変化を適切にケアできない、といった問題が往々にして生じます。その点、Eggplantであれば利用環境や表示仕様によらず、文字やオブジェクトを正確に追従できます。
特長4:リモート操作の自動化(2システムモデル)
Eggplantは、VNC(Virtual Network Computing)やRDP(Remote Desktop Protocol)といったリモート技術を活用し、システムと利用端末の連携を可能にします。そのため、遠隔地からテスト環境をリモート操作して自動テストを実施することも可能です。
Eggplantは、システムと利用端末の対話をともなう「2システムモデル」の自動化で米国特許を取得しています。2システムモデルでは、システム上の画面をリモート技術によって利用端末に同期し、利用端末から直接的に操作できます。2 段階認証のように、双方向のやり取りを複数回にわたり繰り返すシナリオであっても自動化が可能です。
自動テストにおける操作を行うために、ジェイルブレイクなどの非正規な手段を選ぶ必要はありません。システム側にテスト用のコードやソフトウェアを組み込まずに済むため、環境を壊さず非侵襲的なテストが行えることも強みといえます。
システムや利用端末の環境は、パソコンではWindowsやmacOS、モバイル端末ではAndroidやiOS、その他システムにおいても各種Linuxや組み込みOSなど多岐にわたります。Eggplantのリモート技術は主要なデバイスやOS、ブラウザに対応しており、幅広いソフトウェアテストの自動化を可能にします。
IVIシステム開発におけるEggplantの適用ケースとは?
今回は、IVIシステムのテスト実行においてベストプラクティスの1つである、Eggplantの全体像について整理しました。
■第3回のポイント
Eggplantは非常に有用なテスト自動化ソリューションながら、IVIシステムのテスト実行における適用をイメージしづらい側面があります。そこで第4回となる次回は、IVIシステムにおけるEggplantの適用ケースを紹介します。
- 2024.11.6
- 【第4回】:Eggplantの適用ケース