【Power Apps】テストスイート機能の活用

# Power Appsにおけるテスト自動化の実践的アプローチ

本記事では、Power Appsにおけるテスト自動化(テストスイート機能)の可能性と課題、そして生成AIの活用について解説します。

## はじめに

* **あくまで個人の考えや知見に基づくものです**
  * 生成AIの利用は組織のポリシーに従ってください
  * テスト方針は組織やPJのものに従ってください

* **ほぼ開発者向けの内容です**
  * Power Appsで大規模開発している方
  * 開発効率を上げたい方

この記事は[【PP舞踏会 #2】Power Appsのテストスイート](https://ppcastle.connpass.com/event/326166/)の登壇内容を記事にしたものです。

https://www.docswell.com/s/pplog/KV1VXV-powerappstestautomation

出戻りガツオさん、コルネさんのスライドもぜひご覧ください。

https://www.docswell.com/s/DemodoriGatsuo/K1RJWR-2024-08-21-GASUOPP-ppcastle

https://www.docswell.com/s/korune/KEGJ8Z-2022-10-18-203511

https://www.youtube.com/watch?v=er6gpqo6OuA

## 一般的なテスト実施の手順

一般的には機能や要件をまとめたドキュメントなどをインプットに、テストをどのように実施するかというテストケースを作成し、このテストケースをベースにテストを実施します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/fda81f59-707f-406f-1a5f-d878ab228aa7.png)

またテストの種類には以下のようなものがあり、必要に応じてテストを実施します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/8808a94b-3ff5-a0f4-8925-7b2bcd272e6e.png)

## Power Appsでのテスト自動化

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/c04f92ee-86ac-0b58-a2b9-89ada03f2054.png)

Power Appsで実施できるテスト自動化は、以下の3種類があると考えています。

1. **テストケース作成の自動化**
2. **テストコード作成の自動化**
3. **テストケース実施の自動化**

### テストケース作成の自動化

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/6a251461-9932-98c1-2552-323b59f42926.png)

生成AIを用いて機能要件やソースコードなどのドキュメントから自動的にテストケースを生成することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/1de63906-2d30-f412-597e-cbc0ffc74c9f.png)

生成AIの特性上、網羅的なテストケースを作成することはできないので、完全な自動化ではなく効率化程度で利用するのがいいと考えています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/cdf0439e-9cf6-92c6-6d5e-c5224adb0f1a.png)

上記のテスト種別は生成AIでのテストケース作成に向いているので、自動生成に挑戦してみるのもいいかもしれません。

#### テストケース作成の自動化はそれなりにできそう

以下のプロンプトでそれっぽいテストケースが作成されました。
ソースコードだけをインプットしてそこそこのテストケースが作成できたので、他のドキュメントをインプットすればもっと質の高いテストケースが作成できるかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/f5128d7b-b1aa-4071-56ef-c68f801a5805.png)

自動化を試す場合はトークン数がどうしても多くなってしまうので、ClaudeやGeminiなどの大量トークンが許容されるモデルがおすすめです。

### テストコード作成の自動化

現状Power Appsでテストコード(テストスイート)を作成するためには、一度操作を記録して必要に応じてロジックを組み込む必要があります。

これでは大した効率化にはならないので、効率化の手法として生成AIを活用したテストコードの自動生成が考えられます。
しかし、実際に試してみるとアプリをパッケージ化する際にエラーが出てしまいコードの自動生成は難しそうな印象でした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/1c098a11-b1a5-6d95-750b-e88e21eb993c.png)

### テストケース実施の自動化

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/5fe5c1c9-5643-efb0-3a76-884a7155d42a.png)

テスト実施の自動化に関しては、投資対効果（ROI）を考慮して自動化の適用範囲を判断することが非常に重要です。特に以下のテストタイプが自動化に適しています：

* リグレッションテスト：モジュール間の連携確認
* パフォーマンステスト：負荷耐性とレスポンス時間の評価

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/ce5a514f-02ff-a74a-b47f-cd676403b8d3.png)

テスト種別の他にも要員のスキルや実施回数、求められる品質なども判断基準としてあります。
正しく判断して効率的にテストを進めましょう。

## Power Appsのテスト自動化の現状

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/38473bde-daa6-e16b-f623-6f67ddcd3dd5.png)

現状のテスト自動化はRPAレベルの単純作業の繰り返ししかできないと感じています。

今後のCopilotの機能拡充で、開発中に品質を上げるための提案をしてくれるようになるなど、テストをしなくても品質が担保されるようになることを期待しています。

## 元記事

https://powerplatformnikki.com/testautomation/