はじめに
UiPathにはRPA開発向けのテスト機能が用意されています。
一方で、Test ManagerやAutopilotはソフトウェアテストの文脈で紹介されることが多く、「RPA開発でも活用できるのだろうか?」と思ったことはないでしょうか。
そこで今回は、以下の観点でUiPathのテスト機能を整理しながら実際に試してみました。
- UiPath Studioのテスト機能
- Test Managerを利用したテスト実行
- Test Manager Autopilotの活用
- Autopilotを利用したRPA向けの応用例
特に本記事では、Test ManagerのAutopilotがRPA開発やRPAテストの場面でも活用できるのかを検証しています。
UiPath Studioのテスト機能
まずはUiPath Studio単体で利用できるテスト機能です。
導入ハードルが最も低く、RPA開発者がすぐに利用できる機能だと思います。
今回はUiPath AcademyのREFrameworkサンプルをベースに改修したワークフローを対象に試してみました。
テストケースの構成
RPAのテストケースは以下のような構成になります。
- 前提条件の準備
- テスト対象ワークフローの実行
- 実行結果の検証
BDD(Behavior Driven Development)に近い構成になっており、読みやすく保守しやすい形で作成できます。
テストケースの一括実行
今回は8件ほどのテストケースを作成し、一括実行しました。
テストデータを変更しながら複数パターンをまとめて実行できます。
実行中は出力パネルに結果がリアルタイム表示されます。
- 成功:緑色
- 失敗:赤色
で表示されるため、どこで失敗したのかも把握しやすくなっています。
カバレッジ確認
テスト実行後はTest Explorerでカバレッジを確認できます。
例えば75%と表示されている場合、
- 緑色のアクティビティ:実行済み
- 赤色のアクティビティ:未実行
として表示されます。
例外処理部分が赤く表示されている場合は、その例外パターンがまだテストされていないことが分かります。
開発中は同じ確認作業を何度も繰り返しがちなので、自動化しておくと非常に便利です。
記述子カバレッジ
UI操作を行うワークフローでは、記述子(Descriptor)のカバレッジも確認できます。
利用している記述子が実際にテストで使用されたかを確認できるため、
- 使われていない記述子
- テストできていないUI操作
を発見するのに役立ちます。
Test Managerでテスト実行
次にTest Managerを利用したテスト実行を試します。
テストセットの作成
Test Managerではテストケースをテストセットとしてまとめられます。
テストセット化しておくことで、セットされたテストケースを一括でテスト実行させたり、もちろんスケジュールで定期実行させることもできます。
実行結果の確認
テストを実行すると、Studioで作成したテストケースが順番に実行されます。
結果は
- 合格
- 失敗
で確認できます。
また、Unattended Robotで実行した場合でも、アクティビティカバレッジを確認できます。
Test ManagerのAutopilotはRPAでも使えるのか?
ここからが今回の本題です。
Test ManagerのAutopilotはソフトウェアテスト向け機能として紹介されることが多いですが、RPAでも活用できるのでしょうか。
実際に試してみました。
プロジェクト検索で失敗したテストを抽出する
Autopilotのプロジェクト検索機能を利用すると、自然言語でテスト結果を検索できます。
例えば、
「失敗したテスト結果をすべて検索」
と入力すると、条件に一致するテスト結果を抽出できます。
さらに、検索結果からそのまま再実行操作へ進めるため、失敗テストの確認から再テストまでをスムーズに行えます。
ソフトウェアテスト向けの機能として提供されていますが、RPAテストの結果確認にも十分活用できると感じました。
AutopilotによるRPA実行結果分析
Autopilotはテスト結果の分析レポートも生成できます。
例えば、
「過去7日間」を指定すると、
過去7日間蓄積された
- 実行結果の概要
- 頻発している失敗
- エラーパターン
- 推奨事項
などをレポート化してくれます。
例えば、
- UI要素が見つからない
- タイムアウトが多発している
といった傾向も分析してくれます。
RPA運用の改善にも活用できそうです。
(非公式)AutopilotでPDDレビュー
ここからは少し応用編です。
Test Managerの要件レビュー機能は本来ソフトウェア開発向けですが、RPAのPDD(Process Definition Document)に対しても利用できるのではないかと思い試してみました。
ただし、既定プロンプトはソフトウェアテスト向けです。
例えば、
- アプリケーションロジック
- システム設計
などの観点が含まれており、そのままではRPAには適しません。
そこでRPA向けの観点を追加したプロンプトを作成しました。
主な観点は以下です。
- 業務概要の明確性
- 自動化対象範囲
- 入出力データ仕様
- 業務ルール
- 利用システム情報
- 例外処理
- ログ・監査
- スケジュール
- 運用保守
- セキュリティ
- リスク管理
UiPath Academyの「Generate Yearly Report」のPDDを対象に評価したところ、
- 年度が2023固定になっている
- 将来の運用変更時に問題になる可能性がある
といった指摘が出力されました。
実際、アカデミー受講者が、このサンプルをそのまま実装した際に、操作対象のシステム側で年度が切り替わっており、年度指定でエラーになる経験者も多いようです。要件レビューの観点としては有効だと感じました。
※本機能はRPA向けに提供されているものではなく、独自にプロンプトを工夫して試した内容です。
(非公式)AutopilotでRPAテストケース生成
さらに、RPA向けのテストケース生成プロンプトを準備し、テストケース生成も試しました。
今回は以下のような観点に絞っています。
- Application Exception
- リトライ処理
- 復旧処理
- ログ出力
生成された内容を見ると、
- 初期状態への復帰
- リトライ後の成功確認
- 連続エラー時の終了動作
- モーダルダイアログ発生時の復旧
など、RPAならではの観点が出力されました。
テスト観点の洗い出しにも活用できる
もう一つ面白かったのが、テスト観点のブレインストーミング用途です。
テスト用の大量のアイデアを素早く生成するためのガイドラインプロンプトを準備し、
PDDを入力してテスト観点の整理を依頼すると、
- 正常系
- 業務例外
- アプリケーション例外
- リトライ
- 再実行
- Queue状態遷移
- ログ確認
- SLA観点
などを観点に一覧化してくれます。
既存のテスト設計に漏れがないかを確認する用途としても便利そうです。
まとめ
今回は、UiPath Studioのテスト機能から、Test Managerを活用したRPAテストまで紹介しました。
公式に提供されている機能である
- Studioによるテストケースの自動実行
- アクティビティカバレッジの確認
- Test Managerによるテストセット実行
はもちろん、
Test ManagerのAutopilotでも、
- プロジェクト検索
- Autopilotによるテスト結果分析
などは、RPAテストでも十分活用できそうです。
さらに、公式な利用方法ではありませんが、
- PDDレビュー
- テストケース生成
- テスト観点の洗い出し
といった用途にも、工夫次第で活用できる可能性があります。
RPA開発においても、テストの自動化や品質向上の重要性はますます高まっています。今回紹介した機能が、RPAテストの効率化や品質向上を考える際の参考になれば幸いです。





















