AWS Community Day Hong Kong 2025 Recap

運用 MCP 與 AI 代理進行自動化測試

Recap Series

錄影

https://www.youtube.com/watch?v=cgoFdt8ybwY&t=1296s

準備與規劃

基礎:測試資料

  • 經常遭到忽略,卻至關重要
  • 工作管理系統(例如 Jira):使用 webhooks 將更新儲存至 AWS S3
  • Swagger 文件:提供 API 規格與參數
  • 歷史測試案例:可驗證並重新測試過往案例

串連資料來源

  • 傳統方法找出關聯的能力有限
  • 導入大型語言模型 (LLMs) 以建立連結
  • 範例:
  • Mariana(在 AWS 從事結合 AI 的雲端運算工作)
  • Dario(AI 公司 Entropic 的共同創辦人)
  • Entropic 開發了一系列可透過 AWS Bedrock 使用的 LLMs

執行

AI 驅動的測試工作流程

  • 運用 AI 將測試流程自動化並加以強化
  • 深入探討 AI 如何與現有測試框架整合

報告

全面性報告

  • 根據自動化測試產生具洞察力的報告
  • 運用 AI 提供可採取行動的洞察與建議
  • 強調以 AI 轉型傳統測試工作流程
  • 邀請大家針對所提出的構想提供回饋並參與討論

使用知識圖譜理解關聯

  • 知識圖譜可捕捉單純文字搜尋無法呈現的複雜關聯
  • 範例:Mariana(AWS 職涯)與 Entropic(Dario 創辦的 AI 公司)之間的關聯
  • 知識圖譜能揭示單純搜尋找不到的隱藏連結

知識圖譜在自動化測試中的重要性

  • 對自動產生工作與測試案例至關重要
  • 從資料來源擷取實體,並連結相關項目
  • 範例:
  • 需求工單
  • API 規格
  • 歷史測試案例

建立知識圖譜

  • 傳統方法(例如 PostgreSQL)需要使用大量元件,而且可見性低
  • 無程式碼解決方案(例如 DynamoDB)效率不佳
  • 圖形資料庫(例如 AWS Neptune、Neo4j)較為合適,但需要學習新概念(節點、邊與屬性)

解決方案:Amazon Neptune Analytics

  • 結合圖形資料庫功能、基礎模型與 AWS Bedrock
  • 無須複雜語法即可新增與擷取資訊
  • 提供美觀的圖形檢視畫面,方便進行資料視覺化

圖形檢索增強 (RA)

  • 由 AI 擷取參考文件並產生回應的技術
  • Graph RA 使用知識圖譜進行檢索,而非單純的文字搜尋

AI 驅動的測試管線

  • 建構於知識圖譜基礎之上
  • 採用行為驅動開發 (BDD),並以 Gherkin 格式撰寫測試案例
  • Gherkin 情境使用 Given、When 與 Then 等關鍵字,指定功能的初始狀態、動作與預期結果
  • 測試案例範例:依據前置條件與情境檢查首頁標題
  • 知識圖譜是有效進行自動化測試的關鍵
  • Amazon Neptune Analytics 簡化圖形資料庫管理與視覺化
  • Graph RA 強化 AI 驅動的測試案例產生與執行

AI 驅動的測試案例產生

目標

  • 使用 AI 代理提高測試案例的涵蓋率與一致性

AI 代理的能力

  • 選擇最適合執行的動作,以達成測試目標
  • 分析業務流程,並從知識圖譜讀取需求

範例

訂閱管理功能

業務流程分析

  • 知識圖譜識別出:
  • 在 UI 中驗證付款方式
  • 呼叫付款 API

衝突偵測

  • AI 代理偵測需求衝突:
  • 舊規則:使用者必須先驗證電子郵件,才能使用進階功能
  • 新規則:試用使用者無須驗證電子郵件,即可使用進階功能七天
  • 據此更新相關測試案例

探索 API 詳細資訊

  • 從圖形資料庫擷取端點、必要/選用參數及錯誤回應
  • 透過記錄的資料識別 API 相依關係(例如成功建立訂閱、付款失敗)

產生測試資料

  • 建立涵蓋下列情況的測試資料:
  • 正常流程(成功情境)
  • 邊界案例(邊界條件)
  • 錯誤條件(失敗情境)

結論

  • AI 代理透過下列方式強化測試案例產生:
  • 分析業務流程
  • 偵測衝突並更新測試案例
  • 探索 API 詳細資訊與相依關係
  • 產生全面的測試資料

改善並執行測試案例

運用業務規則改善測試案例

  • 使用業務流程分析與已識別規則的資訊來強化情境
  • 將改善後的情境轉換為情境式測試案例

人機協作驗證

  • AI 可以產生全面的測試案例,但仍需要人類專家進行驗證
  • 人工驗證可確保涵蓋邊界案例與業務情境
  • Jira 工單系統、API 文件與歷史測試案例未必涵蓋所有情境

使用 Playwright 執行

  • Playwright:快速且可靠的端對端測試
  • Playwright 支援所有現代化轉譯引擎,包括 Chromium、WebKit 與 Firefox,並支援跨平台,可在本機的 Windows、Linux 與 macOS 上測試
  • 使用 Playwright 執行測試
  • 廣為人知的開放原始碼自動化測試框架
  • 直接與瀏覽器通訊,以高效率執行測試
  • 支援多種語言(Java、Python、C、JavaScript、TypeScript)
  • 擁有強大的社群支援,在 GitHub 上獲得 78.9K 顆星
  • 原生支援 MCP (Model-Based Continuous Planning),可使用自然語言指令
  • 內建功能:
  • 平行執行以提升效率
  • 全面的追蹤與除錯能力
  • 自動擷取螢幕畫面及錄製影片
  • 詳細記錄測試流程,方便日後驗證

結論

  • AI 能強化測試案例產生,但人工驗證仍至關重要
  • Playwright 提供高效率、多用途且功能豐富的測試執行能力

使用 AI 代理執行測試案例

工作執行代理

  • 負責處理執行階段的 AI 代理
  • 從產生的工作中擷取測試參數
  • 建立 Playwright 指令碼並儲存至資料庫,供日後參考
  • 自動執行測試

使用 Playwright 進行 AI 驅動測試的範例

  • 前端與後端測試
  • 使用 Playwright MCP 搭配 Amazon Q developer CLI 進行實驗
  • 針對簡易電子商務網站的三個測試案例:
  • 購買商品、填寫配送資訊並完成訂購流程
  • 登入並進入商品頁面,不執行其他動作
  • 將商品加入購物車,不執行其他動作

執行後驗證

  • 將測試案例儲存於資料庫
  • 運用錄影等功能,供日後驗證
  • 測試人員可以檢視錄製的影片,確認行為符合預期

完整測試執行流程回顧

  • 三個 AI 代理協同作業:
  • 測試案例產生器
  • 測試案例執行器
  • 報告產生器(擷取結果與錄影)
  • 模組化方法可提供彈性與擴充性

運用多個 MCP

  • 針對不同測試需求使用各種 MCP:
  • MySQL MCP:產生擬真資料
  • Redis MCP:儲存最近使用的測試案例
  • 簡化測試流程

核心訊息:測試左移

  • 在開發週期早期整合自動化測試
  • 優點:
  • 提升品質
  • 提高效率
  • 降低成本
  • 減少技術債

結論

  • AI 驅動的自動化測試可節省時間與成本
  • 測試人員能專注於驗證,而非產生測試案例