測試策略
從基礎原理到實務判斷,系統化理解測試策略。
QUALITY · 18 ARTICLES
從基礎原理到實務判斷,系統化理解測試與程式碼品質。
主題地圖
從基礎原理到實務判斷,系統化理解測試策略。
從基礎原理到實務判斷,系統化理解TDD 與測試替身。
從基礎原理到實務判斷,系統化理解程式碼壞味道。
從基礎原理到實務判斷,系統化理解重構。
從這裡開始
從基礎通往下一步的導讀。
進行 iOS 開發時,常常會想著「該寫點測試程式碼了……」,卻一直拖延。實際開啟 XCTest 後,又不知道該從哪裡開始。
閱讀文章義大利麵程式碼指的不是長度或髒亂,而是控制流程。本文從 Dijkstra 1968 年反對 goto 的信開始,整理 goto 消失後義大利麵仍然存在的原因,以及如何用循環複雜度衡量。
閱讀文章所有文章
散彈式修改是指一項變更分散在多個檔案中的異味,而發散式變更則是其鏡像:同一檔案因多種原因而變更。本文整理如何透過提交紀錄實測並區分這兩種處方完全相反的異味。
閱讀文章上帝物件是不斷吸收周邊責任與資料而膨脹的類別,也是團隊中最常修改、最常衝突的檔案。本文整理辨識膨脹的訊號、拆解順序,以及拆分失敗的兩種方式。
閱讀文章函式全都只有五行、各自也只有一項職責,卻沒人能回答按下按鈕後會發生什麼事,這就是 Ravioli 程式碼。本文整理過度拆分的原因、跳轉次數所反映的成本,以及找回流程的方法。
閱讀文章即使整齊地分層,新增一個欄位仍需修改七個檔案的程式碼,就是千層麵程式碼。本文整理層數增加的原因、成本產生的位置,以及何時需要保留或移除分層。
閱讀文章測試計畫以 .xctestplan 檔案管理要執行的測試與條件,並整理僅靠 Scheme 設定不足的原因、目標選擇、組態拆分、涵蓋率、執行順序、重複設定及 xcodebuild 整合。
閱讀文章Swift 5.5 以上可將測試函式宣告為 async,使用 await 等待結果後驗證。本文也整理錯誤驗證、舊式回呼 API 測試,以及仍須使用 expectation 的情況。
閱讀文章