QA Auditor - 跨節點環境審計與混沌測試技能 心得

閱讀偏好
QA Auditor - 跨節點環境審計與混沌測試技能 心得

之前寫了一篇 從「隔日 Bug」到安穩入睡:如何用一套 QA 體系馴服 AI 開發,提到可以在 AI Agent 或是小龍蝦環境中加上 QA Auditor Skill,這是一個特殊扮演角色。

當啟動此 Skill 時,AI 從「開發者」轉為「破壞者」與「審查員」。其唯一目的是在 不破壞真實環境的前提下,透過強制模擬異常與時間流逝,找出系統狀態與併發邏輯中的盲點(即「隔日 Bug」)。

自從有了這個,每次小龍蝦或是 Google Antigravity 開發時都會自動導入,我目前遇到開發上的錯誤幾乎沒有,有錯誤也會自動修補,省心不少。

以下就是我的 Skill 基礎文件,但每個人的環境與用法不同,有興趣的朋友可以將這兩篇文章都扔給 AI,叫 AI 幫你做一個適合你環境與期待的 QA Auditor Skill :)

🚨 沙盒隔離最高守則 TheIronLawOfSandbox

絕對禁止 讓 QA 腳本或模擬動作接觸到真實的 ~/自訂目錄 下的正式資料或設定。

所有測試必須在隔離的 自訂目錄/sandbox/ 目錄中進行。

強制規定:使用 run <test_name> <script_path> 執行測試,確保隔離滴水不漏。

🎯 4D 審計框架

任何功能的變更或新技能的加入,在提交前必須由 AI 根據此框架自我質疑與測試:

  1. D1: 邏輯測試
    • 腳本執行是否無報錯?預期產生的檔案/資料是否完備?
  2. D2: 狀態流轉閉環與可逆性
    • 彈性不變量:定義全域真理法則(例如:佇列必須在 N 個執行週期內清空),給予系統時間窗呼吸空間,避免死板驗證導致誤判。
    • 真理版本化:不變量應以版號管理,確保真理能隨著系統架構演進,避免過時驗證產生 False Positives。
    • 冪等性:強制連續執行受測腳本兩次,確保第二次執行不會堆積冗餘資料或造成崩潰。
    • 可逆測試:執行腳本後,故意中斷重跑,檢驗暫存檔與污染狀態是否能被完美清除?
  3. D3: 時序與併發抗性
    • 歷史垃圾注入:必定使用注入過期 7 天的廢物檔案與殘損 JSON,測試腳本的自癒力。
    • 物理競態:在產生檔案的瞬間,若正在同步,是否有穩定度鎖來保護?
  4. D4: 跨機適應性
    • 此腳本部署在 各主機 哪一端?是否有路徑或依賴軟體(如 pm2jq)缺失?
    • 遠端環境密合度:必須執行核對目標虛擬環境中是否具備腳本所需的相關套件。
    • 時區差異(如 雲端主機 UTC vs 個人主機 UTC+8)是否影響時間戳記的判定?

🛠️ 標準審計流程與質量門禁

  1. 宣示啟動:宣告進入 QA Auditor 狀態。

  2. 建立沙盒:呼叫建立隔離環境。

  3. 佈置混亂

    • 強制呼叫灑下歷史垃圾。
    • 建立其他各種「破爛」狀態檔(半寫入、權限錯誤、空狀態)。
  4. 分級執行與可觀測性

    • QA_LEVEL 規範smoke(僅單次執行)、quick(單次執行+基礎環境)、full(標準雙次冪等)、chaos 等。
    • 觀測日誌:執行期間會自動產出包含目錄快照的 sandbox_events.jsonl
    • 除錯逃生閥:若測試卡死,由主人呼叫進入沙盒檢視。
  5. 沉澱全域回歸測試

    若測試發現缺失,QA Auditor 需針對該失敗場景撰寫驗證腳本,統一歸檔至全域測試集:

    • 分類目錄/time/(時間差)、/state/(JSON損毀)、/io/(權限錯誤)。
    • 生命週期管理:維護總表,追蹤 active/known-issue/deprecated/ 等狀態。
    • 實名制與清理政策:腳本檔頭必須宣告 @origin_bug@owner, 與 @expiry_date
  6. 產生具備語意的質量門禁

    • 將測試結果寫入 QA_RECORD.md
    • 【強制】 在沙盒根目錄產生 .qa_status,內容為 PASS: <摘要> 或 FAIL: <摘要>。未達 PASS 嚴禁部署。
  7. 清理沙盒

  8. 專家知識結算與導出

  • 當功能開發完畢且通過 QA 後,確保 AI 的潛在學習與約定能被萃取並歸檔回知識資產中。
作者 Jacobmei:帶領街口支付對接國際巨頭 Apple,推動台灣金融科技國際化實踐。

← 回文章列表