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

  1. 1SanityA smoke test on production. If it fails, everything stops.
  2. 2RegressionMore than 2,100 test cases in five parallel lanes, in about 90 minutes.
  3. 3New testsSpecs for areas without coverage, generated while regression runs.
  4. 4TriageEvery failure classified as a test issue, a real bug, a flaky test or a known blocker.
  5. 5ReportA GO or NO-GO verdict, posted to Teams and to the GitHub pull request.
五個階段,約 90 分鐘,一個結論。

幾個改變的例子:

工作人工使用代理程式
一次完整回歸測試的失敗分類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%

  • 16GB

    統一記憶體,120 GB/s

    核心
    10 CPU, 10 GPU
    儲存空間
    可用
    有現貨
  • 最多人選
    24GB

    統一記憶體,120 GB/s

    核心
    10 CPU, 10 GPU
    儲存空間
    可用
    有現貨
  • 32GB

    統一記憶體,120 GB/s

    核心
    10 CPU, 10 GPU
    儲存空間
    可用
    有現貨
Visa Mastercard SEPA 轉帳價格以 EUR 計,如適用,增值稅於結帳時加計。 至少一個月,之後任何一個月都能終止。

下一步