Twitter
Facebook
Hatena
ソフトウェアテスト自動化でツールに求められるものとは?~UiPath Test Suite~

2020年7月、RPAのリーディングカンパニーの1つであるUiPath社が、日本のソフトウェアテスト市場に参入し、テストの自動化を実現する製品群「UiPath Test Suite」を発売しました。本コラムでは、ソフトウェアテストの自動化においてテスト支援ツールに求められるものを考察しながら、UiPath Test Suiteのアプリケーションテスト機能を解説します。
尚、本コラムは独自の見解も含め、著者がUiPath社向けに行ったセミナーのプレゼン資料をベースにしています。

UiPath Test Suiteとは

UiPath Test Suiteは、「アプリケーションテスト」「RPAテスト」の自動化を目的としたソフトウェアテスト用プラットフォームです。

  • アプリケーションテスト
    開発したアプリケーションの品質を確認する
  • RPAテスト
    開発したRPAの品質を確認する

UiPath Test Suiteにはテストのための複数のコンポーネントが用意されており、RPAで培ったコアテクノロジーを基に、自動テストの専門家が工夫し組み上げてきたテスト環境をパッケージ化した、オールインワンソリューションとなっています。

本コラムでは、アプリケーションテストの自動化について解説します。

アプリケーションテストの自動化でツールに求められるもの

アプリケーションテストの自動化において、その効果やメリットを十分に引き出すためには、使用するツールの機能や性能が大きく関わってきます。一般的なテスト自動化の課題解決のためにツールに求められるものには、以下のようなものがあります。

① 開発生産性と保守性
開発生産性が低いと、ROIが見込めない。キーワード駆動テストが可能な簡単かつ開発生産性の高いツールもあるが、複雑な処理が実現できないため、実用的ではない。また、ソフトウェア変更に伴うテストコードの保守性が低いと、自動テストの継続が困難になる。

② 実現性
必要なテストが実現できないと、手動テストもしくは他のテストツールの検討が必要になる。

③ 安定性
バグを誤検知する、バグを検知できないなど自動テストの結果が不安定だと、テストにすらならない。不安定なテスト結果の原因特定に工数がかかるため、ROIの低下に直結する。

④ 柔軟性
要件の追加や変更、品質の状況に応じて、実施するテストを柔軟に変更できることが必要である。多彩な実行トリガーも必要である。

⑤ 可視化・証跡
自動テストではテスト結果の分析作業が必要である。不具合が発生した際にも、分析と開発者へのフォードバックのために、自動テストの証跡や原因調査の有用な手がかりが必要になる。

⑥ スピード
自動化のメリットは工数削減だけではない。テスト期間の短縮もメリットになる。特にアジャイル開発では品質確認のアジリティを生み出すことで、大きなメリットを得られる。

⑦ テストの生産性
自動テストには得意分野があり、効果の低い自動テストも存在する。一方、手動テストにも得意分野があり、強みもあるため、全てを自動テストにすべきではない。自動化だけでなく手動テストの効率化にも取り組むことで、テスト作業全体の大きなコスト削減効果が可能となる。

⑧ 管理の容易性
自動テストと手動テストを別々に管理すると、管理負荷が増大する。テスト全体の状況をリアルタイムで正確に把握することも困難になる。また、テスト要件の変更や追加によってテスト管理が煩雑となる傾向があり、漏れを生じやすくなる。要件との突合作業が必要となるため、管理負荷も増大する。

UiPath Test Suiteの機能と性能

前述の課題解決のためにツールに求められるものに対して、UiPath Test Suiteが実現している機能や性能を解説します。

① 開発生産性と保守性

  • レコーディング、ドラッグアンドドロップのローコーディングで開発でき、複雑な処理も全てローコードで完結する開発生産性の高いGUI機能を搭載し、構造化された可読性の良いテストコードが作成できるため保守性も高い。
  • ファイル操作、データテーブル操作、プログラミング実行、DBアクセス等の数多くの標準部品が提供されている。専用部品も数多く提供され、必要に応じてUiPathマーケットプレースから追加で利用できる。
  • 部品化再利用(共通化)が可能。サブモジュールの呼び出しだけでなく、部品(ライブラリ)の登録が可能で標準部品と同様にドラッグアンドドロップで利用できる。部品のバージョン管理も簡単に行えるため、保守性も高い。
  • テスト対象の変化に追従することが大きな負荷となるため、自動テストの持続性を阻害すると言われている。UiPathは、オブジェクトリポジトリを利用することにより、対象のUI要素(セレクター)が変化しても一括でメンテナンスが可能になっている。また、使用するUI要素を独立して設定・管理・再利用できる「UI要素のライブラリ化」も可能になっている。
  • モバイルアプリのテストコードもWebアプリ、デスクトップアプリと共通のプラットフォームのため、ローコードで開発可能である。

② 実現性

  • Webアプリ、デスクトップアプリ、モバイルアプリなど、様々な種類のアプリケーションの自動化に対応している。
  • テストコードのあらゆる箇所で検証(テスト判定)が可能で、検証時のスクリーンショットの取得も設定可能。さらに、必要に応じてUiPathマーケットプレースから部品をインストールすることで、多彩な検証機能が実現できる。
  • 自動テストではメジャーなデータ駆動型テストの機能があり、データバリエーション単位のテスト状況も可視化できる。
  • Web APIのテストも実現可能。Postmanでは難しかったデータバリエーションテスト、複雑なテストも簡単に実現できる。
  • iOS、Androidのアプリケーションテストが可能。iOSとAndroidの多機種、OSバージョン、加えてエミュレータ上や実機を繋げて実機品質でのテスティングも実現可能。多機種・OSバージョンに対応するスマートフォンやタブレットのアプリケーションを並列でテストし、テスト効率を向上させることも可能である。

③ 安定性

  • 自動テストで重要なUI要素認識はUiPathのコアテクノロジーであり、その堅牢さはRPA界隈でも評価が高く、SAPを含む多様な画面要素を対象に安定した自動化が可能である。さらに、あらゆるアプローチで要素を認識しようとする新しいテクノロジーが登場し、安定性がさらに増している。非同期で描画される要素に対応し、Flakyを対策することも可能。

④ 柔軟性

  • 目的に応じてテスト実行計画をブラウザー上で柔軟に設定できる。目的に応じ実施すべきテストケースをUiPath Orchestratorで自由に組み合わせ、また、このテストセットは遠隔より手動起動または定期的なスケジュール起動など、多彩な実行トリガーを持っている。

⑤ 可視化・証跡

  • テストの検証結果をブラウザー上で確認できる。テスト実行の詳細ログ、検証アクティビティ実行時のスクリーンショットも参照でき、テスト結果の分析が容易になり、開発者へのフィードバックに役立つ。

⑥ スピード

  • テストデータキュー機能により、複数のロボットで分散テストを実行でき、テスト時間の短縮が可能。
  • CI/CDパイプラインを構築するためのJenkins及びAzure DevOps Services用のプラグインを公開している。CI/CDパイプラインを構築することでアジリティを獲得し、リリース速度の向上に寄与する。

⑦ テストの生産性

  • UiPath Task Captureで操作手順をレコーディングして、画面キャプチャー付きのWord文章を生成できるため、手順書作成の生産性を高めることが可能。手順書をTest Managerに直接アップロードでき、自動化テストケース用の設計書や手動テスト手順書として一括管理できる。
  • Test Managerは、手動テストの項目作成、手動テスト実施機能が備わっており、手動テストの実施及び記録もクイックに行える。

⑧ テスト管理の容易性

  • Jira等のALMツールとUiPath Test Managerの連携が可能。テストケースの紐づけで要件の漏れを防止できる。
  • UiPath Test Managerは、手動テスト項目も自動テストケースも統合して管理できる。テスト実行結果の時系列での成功率などをリアルタイムでグラフィカルに描画するダッシュボードも備える。テスト結果を履歴で一元管理しており、ログやスクリーンショット等の詳細も確認できる。

アプリケーションテストの自動化において、その効果や・メリットを十分に引き出すためには、使用するツールの機能や性能が大きく関わってきます。UiPath Test Suiteは、一般的なテスト自動化の課題解決のためにツールに求められるものに対し、十分な機能や性能を持っていると言えます。機能や性能を、求められるプロセスや実装に合わせて活用することで、アプリケーションテストの自動化において、効果やメリットを十分に引き出すことが可能です。

AIを活用したテスト自動化の期待

テスト自動化ツールの中にもAIを利用した製品が登場しています。例えば、テスト対象となるWebアプリが多少変化しても、AIを活用したテクノロジーでテストコード(要素のセレクター)を自動修復することで、メンテナンス工数を低減できるといった機能が実現されています。
UiPath製品でもAI機能の拡充が進んでおり、RPAで活用する動きがあります。AIを利用し業務自動化の機会を発見、分析、優先順位付けする機能「UiPath Task Mining」や、AIがドキュメントを理解し紙媒体をデータ化する「UiPath Document Understanding」、AIが視覚情報を理解し画像から要素を認識する「UiPath AI Computer Vision」などです。
テスト自動化にAIを活用する場合、人の目で画面の要素を認識することに着目したUiPath AI Computer Visionが実用レベルに達すれば、テストコード作成時にテスト対象(Web、デスクトップ、モバイルなどのあらゆるアプリ)の画面が実装されていなくても、画面レイアウトのイメージ図から要素を認識できるようになり、早い段階でテストコードを作成することが可能になります。そして、テスト対象が多少変化しても、AIが要素を自動認識するため、メンテナンス工数の低減にも期待できます。
また、UiPathは、作業の自動化に独自のAI機能を持たせるためのプラットフォーム「UiPath AI Center」を提供しています。AIモデルの管理、ワークフローからAIの利用、AIモデルの精度向上といった一連の機能を持ち、自動化の中にユーザが求めるAIの取り込みが可能となります。テスト自動化においても、このプラットフォームを活用することで、将来、多様なニーズに則したAI活用への広がりも期待できそうです。


※ UiPathは、UiPath社の米国およびその他の国における登録商標または商標です。

富士ソフト RPAソリューションのご案内



 

 

この記事の執筆者

塩見 潤Jun Shiomi

エリア事業本部
西日本支社 インテグレーション&ソリューション部
ITアーキテクトグループ
課長 / フェロー

RPA UiPath