2022.8.4
【第3回】:リモートにおけるテスト自動化の課題とは?
コロナ禍への対応のため、これまで対面やオンサイトが前提であったIT開発の現場も、一気にリモートワークへの切り替えや新たなチームビルディングを余儀なくされました。一方で、リモート環境下では開発者やテスター、QAエンジニア、運用管理者などのコミュニケーションや連携が取りにくく、適切な環境構築やテクノロジー無しでは生産性が著しく低下するリスクにさらされています。
このようにリモート開発体制の整備や自動化テクノロジーの導入が急務となる中、特に大きな影響が懸念されるのは、開発工数の多くを占めるテスト工程の自動化です。リモート開発環境下でテスト工程の生産性を向上するためには、リモートに適した自動テストの導入が求められます。連載第2回では、自動テストをリモート開発に適用するプロセスをご紹介しています。詳細は、次の記事をご一読ください。
リモート開発の価値を高める自動テストの適用 【第2回】:自動テストをリモート開発に適用するプロセス
従来のオフィスワークを主とする開発現場においても、自動テストの導入は期待されたほど進んでいません。リモート開発ではさらに新たな課題が生じ、自動テストの効果的な適用のハードルは一段と上がります。そこで、生産性の高いリモート開発を実現する上で、自動化適用の障壁となる課題について把握することが肝要です。
自動テストのリモート開発適用に向けた4つの課題
ここでは自動テストのリモート開発適用に向けて、検討と解決すべき4つの課題について解説します。
課題1:費用対効果の予測と自動テスト適用計画の策定
連載第2回で説明した通り、自動テストの適用は適用計画の策定からはじまります。特に適用範囲の決定はリモート開発の費用対効果を最大化する上で重要なポイントとなります。たとえば単体テストや結合テストにおけるプログラムコードの動作確認といった、実装が比較的容易な工程から適用するケースは、連載第1回で説明したメリットを生み出すには不十分です。一時的にはチーム内コミュニケーションの不足によるリモート開発特有のリスクを誘発させる危険性も高まるため、期待するほどの効果を得ることはできません。
理想はE2Eテストや総合テストといった昨今重要性の増しているテスト工程のほぼすべてに自動テストを適用する、あるいは将来の適用を見据えた導入計画を策定することです。しかし、計画の段階において自動テスト適用後の費用対効果を予測することが難しいケースが大半です。これはQCDの改善効果を正確に予測する上で、実運用に近い条件で自動テストを再現することが求められる一方、リモート開発環境が未構築の状況下ではこうしたシミュレーションが不可能な場合が多いためです。
また、自動テストの担当者や組織体制によって、導入に要する工数やコストは変わります。自動テストに精通したスペシャリストが不在または確保できない場合、環境構築などに想定以上の期間・工数がかかることは珍しくなく、自動テストの適用が遅滞すれば、進行中のプロジェクトへの影響も大きくなります。そうした理由から、自動テストの導入に踏み切れないというケースも散見されます。
課題2:試験端末の適切な制御・モニタリング
費用対効果の高いリモート開発環境における自動テストの運用では、構成に合わせて試験端末の適切な制御・モニタリングを行うことが不可欠となります。上述の通り、ローカル環境で完結する範囲内での自動テストの適用は、リモート開発特有のリスクを回避し、メリットを最大化させる取り組みとしては十分ではないためです。
しかしこうした制御やモニタリングを行うためには、たとえば同一PCから複数の試験端末をリモート操作する場合、クライアント側で接続やテストの状況をモニタリングできる仕組みが必要となります。一方で、同一試験端末に対して複数PCから同時接続されることがないよう、接続の排他制御も求められます。また反対に、同一試験端末を複数のテスターが共有して作業を行う場合にも、同種の仕組みが必要です。
これ以外にも高品質なリモート開発環境を構築するためには、テスト用PCや試験端末への機密性の高いリモートアクセスが求められるなど、検討すべき事項は多岐に渡ります。しかし一般的なテスト自動化ツールでは、試験端末の適切な制御・モニタリングが難しく、問題となる場合が少なくありません。
対応策として別途ソフトウェアを導入する場合、付随する専門知識やノウハウが求められるばかりでなく、使用する側のテスターやQAエンジニアの負担も大きくなります。通例として、リモート環境のPC・試験端末の台数が増えるほど複雑な設定が必要となり、多くの工数を浪費することになります。
課題3:高負荷なテストスクリプト作成・保守への対応
リモート開発環境においては、自動化に用いるテストスクリプトの作成・保守が増大しやすいのも課題です。システムの更新内容をテストスクリプトに反映させる場合、テスト自動化ツールやテスト対象システムのリモート操作が前提となります。複雑な更新手順をともなう、あるいは操作性に優れないテスト自動化ツールでは、工数の増大は避けられません。
前回も述べた通り、手動操作をテストスクリプトに落とし込む方式のテスト自動化ツールでは、テスト対象の操作も当然ネットワーク経由となります。一定の遅延が避けられないリモート操作では、テストスクリプト作成の工数増大はもちろん、繊細なタイミングを要求されるユーザビリティテストなどへの対応も困難です。
また、自動テストのテストスクリプト保守においては、開発仕様の確認やテスト仕様の整合性確認に端を発するチーム内コミュニケーションが不可欠となります。ただでさえ課題の多い工程である上に、そうした作業負荷のさらなる増大が想定され、リモート開発への自動テスト適用における大きな支障となるケースが少なくありません。
このため、テストスクリプトの作成・保守に要する工数を最小化できる仕組みをもつ『Eggplant』などのツールでなければ、テスターの負荷やコストの増大が障害となり、結果として適用の遂行にブレーキをかけることになります。
課題4:テスト品質の担保
見かけ上は自動テストをリモート開発に適用できたとしても、結果として実運用の要件を満たさないケースも少なくありません。自動テストのカバレッジ (網羅率) や処理性能はもとより、不具合の検出精度や報告フローなども、実運用において着目すべきポイントとなります。
たとえば自動テストにおいてNG項目が生じた場合、画面キャプチャやログを含めた迅速な報告が必要不可欠です。しかし、リモート開発環境によっては試験端末やテスト用PCのリソースへのアクセスが難しく、ログを取得できないなどのケースもあります。またテスト自動化ツールによっては、NG項目の精査と判定に負荷がかかり、リモート環境下における関係者への報告が全く要領を得ないものになってしまうリスクも高まります。
こうした実運用における利便性などをしっかり勘案することは、テスト品質を担保する上で重要なポイントとなります。リモート開発環境やテスト自動化ツールの欠点をカバーするために追加作業が生じることになれば、開発工程全体の生産性低下につながり、効果的なリモート開発を推進する上での大きな障害となります。
自動テストをリモート開発に適用するための解決策とは
今回は、自動テストのリモート開発環境下における適用の検討課題についてお伝えしました。
リモート開発において自動テストを実装するためには、上記課題への対応が求められますが、課題解決にあたって特に鍵となるのはテスト自動化ツールです。リモート開発の条件を満たせないテスト自動化ツールを採用してしまうと、導入段階での工数・コストの増大だけでなく、導入後に期待されるQCDを確保できないことも考えられ、生産的なリモート開発環境の構築が困難となります。
自動テストをリモート開発に適用する上では、AIやモデリングにより探索的テストを自動化する『Eggplant』と、同製品をベースに採用した、テスト自動化プラットフォーム構築サービスである『ADOC Testing Service (ATS) for Eggplant』の採用が有力な選択肢の一つとなります。次回は、Eggplantによる解決策とリモートテスト環境における適用ケースについてご紹介します。
■ ADOC Testing Service for Eggplantの概要へ
■ ADOC Testing Service for Eggplantの資料請求へ
- 2022.8.18
- 【第4回】:Eggplantのアドバンテージと適用ケースとは