工程開發
writing-good-tests avatar

writing-good-tests

軟體測試編寫與審查指南,專注於整合測試策略、條件式等待與專業 Mocking 模式,協助優化測試品質。

簡介

此技能提供了一套專業軟體測試架構,涵蓋現代開發的最佳實踐。專為需要提升測試套件可靠性並減少測試不穩定性的開發人員、品質保證工程師及技術負責人設計。其核心理念強調測試實際行為而非實作細節,並優先考慮高信賴度的整合測試。使用者可以學習處理常見測試挑戰的結構化方法,包括競爭條件的緩解與外部依賴管理。

  • 根據 Kent C. Dodds 的行為導向驗證原則,編寫能抵抗重構破壞的耐久性測試。

  • 採用標準化的 Arrange-Act-Assert (AAA) 或 Given-When-Then 模式以確保測試的清晰度與可維護性。

  • 實作強健的條件式輪詢功能以取代不可靠的隨機超時等待,有效消除非同步程式碼中的不穩定因素。

  • 進階 Mocking 策略,包括「不要 Mock 你未擁有的程式碼」原則,並區分受控與非受控依賴以優化測試設計。

  • 清晰識別測試反模式,例如測試 Mock 本身的存在、不完整的 Mock 結構,以及在生產程式碼中加入測試專用方法。

  • 適用於程式碼審查 (Pull Request) 或測試架構設計階段。

  • 請使用提供的 waitFor 工具函式處理非同步事件或狀態變更,而非使用寫死的 sleep 計時器。

  • 在決定 Mock 策略前,務必評估依賴項是「受控」(內部資料庫/檔案系統)還是「非受控」(外部 API/服務)。

  • 優先採取整合測試以在開發生命週期中獲得最佳的信心與成本比例。

  • 對照測試反模式清單進行審核,確保驗證的是真實的軟體行為,而非測試基礎設施的內部細節。

倉庫統計

Star 數
178
Fork 數
23
Open Issue 數
1
主要語言
Python
預設分支
main
同步狀態
閒置
最近同步時間
2026年5月1日 上午08:22
在 GitHub 查看