Microsoft の「Power Automate」はテスト自動化ツールたり得るか
氏名 山本涼平所属 日本ナレッジ株式会社
はじめに・背景
ソフトウェア開発手法の変化や求められる品質の変化により、テスト自動化の需要は拡大を続けている。市場には様々なテスト自動化ツールが存在し、最近ではプログラミング言語をほとんど必要としないローコードツールが主流となりつつある。QA担当者の中にはプログラミング言語スキルを持たないメンバーも多く、今後のテスト自動化拡大に於いてはこのローコードツールの活用が重要と考えられる。
Microsoft は「Power Automate」というローコードの RPA ツールをリリースしており、そのデスクトップ向けアプリケーションである「Power Automate for Desktop」は Windows11 からプリインストールされている。この無償で活用できるツールをテスト自動化に活用できれば、テスト自動化の普及に繋げることができると考えた。
実際には RPA ツールとテスト自動化ツールでは求められる機能が異なることもあり、単純にテスト自動化ツールとしての流用は難しい。ここでは「Power Automate」を活用したテスト自動化で直面した課題と解決方法について、実際の事例を交えて紹介する。
事例プロジェクト詳細・システム：販売/仕入/在庫管理の Windows アプリケーション
・テストレベル：システムテスト～受入テストで活用を想定
・テストタイプ：シナリオテスト
あるプロジェクトにて、テスト自動化に「Power Automate」を活用したいと要望があった。まずは QA チームで実施しているシナリオテストをベースとしてスクリプトを実装し、今後は異なるテストタイプや開発チームで活用することも検討している。
QA チームでの利用ということもあり、プログラミング言語スキルが不要で直感的に使いやすいツールを希望しており、また今後顧客側でスクリプトを保守していくこと、開発チームでも活用することから、実装したスクリプトの保守性・再利用も重要となる。
これまで検討していた Power Automate のテスト自動化ツール活用の調査と、顧客希望の合致もあり、実際に一部のシナリオを自動化して実現性調査を行った。
問題提起
■問題点
所謂「テスト自動化ツール」と Power Automate のような「RPA ツール」では機能の違いがあるため、まずはテスト自動化を実現できるかの機能調査をする必要があった。
■自動化ツール要件
ローコードでテスト自動化の開発・運用を行うためには、ツールとして以下の要件を満たす必要があると考えた。
要件 1：対象システムの操作/検証をローコードで実装できる
要件 2：作成したスクリプトの保守性、再利用性を考慮した実装ができる
要件 3：テスト結果の確認、不正の分析がしやすい Report 出力ができる
要件 4：自動実行、不具合報告など、他ツール連携を含めた自動テストシステムとしての運用面の機能がある

1

個々の問題に対する課題を示す■要件 1：「対象システムの操作/検証をローコードで実装できる」の課題
・Validation 専用コマンドがない
テスト自動化では単純に操作を自動化するだけでなく、その後の画面表示などを検証する必要がある。しかし Power
Automate を含めた多くの RPA ツールは検証用のコマンドが用意されておらず、既存コマンドの組み合わせで Validation を実装する必要がある。
■要件 2：「作成したスクリプトの保守性、再利用性を考慮した実装ができる」の課題
・Module 化が難しい
Power Automate は基本的に一つのデスクトップフローで完結する構成となっている。デスクトップフロー内には「サブフロー」と呼ばれる Module のようなものはあるが、別デスクトップフローから呼び出すことができない。複数のデスクトップフローから呼び出せる共通ライブラリのような機能もなないため、基本的には共通手順の再利用ができず、毎回フロー内で同じ手順を作成するため保守性も低い。
■要件 3：「テスト結果の確認、不正の分析がしやすい Report 出力」の課題
・Report 出力機能がない
Power Automate にはテストシナリオ全体を通しての各チェックポイントの合否結果出力、Evidence の取得などの Report機能が存在しない。Report 機能が無いことにより、テスト実行失敗時に失敗した原因の調査・解析に時間が掛かってしまい、テスト自動化のメリットである工数削減効果が薄い。
■要件 4：「自動実行、不具合報告など、他ツール連携を含めた自動テストシステムとしての運用面の機能」の課題・複数人での作業ができない
無償版では作成したフローの共有ができず、複数人で作業する場合には有償アカウントが必須になる。
・バージョン管理ができない
Power Automate の標準機能ではバージョン管理ができず、また同一名称のフローを複数保存することができないため、旧スクリプトを残しておくにはエクスポートしてバックアップしておくなどの方法をとる必要がある。また Git などのソースコード管理ツールとの連携はできず、Power Automate クラウド上で管理する必要がある。
個々の課題に対する対策を示す■課題 1：Validation 専用コマンドがない
Power Automate の標準コマンドを組み合わせて Validation を作成した。標準コマンドには「ウィンドウが次を含む場合」のような条件分岐のコマンドが存在するため、画面上の期待値の有無で OK/NG を出力するようなフローを実装して結果を記録した。
■課題 2：Module 化が難しい
共通 Module として汎用化した「共通デスクトップフロー」を作成し、それを「Test Case フロー」という別のデスクトップフローから呼び出す構成とすることで Module 化を実現した。ただしデスクトップフローから他デスクトップフローの呼び出しには有償アカウントが必要であったため、無償版での対応は不可能であった。
■課題 3：Report 出力機能がない
課題 1 で実装した各 Validation のタイミングで「実行結果」「期待値と実測値」「画面キャプチャ」を一時ファイルとして保存しておき、それらをテスト完了後に Excel ファイルとしてまとめることで Report とした。また作成した Report ファイルは、Test
Case フローの最後で Outlook のメール送信を行い、Teams の結果報告チャンネルに投稿できるようにした。
2

■課題 4：複数人での作業ができない
単一アカウントでの実装・実行であれば問題ないが、複数人でフロー開発・実行を共有するにはやはり有償アカウントが必要であった。複数人での開発のため、個々人で作成する「開発環境」と、それらを統合する「共有環境」の二つの環境を準備して運用した。
■課題 5：バージョン管理ができない
この課題については根本的な解決方法は存在しない。運用対処として、バージョン番号付与によるステータスの明確化、定期的なエクスポートによるバックアップ取得で対処した。
Power Automate の有効活用方法
自動化ツール要件を完全に満たすことは難しいが、限定的な活用であれば有用と言える部分もある。どのような条件であれば Power Automate を有効活用できるかについて、一部の例を記載する。
・小規模プロジェクトである
ローコードツールとしての使いやすさは優秀で、標準コマンドもテスト自動化ツールと比べても豊富なので、課題である複数人作業とバージョン管理の影響を受けづらい小規模プロジェクトであれば有効であると言える。またツール要件として確認した以外にも、一つのフローに対する従属フロー数制限、ソリューションエクスポートのサイズ制限問題があるため、（本来の用途を考えれば当然ではあるが）そもそも大規模なプロジェクトには向いていないと思われる。
・Outlook や Excel、Windows サービスの制御他のテスト自動化ツールと比較して優れている点として、Outlook や Excel などの Office 製品に関する制御コマンドが存在すること、Windows サービスや画面解像度設定、プリンタ設定など他社製ツールでは制御が難しい部分を操作できることが挙げられる。テスト実行や実行後の報告処理などでこれらの操作が必要な場合、他ツールに比べて Power Automate は実装が容易であると言える。
・Validation や詳細な Report 出力が不要な場合
Validation や詳細な Report 出力が不要な作業であれば、前述の課題で苦労することなく利用が可能である。テスト作業の一部である「テストの事前準備」「テスト手順の実行」までを自動で行い、Validation を目視で行うという半自動化の形であれば有効活用できると言える。
今後の期待■高頻度な機能アップデート
Power Automate は高頻度で機能追加が行われており、今後のアップデート計画についても公式ドキュメントで確認することができる。実際にプロジェクトで利用した際に使い辛いと感じていた「UI 要素を追加すると、画面が複数生成されてしまう」「フローの入出力変数の型が文字列固定」といった課題は、今後のアップデートで改善見込みである。これまでに挙げた課題についても、今後のアップデートで改善される可能性があると言える。

3

結果・まとめ
結論としては「Power Automate をテスト自動化ツールとして使用できなくはないが、自動化ツールに比べて自身でカスタマイズしなければいけない部分が多く、また運用面での注意点が多いことから、導入には検討が必要」と言える。
有償アカウントの費用自体は最安値のライセンスで年間 2 万円程度と一般的なテスト自動化ツールよりもかなり安価であり、コスト面での導入のしやすさはある。Power Automate の得意とする Microsoft 製品や Windows の制御を行う必要があるテストや、前述の未解決課題を回避できるような小規模のプロジェクトであれば有効活用できると考えている。
また当然ながら Power Automate は Office 製品や Azure など Microsoft 関連サービスとの連携が強く、条件分岐やループなどのコマンドの種類も豊富であるため、RPA ツールとしては非常に優秀と言える。今後のアップデートで、テスト自動化への活用においても効果的な改変が行われることを期待する。
今回調査した Power Automate の課題・解決方法や、テスト自動化ツールとして必要な機能の考え方については、他のツールの利用時にも流用できると言える。テスト自動化の導入を検討している方の参考となれば幸いである。

参考文献
・Microsoft, “Microsoft Power Automate ドキュメント”, 2022
https://docs.microsoft.com/ja-jp/power-automate/ (参照 2022-05-09)
・Microsoft, “Power Automate の新機能”, 2022
https://docs.microsoft.com/ja-jp/power-automate/whats-new (参照 2022-06-16)

4