2022.8.18
【第4回】:Eggplantのアドバンテージと適用ケースとは
コロナ禍や働き方改革に伴うリモートワーク推進の流れを受けて、IT開発の現場においてもオンサイトにとらわれないリモート開発の導入が急務となりました。一方で、外部の開発パートナーやフリーランスのITエンジニアのプロジェクト参画が進むなど、関係者間のコミュニケーションとリアルタイムな連携が求められるリモート開発は、適切なルールの下でテクノロジーの導入が行われないとむしろ生産性低下を引き起こすリスクに瀕しているとも言えます。
特に、開発工数の多くを占めるテスト工程をリモート環境下で自動化する場合、上記リスクに対して細心の注意が求められます。とはいえ、昨今の主流であるアジャイル開発では高頻度でテストが発生するため、リモート環境下においても高い生産性を担保する自動テストの適用が欠かせません。
しかしながら、リモート開発特有の課題も解決しなければならない性質上、元々適用の進んでいない自動テストの適用ハードルはさらに上がります。連載第3回では、リモートにおけるテスト自動化の課題をご紹介しています。詳細は、次の記事をご一読ください。
リモート開発の価値を高める自動テストの適用 【第3回】:リモートにおけるテスト自動化の課題とは?
リモート開発における自動テスト適用の有力な解決策となるのは、テスト自動化ツール『Eggplant』、および同製品のコンサルティングから実装・運用を支援する『ADOC Testing Service (ATS) for Eggplant』です。そこで、リモート開発においてソフトウエア品質と費用対効果を最大化する上で、これら製品・サービスの優位性や実際の適用ケースについて把握することが肝要です。
リモート開発に最適なテスト自動化ツール「Eggplant」とは
Eggplantは、テスト実行と並行してテストケースを探索する「探索的テスト」にAI (人工知能) を採用した、米国キーサイト社製の探索的テスト自動化ツールです。AIが最適なテストケースを探索してテストシナリオを自動生成するため、テスターやQAエンジニアの負担を飛躍的に軽減できます。
Eggplantにおける探索的テストは、SUT (テスト対象システム) の外部仕様から導出した「モデル」をもとに実施されます。モデルは操作性の高いUIにより更新できるため、プログラミングの知識を持たずとも少ない工数でテストスクリプトのメンテナンスが可能です。AIとモデリング技術の併用により、テスト実行にとどまらないテスト工程全体の自動化を可能にします。
またEggplantは、RDPやVNCなどによるリモートでの試験端末制御・モニタリングといったテクノロジーを包括しています。SUTを非侵襲性の遠隔操作でコントロールするため、Eggplantの基本機能だけでリモート開発環境におけるテスト自動化を実現することが可能です。
振り返って、前回の記事で取り上げたリモート開発における自動テスト適用の課題は以下の4点でした。
・課題1:費用対効果の予測と自動テスト適用計画の策定
・課題2:試験端末の適切な制御・モニタリング
・課題3:高負荷なテストスクリプト作成・保守への対応
・課題4:テスト品質の担保
このうち、課題2以降の3つの課題は、Eggplantの基本機能でおおむねクリアすることができます。
以降では、リモート開発へEggplantを適用するケースを通じて、その機能とアドバンテージを説明します。
リモート環境下におけるEggplantの適用ケース
Eggplantの採用によって、さまざまな開発・QAチームの用途・ユースケースに合わせた自動テストの適用が可能となります。本項では、リモート開発への適用ケースと併せて、そのバリエーションとなる活用例についてもご紹介します。
リモート開発における自動テストの実行
サービスの機能追加や仕様変更にともない発生する一連のテスト工程を、在宅勤務などリモート開発環境で実施する際の適用ケースです。テスターやQAエンジニアには、自宅などからテストスクリプトの作成・更新、実行、結果分析といった作業の必要が生じます。特に、定期的なリリースが発生するアジャイル開発では、こうした作業が高頻度に発生するため、積極的な自動化適用による高い生産性が欠かせない要件となります。
容易なリモートテスト環境の構築
Eggplantをリモート開発に適用する場合、まずメインオフィスに中枢となるEggplantサーバーを構築する必要があります。リモート開発に従事する開発者やテスター、QAエンジニアは、たとえば自宅でRDPまたはVNC環境を構築することで、Eggplantサーバーとリモートで通信することが可能となります。リモート環境と連携する技術は、Eggplantのパッケージに包括されており、オプションでソフトウェアを追加導入する必要はありません。これにより、柔軟かつ最適なリモートのテスト環境を速やかに構築することができます。
テストスクリプトの自動作成・更新
テスターやQAエンジニアがテストスクリプトを作成・更新する場合、VNCやRDP接続によりEggplantサーバー上のEggplantソフトウェアをリモート操作する形となります。テストシナリオ自体はEggplantが自動生成するため、テスターやQAエンジニアはそのベースとなるモデルを作成・更新するだけで済みます。
Eggplantのテストスクリプトは「SenseTalk」と呼ばれる高機能なスクリプト言語で記述されますが、英語に似て直感的に理解しやすく、習得が比較的容易です。モデルの作成・更新には操作性の高いUIを利用できるため、深いプログラミングの知識は求められません。また、SUTの操作をキャプチャ&リプレイすることにより、モデルをメンテナンスすることも可能です。
テストシナリオのAIによる自動生成により、通常発生するテストシナリオの全点検作業やメンテナンス箇所の洗い出し・改修作業といった保守対応の労力を90%以上削減することが期待できます。併せて、テスト仕様がモデルで可視化されるため、開発者やプロジェクトチーム間でのコミュニケーションが円滑となり、リモート開発における自動テスト適用につきものともいえる、テストスクリプト作成・保守対応の負担やリスクを抜本的に回避・改善することができます。
テスト実行から制御・モニタリング
自動生成されたテストシナリオはEggplantサーバーから試験端末に転送され、任意タイミングでの自動テスト実行が可能となります。テスターやQAエンジニアが自宅からEggplantサーバーへ即時実行指示を送信すれば、試験端末のテストシナリオが実行されます。またスケジュール実行の設定を行えば、夜間などに試験端末からテストシナリオを実行させることも可能です。
テスト実行においては、メインオフィス・サブオフィスを問わず任意の場所にある試験端末を利用できます。複数端末・複数テスターをともなうテストの制御・モニタリングは、「Eggplant Automation Cloud」と呼ばれる機能により実現します。テスターが試験端末の利用をEggplantに要求・予約すると、利用可能な試験端末がテスターに割り当てられます。また、自動テスト実行中の試験端末に別テスターから新たな要求が発生した場合、要求は受理されず、利用可能な別の試験端末の割り当てを行うことができます。このため、複数のテスター間で自動テストが重複するリスクも防ぐことが可能です。
このように、Eggplant Automation Cloudを試験端末・テスター間における唯一のアクセスポイントとすることで、スムーズな端末遠隔操作のみならず、リモート開発におけるテストの排他制御や複数テスターによるテスト環境の共有・占有といった、リモートテスト環境の適切な運用が可能となります。
テスト結果分析・フィードバック
テスターやQAエンジニアは、自宅などからVNCやRDP接続を介して自動テストの実行状況をモニタリングしたり、テスト結果を分析したりすることが可能です。Eggplantはログ・画像などを取得するだけでなく、テスト結果を様々な視点から自動で集計・分析を行い、カバレッジ (網羅率) なども含めた高度な可視化とフィードバックを実現します。
またテスト実行中にNG項目が生じた場合、キャプチャなどのエビデンスとともに開発者を含めたテスト関係者へメールで報告します。テスターやQAエンジニアが手動で情報共有する必要がなくなり、リモート開発におけるコミュニケーションの課題解決につながります。
以上、Eggplantによるリモート開発への自動テスト適用ケースを、ポイントごとにご紹介しました。以下は補足として、障害監視やサービス監視など、Eggplantによるリモート環境下における自動テスト適用の付加価値となるケースを2つご紹介します。
インフラ障害発生時の自動対応
自社で運用しているインフラに障害が発生した場合、障害が発生したサービスを迅速に特定し、開発者またはチーム内でリアルタイムに情報共有することが肝要です。しかし、数多く存在するサービスの不具合を特定することは容易ではありません。
自社のインフラに障害が発生したケースにおける原因調査も、Eggplantの適用により自動化できます。全サービスのオペレーションをEggplantによりスクリプト化・実行することで、障害が発生しているサービスとユーザーへの影響度を迅速に特定することが可能です。ログや画像を含めた障害の詳細についても、メールやコミュニケーションツールにより関係者へ自動展開されます。
また、インフラ障害調査用のスクリプトをEggplantで定期的に自動生成しておくことで、より迅速な障害対応が可能となります。インフラ監視チームから障害の連絡を受けたテスターやQAエンジニアは、障害内容の確認や調査スクリプトの実行指示を行うだけで済みます。
ユーザー視点でのサービス監視
複数の顧客企業に独自サービスを提供する開発・QAチームは、サービスごとに品質を監視していくことが求められます。しかし、システム要件やユーザーのニーズはサービスごとに異なり、それぞれを個別で監視するためには多くの労力を要します。
Eggplantとサービス監視ソフトウェアを併用することで、ユーザーの視点から複数サービスの監視も可能です。Eggplantは通常のテストスクリプトと同様に、各サービスの応答時間や表示エラー有無などを監視し、レポーティングすることができます。また近年重要性が高まるユーザビリティなど非機能要件における課題も可視化されるため、各サービスのユーザーエクスペリエンス (UX) の視点に立った高度なサービス監視の実現につながります。
サービスの基盤監視を「Zabbix」などに任せつつ、一方で個々のサービスのユーザー環境下におけるパフォーマンスをEggplantにより評価・レポーティングすることで、効率的かつ高品質なサービス監視が可能となり、サイレント障害の検知といったユーザー評価に直結するサービス品質を管理・改善することができます。
リモート環境下で自動テストを実現し、ニューノーマル時代に対応する力を
このようにEggplantの採用により、リモート環境下でもアジャイル開発を支える生産性の高い自動テストの適用が可能となります。また、Eggplantの導入を判断する上で、『ADOC Testing Service (ATS) for Eggplant』が、前回にも論じた「自動テスト導入に伴う費用対効果の予測が難しい」という課題の解決策となります。
ATS for Eggplantはアドックインターナショナルが提供する、Eggplantをコア・ツールとして採用したテスト自動化プラットフォーム構築サービス。サービスの本格導入前に、Eggplant導入によるQCD改善効果を検証する「ATS効果検証サービス」により有用なベンチマークが得られ、導入後の費用対効果、リスク判断がスムーズに行えます。さらに、国内最多を誇る「Eggplant認定資格技術者」を有する専任チームによる、信頼性の高い導入サポートを受けることも可能です。
リモート環境下における自動テストの適用には、チームマネジメントとコミュニケーション、有用なテクノロジーの導入など課題も少なくありません。その一方で正しく適用できれば、リモート環境下で生産性の低下を強いられている他社に対して大きな優位性にもなり得ます。オンサイトにとらわれない開発体制の構築やテスト自動化の速やかな適用は、予測困難な変化の多いニューノーマル時代において高い価値を持つ施策といえます。
■ ADOC Testing Service for Eggplantの概要へ
■ ADOC Testing Service for Eggplantの資料請求へ
- 2022.8.18
- 【第4回】:Eggplantのアドバンテージと適用ケースとは