測試審計 是做什麼的?
此技能有兩種模式:
- 創作。 下方的創作閘門適用於您新增或變更的每一項測試。
- 審計。 以連貫的批次移除低價值的驗證,並按生產擁有者分組。切勿追求刪除數量;目標是讓每個合約在測試套件中有一個強健的擁有者,而非單純的數字減少。
若要發起一次清理整個子系統測試面的活動,請先閱讀 CAMPAIGN.md。
創作閘門
在新增測試之前,請回答以下四個問題:
- 它保護了哪些可觀察的行為、不變量或獨立合約?
- 哪種可信的回歸會導致它失敗?
- 為什麼現有的驗證未能涵蓋它?每個合約應該在最強的邊界上有一個主要擁有者。位於另一層的測試需要一個不同的傳輸或生命週期風險來證明其合理性。擴展現有的表格和共享的固定裝置,而不是添加近乎副本的內容,並合併重複的設定。
- 它是否需要一個沒有生產程式碼呼叫者的匯出、旗標、包裝器或注入掛鉤?如果是,請將驗證移至真實的邊界。
輔助規則:
- 使用邊界與成本指南來決定測試的位置及其允許的成本。
- 回歸測試必須在修復前因預期原因失敗,並在修復後通過。如果您無法顯示修復前的失敗,請在報告中說明。
- 在擁有邊界上的一個回歸測試即可涵蓋一個錯誤。切勿在錯誤跨越的每一層上重複執行。
- 保留行為的重構不應破壞測試。
垃圾模式
- 拒絕自我比較、複製的清單、原始碼搜尋、實作或呼叫形狀的斷言、重複的合約、僅用於測試的接縫、由被測主體產生的預期值,以及提供被斷言行為的模擬。
- 固定裝置不得偽造應由擁有者產生的收據或排序,也不得聲稱透過程式碼從未寫入的路徑具有持久性。
- 負控制必須在預期的防護點失敗,且測試的名稱必須與其實際執行的行為相符。
- 在審計候選項時,請使用完整檢查清單。
保留標準
- 保留保護獨立合約的測試:公開 API、SDK、協定、設定、遷移、儲存、安全性、平台、預設值、提示字節、產生的跨語言輸出、打包、發布、架構以及可觀察的排序。靜態或緩慢並不能使測試變得可丟棄。
- 僅當源碼檢查能夠經受僅限標識符的重構且保護獨立的用戶面向合約時,才允許使用。
- 失敗的基線測試可能是需要修復的產品錯誤,而非需要刪除的測試。
審計與驗證
- 在進行任何審計編輯之前,請閱讀候選證據與工作流程。檢查完整的擁有者、呼叫者與歷史記錄,並在刪除任何內容前記錄保留的驗證。
- 將過時的生產接縫與其測試一起刪除。切勿為了刪除數量而最佳化。
- 測試執行進行時,請勿編輯檢出內容。執行專案中針對擁有者及其同級測試的聚焦測試命令,執行專案的已變更檔案檢查,然後在提交前取得審查。
- 報告原因、保留的合約、驗證及其成本、生產程式碼與測試程式碼的行數變更,以及後續行動。僅在任務授予您該權限時,才進行提交、推送或合併。