Story
AI QA 代理程式如何在一台 Mac mini 上執行
1,792 個失效的測試、一台 Mac mini,以及一個擁有 24 個工具的代理程式。PerfectApps 的 QA 代理程式如何修復測試、進行失敗分類並簽核發布,以及它為什麼在 Apple silicon 上執行,而不是 Linux VPS。
2026-09-15 更新
PerfectApps 是一個無程式碼應用程式平台。其 QA 團隊負責維護 2,100 多個以 Cypress 和 Selenium 撰寫的自動化測試案例。如今這些工作大多由一個在獨享 Mac mini 上執行的 AI 代理程式啟動、分析和回報。
以下說明它的由來、它做什麼,以及為什麼硬體是刻意選擇的。
起因是 1,792 個失效的測試
一項必要的安全性修正把 Bootstrap 從整個 PerfectApps 程式碼庫中移除。頁面結構在所有地方同時改變,同一天有 1,792 個測試案例失效,橫跨產品的 50 多個區塊。
沒有人詳細估算過手動修復的工作量,因為從來沒有靠人工做過。粗略的判斷是整個團隊四個人放下其他所有工作,最長要做兩個月。
就在那時,代理程式不再只是一個想法。
先修復,再覆蓋,後判斷
修復。代理程式不是逐一修復 1,792 個測試,而是每個根本原因只找一次,再把修正套用到所有受影響的 spec。登入被移到單一個共用指令,因此一處修改就能影響所有測試。
覆蓋。修復奏效後,同樣的方法被用在從未測試過的區塊。測試套件從 1,400 個 spec 檔案增加到 1,955 個。其中包括一個在畫布上繪製的視覺化圖表設計工具,它沒有任何可讓測試點選的元素。解法是不再測試畫布,改為檢查儲存下來的資料:新增 51 個 spec,第一次完整執行就全部通過。
判斷。每次回歸測試後,都得有人逐一查看失敗項目,判斷哪些是測試本身壞了、哪些是真正的錯誤、哪些是雜訊。每次發布這要花三個人共 12 小時。現在這是代理程式的工作。在某次發布中,它檢查了 1,748 筆測試結果,在約 300 個失敗中找出唯一一個真正的產品錯誤。其餘都是遷移遺留的技術債。
代理程式做什麼
代理程式有 24 個工具,並自行決定要呼叫哪些、以什麼順序呼叫。團隊在 Microsoft Teams 或網頁上用一般英文和它溝通。
一次發布執行會經過固定的流程:
One release run
- 1SanityA smoke test on production. If it fails, everything stops.
- 2RegressionMore than 2,100 test cases in five parallel lanes, in about 90 minutes.
- 3New testsSpecs for areas without coverage, generated while regression runs.
- 4TriageEvery failure classified as a test issue, a real bug, a flaky test or a known blocker.
- 5ReportA GO or NO-GO verdict, posted to Teams and to the GitHub pull request.
幾個改變的例子:
| 工作 | 人工 | 使用代理程式 |
|---|---|---|
| 一次完整回歸測試的失敗分類 | 12 小時,3 人 | 幾分鐘 |
| 根據 Jira 工單撰寫新測試 | 每個 2 到 4 小時 | 幾分鐘 |
| 回歸測試後提交附證據的錯誤回報 | 每個 30 到 60 分鐘 | 自動 |
| 簽核一次緊急修正發布 | 半天 | 幾分鐘 |
價值不在於任何單一項目省下多少時間,而在於數週的人工工作已完全不再出現在發布週期中。
為什麼是 Mac mini,而不是 Linux 伺服器
代理程式在一台獨享的 Mac mini 上原生執行。沒有 Docker,沒有 Kubernetes,沒有叢集。它透過 Cloudflare Tunnel 連到外部。
這是與 Linux VPS 比較之後做出的決定:
- 瀏覽器跑得更快。在 Apple silicon 上,Chrome 和 Cypress 的執行速度是 VPS 上的 3 到 5 倍。
- 代理程式直接在真正的儲存庫上工作。它直接讀寫測試檔案,因此產生新的 spec 不需要額外的 API 層。
- 不需要模擬。Mac 有真正的顯示堆疊,因此不必為了開啟瀏覽器而維持一個虛擬顯示伺服器。
- 有空間跑本機模型。Mac 神經網路引擎上的小型模型可以處理路由和簡單分類,較大的雲端模型則留給需要它的推理工作。
VPS 每月會便宜 43 美元。這還抵不上遷移所需的一天工程人力。
如果您正在打造代理程式,這代表什麼
- 給代理程式一台自己的機器。它需要瀏覽器、檔案系統,以及連續執行數小時而不被人登出或重新啟動的自由。
- 從沒人想做的工作開始。瓶頸是失敗分類和測試修復,而不是撰寫新功能。
- 結論由人來下。代理程式負責分類和建議。是否發布由團隊決定。
- 依工作負載挑選硬體。如果您的代理程式要操作瀏覽器或為 Apple 平台建置,Apple silicon 很快就能回本。
PerfectApps QA 代理程式是為內部使用而打造,在 MacDuty 的一台獨享 Mac mini 上執行。
今天有現貨
這些 Mac 現在就在機櫃中。挑一台,看看它包含什麼,下單時再建立帳號即可。
正在查看機櫃
屬於您自己的 Mac mini
選擇配置。如果架上沒有,請留下電子郵件,上架當天我們就寫信通知您。
按年:比按月付款至少便宜 19%
下一步