ATS|テスト自動化

2023.2.9

【第3回】:自動化の解決策と適用ケース

E2Eテストの自動化で加速する品質保証

E2E(End to End)テストとは、外部サービスへのアクセスなどを含むあらゆる構成要素を組み込むことにより、テスト対象システム全体の品質を保証する手法です。一方、品質水準への要求が高まる昨今のITサービス市場において、「ユーザー体験(UX)」が重要な要件となっています。

ある意味でE2Eテストの目的は、アプリケーションの実世界でのシナリオを検証すること、すなわちUXを徹底的に検証することだといえます。しかし、単体テストや結合テストと比べてE2Eテストの実施は複雑で敬遠されがちなのも事実。アプリケーションのあらゆる依存関係が正しく連携して動作することを検証するE2Eテストは、エンドユーザーの視点からアプリケーション全体のワークフローを検証するためにも極めて重要です。

本番に近い環境で実施されるE2Eテストは、通常の単体テストや結合テストでは検出が困難な通信タイミングや互換性といった問題も検出できます。一方で、E2Eテストに関わる要素が多いほどにテストケースは膨大なものとなり、テストの負担軽減には「自動化」が欠かせません。しかしながら、実施上の制約やカバレッジの向上など、E2Eテストの自動化には多くの課題が存在します。課題に関して詳しくは、前回の記事をご一読ください。

E2Eテストの自動化で加速する品質保証【第2回】:自動化で直面する3つの課題

こうした課題の解決策として、高度なAI(人工知能)を搭載した探索的テスト自動化ツール「Eggplant」が有力な選択肢となります。第3回となる本記事では、E2Eテストを自動化するこれらの解決策や、具体的な自動化の適用ケースをご紹介します。

E2Eの自動テストにおけるEggplantの優位性

本項ではEggplantの主な3つの優位性について、前回挙げた3つの課題との関わりも含めて論じていきます。

優位性1:E2Eの幅広いテストケースを自動化可能

EggplantはUIテストに代表される画面系テストのみならず、メッセージ送受信やRPC(Remote Procedure Call)で動くプログラム、またフロントエンドのプログラムからAPIを用いて呼び出されて動くプログラム(外部モジュールやサブルーチン)等のテストも自動化が可能です。

また、テスターの操作を記録・再現するツールでは自動化が難しい、繊細なタイミングや複雑な手順をともなうテストケースにも対応できます。たとえば、特定のタイミングでデータを送信した場合のみ生じるエラーの確認など、操作スキルが要求される場合も含めて、テスト担当者の技量・経験に委ねられない幅広いテストケースの自動化が可能です。

こうしたEggplantの優れたコネクティビティは、前章の課題1で挙げた実施における制約を排除し、より高度なE2Eテストが可能となります。

優位性2:テストケースの探索によりカバレッジ向上が可能

テストエンジニアがスクリプトを実装する場合、テスト設計に不備があるとカバレッジが低下し、テストの実施漏れから不具合流出につながりかねません。一方、Eggplantはテスト設計とテスト実行を並行する「探索的テスト」、および過去のデータから自己学習を繰り返すAIにより、テストケースを自動生成します。手動のテスト設計と比べて高速なことに加え、先入観や手違いによる人的ミスを排除し、カバレッジの飛躍的な向上が可能です。

Eggplantが搭載するAIは、蓄積された知見からSUT(テスト対象システム)の特性や構成に応じて適切なテストケースを生成します。たとえば無意味な手順の繰り返しなど、システムが本来は想定しない冗長な操作であっても、不具合発生のリスクが高いと判断すれば省略しません。

AIがテストケースを探索することにより、熟練者でも見落としやすいユーザー目線でのテストケース生成も可能となります。Eggplantによる高精度、かつテスト担当者のスキルに依存しないテスト設計は、前章の課題2で挙げたカバレッジ向上の課題解消に寄与します。

優位性3:あらゆるテクノロジーに対応する自動化が可能

Eggplantが搭載するAIは画像認識技術により、画面上に表示されるあらゆるオブジェクトを高精度に把握します。表示のわずかなずれも見逃さず、正確なテスト結果判定が行えることはもちろん、プログラムコードを拠り所にしないため、特定のテクノロジーに限定されない自動化が可能です。

たとえば、SUTを扱う端末上から全く異なる外部サービスを起動・制御し、それらの挙動を正確に追従することができます。複数のテクノロジーを組み合わせることが通例となるE2Eテストにおいては、Eggplantの画像認識技術による柔軟性の高さが他ツールに対する大きな優位性といえます。

また、EggplantのAIはテスト設計・実行だけでなく、結果判定や分析、レポーティングといったテストプロセス全体にわたる自動化を可能にします。開発・リリースにおける一連の工程を統合する「CI/CD」にEggplantの自動テストを組み込むことで手動プロセスの発生を回避し、ITサービス開発全体のアジリティ(敏捷性)を向上することが可能です。

特定のプロセス・テクノロジーに限定されないEggplantの自動化は、前章の課題3で挙げた包括的な自動化に対する有力な解決策といえます。

E2Eテストの自動化におけるEggplantの適用ケース

次に、ここではE2Eテストの自動化におけるEggplantの適用ケースを2例ご紹介します。

ケース:大規模なサポートシステムのE2Eテストを自動化

世界各国にブロードバンドの通信サービスを提供するA社は、顧客のサポートシステムに多額のコストを費やしていました。中でも、注文や問い合わせなど多岐にわたる機能を統合したシステムのE2Eテストをほぼ手動で行わなければならず、テスト担当者の負担は多大なものでした。オープンソースの自動テストツールなどの導入も試みたものの、その適用は限定的なものとなり、大きな成果には繋がりませんでした。

そこで、E2Eテストの自動化にEggplantを採用。テクノロジーを問わないEggplantは、顧客の支払いに関する機能など、バックエンドデータベースとの連携を含む広範囲な自動化を可能にしました。Eggplant導入からわずか6か月以内でE2Eの回帰テストを75%自動化し、大幅な工数削減を実現。また、短期間で多くのテスト実行が可能となり、サービス品質の向上にも寄与しました。

ケース:アパレル販売サイトのE2Eテストを自動化

オンラインを中心にアパレル商品を展開するB社は、ユーザー体験を向上するために週2、3回という頻繁なWebサイトの更新を行っていました。更新にあたっては、ユーザーの利用を想定したE2Eテストを行わなければならず、手動テストに多大な工数を費やしていました。多様化するデバイスへの対応も求められる中で、テストの効率化による工数の削減が重要課題となっていました。

そこで、E2Eテストの自動化にEggplantを採用し、サーバーなどを含むeコマースプラットフォームの全体的な自動化を図りました。多くのコーディングを必要としないEggplantは短期間でテストチームによる運用を可能にし、導入から1か月後には大規模なWebサイト全体でのE2Eテストに成功。Eggplantにより毎週のリリースで発生するテストの工数を大幅に削減できただけでなく、あらゆるデバイスにおける多端末テストも可能となりました。

E2Eテストの自動化で、新たな品質保証のあり方を見出す

本連載では、E2Eテスト自動化のメリットや課題、解決策となるEggplantの適用例までお伝えしました。

一般にE2Eテストの自動化を実現するためのハードルは高く、品質保証の現場の多くは手動テストや単体テストの自動化に甘んじているのが現実です。しかし、ITサービスのニーズが絶えず移り変わる現代においては、高品質なE2Eテストを実現し、あらゆるユーザー体験を検証することが求められます。E2Eテストの実現にあたっては、あらゆるテクノロジー・プロセスを包括的に自動化できるEggplantの採用が有力な選択肢です。

ただし、一般にテスト自動化ツールの適用には経験者が欠かせず、担当者への教育なども含めると多くの工数を必要とします。手動プロセスの多くを回避できるEggplantは比較的適用が容易なものの、開発チームの負担を最小化するうえで、アドックインターナショナルが提供する「ADOC Testing Service (ATS) for Eggplant」サービスの利用も有力な選択肢といえます。国内最多のEggplant認定資格技術者を有し、必要な範囲でコンサルティングからPoCの支援、設計、実装、運用、教育までワンストップで支援します。

Eggplantによる高品質なE2Eテストの実現は、回帰テストと並んで自動化のベストプラクティスであり、単に「品質を保証する」にとどまらない、新たな品質保証のあり方を見出すことにつながります。

E2Eテストの自動化で加速する品質保証 の記事一覧

E2Eテストの自動化で加速する品質保証

  • 2023.2.9
  • 【第3回】:自動化の解決策と適用ケース

BLOG シリーズ 一覧