共用方式為


AI 輔助測試創作 ( GitHub Copilot 預覽版)

注意

預覽功能不供生產時使用,而且可能功能受限。 這些功能是在正式發行前先行推出,讓客戶能夠搶先體驗並提供意見反應。

為 Power Platform 應用程式創建全面的測試計劃可能非常耗時,尤其是對於複雜的場景。 人工智慧輔助創作工具等 GitHub Copilot 可以通過生成測試範本、建議測試用例和自動創建樣板代碼來顯著加速這一過程。

本指南介紹如何與原始程式碼管理解決方案一起使用 GitHub Copilot Power Platform ,以有效地創建測試引擎測試計劃。

必要條件

在開始之前,請確保您擁有:

設置測試創作環境

為了最大限度地提高 AI 輔助測試創作的有效性,請將這些工具組合到結構化工作流程中:

  1. 獲取源檔
  2. 初始化 git 儲存庫以進行版本控制 (如果尚未完成)
  3. 在解決方案存儲庫中創建專用測試資料夾
  4. 在 Code 中 Visual Studio 開啟解決方案資料夾

用於 GitHub Copilot 創建測試

GitHub Copilot 可以幫助您根據原始程式碼控制的解決方案生成各種測試元件。 以下是如何有效使用其功能:

使用範例文件作為上下文

測試引擎示例目錄 提供了豐富的參考資料 GitHub Copilot來源。 您可以透過以下方式説明 Copilot 產生更高品質的測試:

  • 在工作區中包含 samples.md 檔
  • 在提示中引用特定範例
  • 提供指向示例 GitHub 儲存庫的連結

例如,您可以:

  • 在 VS Code 中開啟應用程式代碼和 samples.md 檔案
  • 要求 Copilot 創建「類似於 ButtonClicker 範例」或「使用範例中的 Dataverse 模式」的測試
  • 從符合您測試需求的樣品中參考特定功能

此方法有助於 Copilot 瞭解 Power Platform 測試引擎模式並生成更準確的測試。

在代理模式下使用 GitHub Copilot

Visual Studio Code's GitHub Copilot Chat 提供了一種 代理模式 ,可以幫助根據您的解決方案檔生成測試。 此模式允許 Copilot 更深入地訪問和瞭解您的專案上下文。

要使用代理模式產生測試:

  1. 在 VS Code 中,打開 GitHub Copilot “聊天”(Ctrl+Shift+I)
  2. 從 Copilot 模式選擇器中選擇 代理
  3. 製作有關您要創建的測試的詳細提示

測試生成的示例提示

嘗試使用這樣的提示來產生測試:

目標:
使用以 ButtonClicker 示例為 Power Apps 模型的測試引擎為 畫布應用生成全面的測試套件

提示:
使用 at 示例 https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker 作為引用,為 ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml 生成測試。 創建預期案例、邊緣案例和異常案例。 測試應根據範例創建一個測試 YAML 檔和 Power Fx 測試步驟、config.json 和 RunTest.ps1,以便我能夠運行測試。

目標:
為模型驅動應用制定詳細的測試計劃,以確保核心功能和業務邏輯按預期工作。

提示:
為位於 ./SolutionPackage/src/Other/Solution.xml 的模型驅動應用創建全面的測試計劃。 測試應驗證表單載入、記錄創建和業務規則執行。 生成測試 YAML、 Power Fx 步驟和 PowerShell 腳本以運行測試。

目標:
為實體構建 Dataverse 測試計劃,通過作驗證 Power Fx CRUD 作。

提示:
為我的 Dataverse 實體制定全面的測試計劃。 測試應執行創建、更新、刪除 Power Fx 作。 生成測試 YAML、 Power Fx 步驟和 PowerShell 腳本以運行測試。

瞭解生成的測試元件

生成測試時 GitHub Copilot ,通常會創建以下元件:

  • YAML 測試計劃:定義測試結構、應用 URL 和測試步驟
  • Power Fx test steps:包含使用表達式的 Power Fx 測試邏輯
  • config.json:測試執行參數的配置
  • RunTest.ps1:用於執行測試的 PowerShell 腳本

範例:生成的測試結構

MyAppTests/
├── MyAppTest.fx.yaml     # Power Fx test steps
├── MyAppTest.yml         # Test plan definition
├── config.json           # Test configuration
└── RunTest.ps1           # Test execution script

AI 輔助測試創作的最佳實踐

請考慮以下部分,以充分利用 GitHub Copilot 測試引擎測試創建。

在提示中提供清晰的上下文

具體說明要測試的內容,並包含對以下內容的引用:

  • 要測試的確切檔
  • 用作範本的範例測試
  • 要涵蓋的特定測試方案
  • 任何身份驗證或環境要求

使用測試引擎範例獲取上下文

# samples.md 文檔對測試引擎存儲庫中的所有可用示例進行了分類,這在製作提示 GitHub Copilot時可以作為很好的參考。 例如,在測試帶有按鈕的畫布應用時,可以參考 按鈕點擊器範例

提示:
使用 ButtonClicker 示例 https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker,在 ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml 中為我的 Canvas 應用生成測試。 測試應該:
1. 驗證我的計數器按鈕是否在螢幕上遞增一個值
2. 測試邊界條件 (例如,最大值)
3. 包括 OnTestCaseStart 和 OnTestCaseComplete 生命週期鉤子
4. 使用適當的環境變數生成 config.json

這種方法有助於 Copilot 瞭解測試結構,並根據經過驗證的示例生成更準確、與上下文相關的測試。

使用原始程式碼控制的解決方案作為上下文

當 Copilot 能夠分析您的解決方案結構時,它的性能最佳。 使用解決方案 的 Power Platform 原始程式碼管理來 提供此上下文。 此上下文允許 Copilot:

  • 瞭解應用的結構
  • 標識控制項名稱和屬性
  • 生成更準確的測試步驟
  • 引用正確的文件路徑

查看和優化生成的測試

雖然人工智慧生成的測試提供了一個很好的起點,但始終:

  • 驗證控件引用是否與應用程式匹配
  • 為關鍵業務功能添加斷言
  • 確保正確處理邊緣情況
  • 驗證身份驗證配置

與手動專業知識相結合

對於複雜的測試方案,用於 GitHub Copilot :

  • 生成測試框架和結構
  • 創建標準驗證模式
  • 建議要考慮的邊緣情況

然後,利用您的領域專業知識進行以下方面的增強:

  • 特定於業務的驗證規則
  • 環境考慮
  • 專業測試數據

常見的測試生成模式

本節包含一些常見的測試生成模式:

測試畫布應用

對於畫布應用,請使用引用 App.fx.yaml 原始程式碼控制解決方案中檔的提示:

提示:
在 ./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml 中為我的 Canvas 應用生成測試,以驗證費用提交過程。 測試應填充費用欄位,提交表單,並驗證是否顯示確認消息。

測試模型驅動應用

對於模型驅動應用,請重點關注實體導航、表單交互和業務規則:

提示:
為我的模型驅動應用創建一個測試,以測試客戶實體窗體。 測試應創建新的帳戶記錄,驗證必填欄位,並驗證信用額度計算的業務規則是否正常工作。

測試 Dataverse 擴展

對於 Dataverse 測試,強調數據作和業務邏輯驗證:

提示:
生成一個 Dataverse 測試來驗證我的解決方案中的自定義外掛程式。 測試應創建測試記錄,觸發外掛程式執行,並驗證是否發生了預期的數據轉換。

特定於樣本的測試提示

若要獲得最準確的測試生成,請參考測試引擎樣本目錄 符合測試需求的特定樣本。 以下是針對常見測試場景的定製提示:

ButtonClicker 示例提示

ButtonClicker 示例 演示了基本的計數器功能測試。 使用以下提示:

提示:
為我的計數器應用生成一個測試,其結構與 ButtonClicker 示例類似。 我的應用具有名為“IncrementBtn”和“ResetBtn”的按鈕,其中包含顯示當前計數的“CounterLabel”。 創建一個測試,以驗證兩個按鈕是否正常工作,並且最大計數為 10。

提示:
使用 ButtonClicker 示例作為參考,為我的按鈕交互應用創建測試。 我的應用有一個「SubmitButton」,只有在完成「NameInput」和「EmailInput」字段時才應啟用該按鈕。 生成一個測試計劃,其中包含 Power Fx 驗證此行為的步驟。

BasicGalleryNestedGallery 示例演示如何測試庫交互:

提示:
為我的庫應用生成一個測試,其中我有一個「產品」庫,其中包含包含「TitleLabel」、“PriceLabel”和“SelectButton”控件的產品項。 使用 BasicGallery 示例結構來驗證我是否可以選擇項,以及正確的詳細資訊是否顯示在“DetailPanel”中。

數據作提示

Dataverse 範例 演示了資料作測試:

提示:
使用範例模式為 Dataverse 我的 CRM 應用創建測試。 測試我是否可以創建新的聯繫人記錄,對其進行更新,然後驗證更改是否持久。 包括 UI 測試和直接 Dataverse 作。

AI 測試提示

要測試 AI 支援的功能,請參閱 AI 提示範例

提示:
根據 AI 提示示例為我的情緒分析應用生成測試。 我的應用程式有一個“FeedbackInput”文字框,用於 AI Builder 將其分類為正面、負面或中性。 創建一個測試,以驗證不同的輸入在可接受的閾值內產生預期輸出。

先進技術

本節提供高級提示功能的示例。

創建多環境測試套件

可以提示 Copilot 產生跨多個環境工作的測試:

提示:
為我的應用程式生成一個測試套件,該套件可以在 DEV、TEST 和 PROD 環境中運行,併為每個環境提供適當的配置變數。

生成數據模擬場景

對於使用連接器模擬 隔離測試:

提示:
為使用 Outlook 連接器的 Office 365 應用建立具有模擬連接器響應的測試。 測試應類比接收電子郵件並驗證應用的處理邏輯。

測試 AI 功能並處理非確定性結果

當您使用 AI 驅動的應用程式時,測試會帶來獨特的挑戰,因為即使輸入相同,AI 輸出也可能在運行之間略有不同。 這種非確定性行為需要特殊的測試方法。

瞭解非確定性測試

非確定性測試涉及驗證可能在測試運行中合法變化的輸出:

  • AI 模型輸出:來自 GPT 或自定義 AI Builder 元件等 AI 模型的回應
  • 置信度分數:可能在可接受範圍內波動的數值評估
  • 生成的內容:人工智慧系統生成的文本或推薦

使用 Preview.AIExecutePrompt 對 AI 功能進行確定性測試

測試引擎提供 Preview.AIExecutePrompt ,支援對 AI 回應進行確定性驗證。 此方法允許您:

  • 在測試場景中執行 AI 提示
  • 解析和驗證結構化回應
  • 驗證關鍵輸出是否符合預期,儘管存在潛在變化

範例:使用 AI Builder

以下範例演示了如何使用該 Preview.AIExecutePrompt 函數來測試 AI 驅動的評級系統:

EvaluateTestQuestionPrompt(Prompt: TestQuestion): TestResult =
  With({
    Response: ParseJSON(
      Preview.AIExecutePrompt("PromptEvaluator",
      {
        Context: "You are a helpful agent asking about external customer service questions.",
        Question: Prompt.Question
      }).Text)
  },If(
    IsError(AssertNotError(Prompt.ExpectedRating=Response.Rating, Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating)),
    {PassFail: 1, Summary: Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating}, {PassFail: 0, Summary: "Pass " & Prompt.Question}
  ))

在此範例中:

  • 該測試針對“PromptEvaluator”模型執行 AI 提示
  • 它傳遞了一個上下文和一個問題以供評估
  • 它驗證返回的評級是否與預期值匹配
  • 它提供有關測試成功或失敗的清晰反饋

您可以在 TestEngine 儲存庫中的 AI 提示示例 PowerApps中 探索完整的實現。

結合人工智慧感知測試

用於 GitHub Copilot 為 AI 驅動的應用程式產生測試時:

提示:
為使用表單處理的 AI Builder AI 驅動的應用生成測試。 包括測試步驟,以對非確定性輸出的適當容差來驗證 AI 結果。

故障排除和優化

如果 GitHub Copilot 生成不符合需求的測試:

  • 優化提示:更具體地說明要測試的內容
  • 提供範例:連結到符合您所需風格的特定測試樣品
  • 分解複雜的測試:請求生成更小、更集中的測試元件
  • 反覆運算:使用 Copilot 的響應來優化下一個提示

探索測試引擎功能
瀏覽測試引擎範例目錄
了解 Power Fx 測試函數
瞭解 YAML 測試格式
探索身份驗證選項
培訓:使用代理模式構建 GitHub Copilot 應用程式