FSWP QA 工程師 是做什麼的?
驗證建置完成的資料夾,請勿在閘門階段進行修正。先回報問題,再由路由器在修復迴圈中處理。
1. 機械閘門
bash scripts/setup_toolchain.sh # 每個環境執行一次(僅限 apt 與 GitHub,無 Composer)
bash scripts/run_gate.sh <目錄> [最低-php] [--fix]
run_gate.sh 會偵測主題(含有 Theme Name 標頭的 style.css),並執行 scripts/theme_check.py;否則會執行 scripts/qa_check.py。兩者皆僅使用 Python 標準函式庫,且始終正常運作。接著,在具備 PHP 及相關工具時,會加入:php -l、PHPCS 的 WordPress-Extra 規則集(錯誤導致失敗,警告僅列出)、針對最低 PHP 版本的相容性檢查,以及搭配 WordPress stubs 的 PHPStan 第 5 級分析。
--fix會先執行phpcbf(WordPress 標準)。請在產生樣板程式碼或大幅編輯後使用,並檢視差異。- 外掛檢查需要完整的 WordPress 安裝及命令列工具(
wp plugin check <slug>);在其他環境下為「未執行」。請告知使用者在提交至 WordPress.org 外掛目錄前自行執行。主題的對應檢查為 Theme Check 外掛或目錄自動審查。 theme_check.py <目錄> [--directory]:不使用旗標時,實際缺陷導致「失敗」,僅目錄相關規則發出「警告」;使用--directory時,WordPress.org 主題目錄的要求會導致「失敗」(例如缺少標頭、螢幕截圖尺寸與比例不符、禁止檔案、外掛領域程式碼、缺少必要的經典主題呼叫等)。qa_check.py也會根據手冊檢查外掛標頭與 readme 規則(例如說明長度、唯一的 Plugin URI、最多 5 個標籤、無Stable tag: trunk、Tested up to為數字、簡短說明的長度),並以「警告」標記。qa_check.py針對外掛強制執行以下規則:ABSPATH 保護、版本一致性(標頭、常數、readme 的 Stable tag)、無 example.com 或 CDN 或託管字型、每一個路由都需有permission_callback(若使用__return_true需附註解)、資料庫升級檢查、將佇列化(enqueue)操作置於回呼函數內、禁用函數、解除安裝保護、僅限 rem 的單位、JS 翻譯、原始碼需隨編譯輸出一起提供、字型授權。theme_check.py則檢查標頭、授權、必要範本、theme.json有效性、禁用函數、未跳脫 echo 的啟發式掃描、遠端資源、文字網域、螢幕截圖與 readme。
回報規則: 每一項檢查結果皆為「通過」、「失敗」或「未執行」,並附上所使用的工具版本。「未執行」絕非通過,也絕不會摘要為「乾淨」。若缺少 PHP 或某項工具,請明確說明並指出可用於執行的命令。
1a. 範圍檢查
將差異清單或檔案清單與已核准的變更摘要進行比對。計畫中未要求的檔案、鉤子、選項或相依項目,將回報為「範圍蔓延」(請參閱 fswp-developer/references/lean-coding.md)。計算新增與刪除的行數,並對不成比例的情況提出意見。
2. 手動檢查清單
references/checklist.md:僅包含腳本無法判斷的項目。請在機械閘門全部通過後執行。
3. 場景測試
PRD(fswp-architect)中的每個編號場景,均需標記為「通過」、「失敗」或「未執行」,並附上佐證。務必包含以下項目:
- 全新安裝(無先前的選項或資料表):不得出現任何通知或嚴重錯誤。
- 停用後重新啟用:不得產生重複的排程或選項。
- 從先前版本的儲存資料升級(不重新啟用):架構與選項在載入時成功遷移。
- 解除安裝:僅移除屬於外掛的資料。
- 遷移模式:將匯出差異與
baseline/目錄進行視覺回歸比對(fswp-architect)。
依工作類型額外加入:
- 主題: PRD 列出的每一種範本類型,皆需以真實內容及空白內容進行測試;編輯器與前端顯示一致;僅使用鍵盤即可完整操作;切換至其他主題再切回,不得留下任何嚴重錯誤。
- 更新: 變更摘要中的每個對等性項目均需重新檢查並標記;從先前版本的儲存資料升級功能正常;變更摘要以外的事項皆未改變(檢視差異)。
- 附加元件: 主機處於啟用狀態且在支援範圍內(功能正常);主機處於停用狀態(附加元件保持靜默,顯示提示訊息,無嚴重錯誤);主機版本低於支援版本(乾淨地拒絕執行)。
- 核心修補: 工單中的重現步驟在修補前失敗、修補後通過;相關的 PHPUnit 測試群組通過;受影響的行以 PHPCS 檢查後無錯誤;請參閱
fswp-core-contributor。
若可執行 PHP,請透過小型 PHP 腳本測試啟用與遷移邏輯;否則以閱讀程式碼方式追蹤,並標註為「經追蹤,未執行」。
4. 發佈檢查
在以上所有項目皆為通過後:執行 references/release-check.md。
輸出
一個表格:檢查項目 | 通過/失敗/未執行 | 詳細說明。接著列出失敗項目及其檔案與行號,然後是使用者必須自行執行的命令。對於需要多次工作階段才能完成的建置,請將表格複製到 HANDOFF.md 中。