ATS|テスト自動化

2022.7.5

【第2回】:自動テストをリモート開発に適用するプロセス

リモート開発の価値を高める自動テストの適用

新型コロナウイルスの感染拡大をはじめとした時代の変化により、サービス開発・QA現場においてもリモート開発の必要性が高まっています。一方で、在宅ワークを主としたリモート開発では社員の連携が難しく、適切に導入されないと生産性の低下を招くリスクもあります。

リモート開発における生産性向上の施策として期待されているのが、自動テストの適用です。連載第1回ではリモート開発の基本的なポイントや、自動テストをリモート環境に適用するメリットをご紹介しました。詳細は、次の記事をご一読ください。

リモート開発の価値を高める自動テストの適用 【第1回】:リモートワークでテストを自動化するメリット

自動テストをリモート開発環境に適用する上で、対応すべき項目は多数存在します。リモート環境の構築・テスト自動化の実装という2つの要件をクリアするためには、適切なプロセスを把握することが重要です。そこで本記事では、自動テストをリモート開発に適用するためのプロセスについてお伝えします。

自動テストをリモート開発に適用するためのプロセス

自動テストをリモート開発に適用するプロセスとしては、大まかに次の4手順で進めることが通例です。ただし、開発・QAチームによって異なる場合があります。

 1.適用計画の策定
 2.ハードウェア・ソフトウェアの選定・調達
 3.自動テスト・リモート開発の環境構築
 4.試験運用

手順1:適用計画の策定

リモート開発に自動テストを適用するためには、ハードウェアやソフトウェアの選定や導入、設定など、多くの作業項目が必要です。現実にはそれなりの要員・期間を要するため、最初に適用計画を策定し、基本事項を明確化する必要があります。策定すべき項目としては、次の4点が挙げられます。

 ・適用にあたる担当者
 ・適用範囲 (対象の端末やテスト種類など)
 ・適用までのスケジュール
 ・利用可能な予算

適用にあたって多くの人的リソース・ITリソースを要するため、策定内容によっては進行中の開発プロジェクトに影響が生じることとなります。こうした影響を最小化するためには、専任の担当者をアサインするなどの対応が必要です。

手順2:ハードウェア・ソフトウェアの選定・調達

リモート開発に自動テストを適用する上で、「リモート環境の構築」「自動テストの実装」の双方を実現するハードウェアやソフトウェアが必要です。それぞれについて適切な製品・サービスを選定・調達します。
適用範囲などの条件によりますが、「自動テストの実装」には大抵のケースでテスト実行を自動化するテストスクリプトの作成や環境への適用が必要不可欠です。コードレベルのテストやブラウザ完結のテストであれば、テスト自動化の大部分をローカル環境で対応できるため、本項目の難易度はそれほど高くありません。

一方で、サーバーとの通信をともなうE2Eテストや総合テストなどの場合はローカル環境だけでは完結せず、テストに使える試験端末も限定されます。試験端末へのリモートアクセスが前提となり、複数テスターへの端末割り当てといった検討事項が生じるため、適切な自動テストの実装は容易ではありません。

昨今の複雑なソフトウェア構成においては、E2Eテストや総合テストの重要性が増しており、そのような観点において本項目はリモート開発における自動テスト適用の要といえます。以下、この点に留意して説明します。

リモート環境の構築

費用対効果の高いリモート開発の実現には、高品質なリモート環境の構築が必要不可欠です。実装できる自動テストの種類はリモート環境に大きく依存するため、自動化するテストを念頭に置いた上で最適な構築方法を決めることが重要となります。

ここでは、リモート環境の構築に必要となる製品・サービスを決定します。リモート開発用PC (以下、リモートPC) はもちろん、他にも下記のようなハードウェアやソフトウェアの選定・調達が必要です。

 ・リモートPCからテスト用PCをリモート制御するソフトウェア
 ・テスト用PCからテスト対象機器を制御するソフトウェア
 ・テスト用PCとテスト対象機器を接続するハードウェア

自宅などからテスト用PCを操作・モニタリングするためには、RDPやVNCなどの技術を用いてリモート制御するソフトウェアが必要です。それにより、テスト実行の指示やテスト環境の構築、更新などがリモートPCから効率的に行えるようになります。

スマートフォンアプリや組込みシステムをテストする場合、テスト対象機器を制御するためのソフトウェアも必要です。それにより、リモートPCからテスト用PCを介して、テスト対象機器にテスト実行指令を出すことが可能となります。
またRS-232Cケーブルなど、テスト対象機器に合わせた通信規格の接続用ハードウェアも欠かせません。想定するリモート開発体制に対してテスト対象機器が不足している場合、併せて調達します。

自動テストの実装

上述の通り、自動テストの実装には自動化するテストスクリプトの作成が欠かせません。こうしたテストスクリプトを手動で作成する場合、膨大なテストケースへの対応やシステム更新時のメンテナンスなど、多大な工数が発生します。したがって現実的には、テストスクリプトを自動生成できるテスト自動化ツールを導入することが通例です。

テスト自動化ツールの選定では、テスト対象やテスト種類はもちろん、構築するリモート環境へ対応できるかどうかも重要となります。適切なテスト自動化ツールを選定した上で、その稼働に必要となるサーバーなどのハードウェアも選定します。前回も述べた通りスムーズに適用するためには、リモート環境適用を前提として自動テストの実装手段を選定することが肝要です。

たとえば、手動操作を記録してテストスクリプトを生成するテスト自動化ツールでは、画面仕様の変更などによる保守作業の負担が増大します。テスターが在宅ワークの場合、テストスクリプトを更新するたびにテスト対象システムをリモート操作する必要が生じるためです。

一方で、専用のUIを用いたモデリングによりテストスクリプトを容易に更新できる『Eggplant』などのツールが提供されています。こうした機能要件を満たす自動化ツールの採用は、リモート開発におけるテスターの保守作業を飛躍的に効率化するためのポイントとなります。

手順3:自動テスト・リモート開発の環境構築

調達したハードウェア・ソフトウェアを導入し、自動テスト・リモート開発のための環境を構築します。ハードウェアを想定する環境に配置・接続し、ソフトウェアの導入・設定を行います。具体的な作業項目としては、次の4つが考えられます。

 ・リモートPCにリモート制御ソフトウェアを導入・設定
 ・テスト用PCにテスト対象機器の制御用ソフトウェアを導入・設定
 ・自動テスト実行用のサーバー構築・接続
 ・テスト自動化ツールの導入・設定

テスト自動化ツールの導入方法については、製品やテスト対象、リモート環境の構成などにより異なります。クラウド型のテスト自動化ツールでは、Web上で仮想サーバーの構築・管理を行うことが通例です。一方オンプレミス型の場合は、テスト用PCにクライアントソフトを導入し、自動テスト実行用のサーバーと連携させる必要があります。

手順4:試験運用

リモート環境での動作を想定していないテスト自動化ツールも多いため、設定などに不備があれば正常に稼働しないことも考えられます。したがって、本運用を開始してから問題が生じるリスクを最小化するために、試験運用が必要不可欠です。具体的には、下記の観点で通常運用できるかチェックする必要があります。

 ・リモートPCから自動テストの実行やモニタリングが可能か
 ・リモートPCからテストスクリプトの生成や保守が行えるか
 ・リモートPCからテスト結果やエビデンスを確認できるか

ただし上記の観点において問題がなくても、本運用で求められるテスト品質に達していないケースはあります。それによって手動による追加作業が必要となれば、リモート開発の業務効率は低下します。こうした事態を防ぐために、下記の観点でのチェックも欠かせません。

 ・自動テストの結果が妥当なものであるか
 ・テストで問題検出時の報告が正しく行われるか
 ・本運用で想定される負荷に耐えられるか

リモート開発環境での自動テストにおいては、発生した問題を速やかに開発者へフィードバックできることが肝要です。よって、問題検出時のシミュレートが欠かせません。また、自動テストの繰り返し実行はもちろん、複数のテスターによる同時実行などの検証も必要です。

自動テストのリモート開発適用に向けた課題とは

今回は自動テストをリモート開発に適用するためのプロセスについてお伝えしました。

リモート開発環境における自動テストの実現にあたって対応すべき作業項目は多く、適切な手順で進めていくことが重要です。また、テスト自動化やリモート開発に関する有識者が欠かせないことを考慮すると、高品質な導入サポートを含むテスト自動化ツールを選定することも有力となります。

開発・QA現場で自動テストのリモート開発適用を進める場合、現実には課題も少なくありません。次回は、自動テストのリモート開発適用に向けた課題について解説します。

■ ADOC Testing Service for Eggplantの概要へ
■ ADOC Testing Service for Eggplantの資料請求へ

リモート開発の価値を高める自動テストの適用 の記事一覧

リモート開発の価値を高める自動テストの適用

  • 2022.8.18
  • 【第4回】:Eggplantのアドバンテージと適用ケースとは

BLOG シリーズ 一覧