介紹 agent-qa:具備執行記憶的開源代理式 QA 框架
傳統的自動化品質保證(QA)方法通常涉及一個脆弱的循環:編寫僵硬的腳本、處理易碎的選取器,並花費無數時間修復因 UI 元素僅移動幾個像素而失效的測試。隨著應用程式變得越來越複雜,這些測試的維護成本往往超過其價值。
agent-qa 由 Vostride 提出,旨在透過引入代理式測試方法來解決此問題。結合自然語言測試定義與先進的執行記憶系統,它將 QA 從靜態腳本練習轉變為隨產品一起演進的動態自我修復流程。
自然語言測試編寫
agent-qa 的核心是能以人類語言定義測試。開發者不必編寫複雜的 Playwright 或 Selenium 腳本,而是可以使用純英文的 YAML 來撰寫測試。例如,驗證 Linear 中建立議題的測試可能如下所示:
- 點擊「Create issue」圖示。
- 驗證「Create issue」彈出視窗已顯示。
- 在「Issue title」輸入欄位中輸入「Fix mobile login」。
- 從 Team 選取器中選擇「Engineering」。
- 點擊「Create issue」按鈕。
由於代理是根據可見的角色、標籤與當前螢幕狀態運作,它能動態解讀這些指令。這抽象化了對硬編碼 CSS 選取器或 XPath 的需求,使測試對細微 UI 變更具有更高的韌性。
執行記憶的威力
agent-qa 最具創新性的功能之一是其 Execution Memory。大多數 AI 驅動的測試工具將每次執行視為全新白板,迫使代理每次都重新發掘導覽模型與 UI 模式。相較之下,agent-qa 會從產品、測試套件與測試觀察中建立知識庫。
記憶運作方式
當代理執行測試時,它會整理「合約」與觀察。例如,它可能學到「在 Docs 與 Projects 之間切換後,側邊欄群組仍保持可見。」這些記憶會被注入未來的執行,使代理能夠:
- 避免冗餘: 跳過重新發掘如何在工作區導航的過程。
- 提升準確性: 使用已確認的模式(例如,知道指令面板需要精確的標題搜尋)以避免常見陷阱。
- 減少失敗: 辨識某些元素(如頁面工具列)僅在特定操作後才會出現,防止代理將隱藏元素標記為失敗。
自我修復與效能最佳化
為了對抗困擾自動化測試的「不穩定性」,agent-qa 實作了 Self-Healing Execution。若子動作(例如點擊或填寫)失敗,代理不會立即使測試失敗,而是重新觀察 UI,並嘗試在同一次執行中找到替代路徑以達成相同目標。
為確保這些代理功能不會導致過高的延遲或成本,平台加入了 Smart Cache。透過在相似的後續執行中重複使用已驗證的行動計畫,agent-qa 能減少規劃工作與 token 使用量,據稱可將執行速度提升至最高 5 倍(例如,將 42 秒的執行縮短至 8 秒)。
以開發者為中心的基礎建設
儘管由大型語言模型(LLM)驅動,agent-qa 仍設計為能融入專業軟體開發生命週期(SDLC):
- 版本控制: 測試、設定與掛鉤皆以程式碼形式儲存,允許透過 Pull Request 進行差異比較與審查。
- 沙箱掛鉤: 使用者可在隔離的 Docker 容器中執行 Node、Bun、Python 或 Bash 掛鉤,以播種測試資料、呼叫 API 或清除狀態。
- LLM 無關: 系統支援多種提供者,包括 OpenAI、Anthropic、Gemini,以及透過 Ollama 或 LM Studio 的本地模型。
- 機器可讀: 透過 MCP(Model Context Protocol)與特定技能,其他程式碼代理可自動發現結構並分流失敗。
結論
透過將焦點從 如何 與 UI 互動轉移到 想要的結果,agent-qa 降低了維護完整測試套件的摩擦。雖然目前的重點仍偏向前端與行動裝置互動,但執行記憶與自我修復機制的結合為更具韌性、自治的品質保證提供了藍圖。