Test Suiteでテストを自動化!(初級編)

はじめに

 こんにちは。都内でも桜が開花したとのことで、いよいよ春ですね!ただ今年の花粉は手強いそうで。。(私は花粉症ではないのですが、いつくるのかとびくびくしています、、)

 さて今回は、RPAだけでなくソフトウェア開発全般で必須であるテスト工程における「テスト自動化」についてお話します。コラム後半では、UiPathのテスト自動化ツール「Test Suite」を使用した自動化テストのサンプルをご紹介しますので、ぜひ最後までご覧ください!

 

自動化テストについて

ソフトウェアテスト

一般的にテストは、成果物が要件を満たし想定通り動作するか、欠陥がないか等を、リリース・運用開始前に検証する目的で実施されます。図1で示すように、検証観点や担当者、項目の粒度等によって、様々な種類のテストがあり、これらを正しいタイミングと方法で実施することで、コスト面や業務影響等のリスク軽減に繋がることはよく知られています。


1(引用:UiPath Academy>UiPath Test Suite 基礎コース>ソフトウェアテスト基礎知識)

自動化テスト

自動化テストの強みは、一定の品質を保ちながら素早く繰り返しテストできる点で、工数やコストの削減が見込めます。対象のロジックや実施するテストの種類に応じて適切に判断することで、自動化テストが効果を発揮します。自動化が効果的と言われているのは図1で青く色づけされた部分で、主な特徴は以下です。


(1)実行に時間がかかる
(2)
膨大なデータを処理する
(3)1ロジックで繰り返し実行が必要
である
(4)1
ケースで様々な端末を使用する
(5)
実行毎に結果が変わらない

 

Test Suiteを使ってみよう

Test Suiteとは?

UiPathの自動化テストツールである「Test Suite」は、RPA開発だけでなくアプリケーション開発にも使用することができます! UiPath社が提供するツールはもちろん、他社のツールとも連携して使用することも可能です。Test Suiteを構成する主なコンポーネントは以下です。

UiPath Studio Pro

自動化テスト検証用のロボット作成時に使用する開発ツールUiPath StudioUiPath StudioXと同じビルド内にある。Enterpriseライセンスもしくは、Community Edition(無償版)で使用でき、普段のRPA開発と同じ手順で使用する。
参考:アプリケーションテスト(uipath.com)

Test Manager

自動化テストを管理するツールUiPath Test Suite Enterpriseライセンスが必要。具体的な機能には以下がある。
(1)
作成した自動化テストとTest Manager上の手動テスト用のケースと接続
(2)
各テストケースを対象の要件へ割り当て
(3)
テスト結果をレポートやダッシュボードに表示
(4)
手動テストの実行のサポート
(5)
テスト結果から不具合を整理・表示
(6)
手動テスト用のケースにドキュメントを追加

Test Manager Hub

UiPath Test SuiteとサードパーティーのALMツールを連携させる。以下の操作が可能。
(1)テストケースを要件/シナリオ/その他の成果物に
(2)実行ログやスクリーンショットを含むバグレポートをバグ追跡システムで作成

Orchestrator

開発したロボットを実行するツール。自動化テストの実行と進捗・結果管理を行う。

Test Robots

実際にテストを自動で実行するロボット

 

管理コンポーネントを使用する準備として、Automation Cloud設定とライセンス割り当てが必要です。Automation Cloudは、インフラ構築に手間をかけることなく登録後すぐに利用でき、現在は無償版も展開されています。Automation Cloud Enterprise無料評価版には、UiPath Studio ProライセンスとTestingロボットライセンスも含まれています。自動テストケース開発に向けた準備は、UiPath Studio Proのインストールとライセンス割り当てのみで、時間をかけずに開発に着手できます。

Testロボットを作ってみよう

概要が分かったところで、実際にRPAを対象に簡単な自動化テストを行います。
今回はUiPath Studio Proを用いてTestingロボットを作成・実行してみます。設定は以下とします。

 

自動化テスト対象のRPA

必要な情報を入力してサイトへユーザー登録する処理

自動化したいテスト観点

様々なパターンの入力情報を用いて繰り返しテストし、その都度ユーザー登録の可否を正しく返すかどうか?

使用するテストデータ

1.正常に登録できるデータ
2.
既存会員のため登録できないデータ
3.
入力内容不備のため登録できないデータ
※テストデータの管理方法・使用方法については、後ほど補足


ここからTestingロボットを作成していきますが、前提としてUiPath Studio Proへの切り替えと専用パッケージ「UiPath.Testing.Activities」のインストールが必要です。※UiPath Studio Proへの切り替えは「設定」>「ライセンスとプロファイル」>「プロファイルを確認または変更」から可能です。


(1)テストケース.xaml作成

ワークフローを右クリックして「テストケースを作成」を選択すると、「テストケース.xaml」(名前は任意で設定可能)が作成されます。過去にテストケース.xamlのテンプレートを作成している場合は、ドロップダウンリストからテンプレートを選択して使用することができます。
参考:テスト ケース (uipath.com)
   
テスト ケース テンプレート (uipath.com)


RPAを対象とした自動化テスト作成用ワークフローは以下3つのシーケンスで構成されます。

Given

前提条件の定義(空欄も可)

When

テスト対象のファイル呼び出し

Then

想定する結果が返ってきているか、アクティビティで検証

 

(2)テストデータのインポート

テストケース.xamlができたら、そこにあらかじめ作成したテストデータをインポートします。テストケース.xamlを右クリックし、「テストデータを追加」>テストデータファイルとシート名を選択することでインポートが完了します。インポート後は、記載したテーブルのヘッダーを引数としてワークフロー内で使用できるようになりますテストデータの更新や削除も同様にxaml名を右クリックから行うことができます。


今回はExcelファイルにてテストデータを管理していますが、csvやjsonで保持することもできます。また、ファイルをインポートする方法の他、できるだけ多くの分岐を通るよう自動的にデータを生成する「自動生成」や、「Data Service」を使用する方法(詳細:Data Service (uipath.com)) もあります。


(3)「Then」に検証用アクティビティ配置
テストデータをインポートして引数が自動的に生成された後、開発画面にてアクティビティを配置します。
テストケース用xaml独自の検証用アクティビティを使用でき、主なものには以下があります。

式を検証

指定した式の真理値を検証。

式を演算子で検証

指定した式を、演算子を使用して検証。演算子は選択式。

コントロールの属性を検証

左辺に配置したアクティビティの出力と右辺で指定した式を、演算子(選択式)によって検証。左辺には、画面から要素取得等のアクティビティを配置できる。

範囲の検証

指定の範囲内に式があるかどうか検証。


今回は、ユーザー登録処理を行った結果、その処理が成功した場合・失敗した場合にそれぞれ別の画面が表示される想定です。今回使用した「コントロールの属性を検証」では、左辺「表示されている画面から取得したテキスト」が、右辺「テストデータで想定している文言」を含むかどうか、検証する設定としました。


インポート済のテストデータのヘッダーは引数として扱えるため、右辺「Result」は引数です。引数Resultには、登録処理後の画面に表示される文言の期待値が入っており、登録処理の成功・失敗それぞれの場合にて、想定の画面が表示されていることを検証できます。


(4)テスト.xamlの実行

Thenに検証アクティビティを配置したら、テストケース.xamlを実行してみます。「実行」>「データのバリエーションを使用してファイルを実行」をクリックすると、「データのバリエーション」ウィンドウにて事前にインポートしたテストデータが表示されます。その中から、左のチェックボックスにて実行時のインプットとするデータを選択して実行します。

 


(5)実行中・実行後の結果出力

実行を始めると、出力窓にテスト結果が表示されます。「アクティビティカバレッジ」では、テストケースのうち何%をカバーできているかが自動的に計算され、表示されます。テストケース名をダブルクリックすると詳細を見ることができ、検証のうえ正しく挙動したケースは緑通らなかったケースは赤で表示されます。

 

また、検証した結果が想定と異なる挙動だった場合、以下のようにログとして出力され、その後に次の行のテストデータ実行に移ります。

終わりに

ここまで、自動化テストや、テストケース.xamlの作成・実行方法をご紹介してきました。改めて、今回紹介したTest Suiteを使用すると、品質向上やテスト工数の削減はもちろん…


・テスト工程の進捗や結果を一元的に管理できる
UiPathや他社APIとの互換性が高い
エラー箇所を自動で特定でき、ソース修正が容易になる
・フローを網羅しているか確認でき、テスト漏れを防止できる


上記のようなさまざまな強みがあります。

 
今回、詳細な説明を割愛したOrchestratorTest Managerとの接続によって、より幅広く効果的な自動化テストが行えます。また、Test suiteには現在試験運用中の機能もあり、今後さらに便利な機能の追加も期待できます。

 
BTCでは、さまざまなツールを活用してお客様の業務効率化に寄与していきます!RPAはもちろんソフトウェア開発に関しても、こちらからぜひご相談ください。


関連記事

最新情報をお届けします!

RPAに関する最新コラムやイベント情報をメールで配信中です。
RPA領域でお仕事されている方に役立つナレッジになりますので、ぜび登録してください!

最新情報を受け取る方はこちら

もっと知りたい方はこちら


ページトップ