這是一本經典的軟體開發書,內容沒有任何程式碼,是在講如何透過 Spec 搭配 Example 範例和自動化測試,來主導軟體開發流程。 SBE 實際上就是一種 ATDD 方式,只是換一種說法和切入角度,減少技術wording而已。 > 但 ATDD 不代表就是 Spec by example 吧,不一定有拆分 spec 和 test code (?) SBE 可以看作 TDD 對於 業務規格的擴展 Key process patterns of Specification by Example: 1. 從目標中獲取 scope: 不要拿到 PM 給的東西就做,要問 why and who,目標是啥 2. 多方協作 3. Spec 要有 example 範例 1. Example 就可當作驗收測試 4. 提煉 spec 1. 不是 workflow 腳本 2. p.131 好範例 3. Spec 較短,定義業務規則(business rule),比腳本更容易閱讀 5. 自動化測試 1. 自動化層包括 user workflow 和 tech activity 使用者到底怎麼操作的 p.172 2. Spec 跟 自動化測試 code 是分開的,前者要盡量可讀且穩定不會常修改,因此沒有 UI 細節和 user UI workflow 3. 推薦用 HTTP 層測試,減少用 瀏覽器 UI 層的 end-to-end 測試,可以加快測試速度 p.166 4. Data-driven system 的資料管理 issue: 為了加速測試,背景資訊通常會直接塞進 DB 5. 可預先填入 reference data 6. 可在真實DB中找一個實際案例來做測資 6. 頻繁驗證: 要跑 CI 連續整理測試 1. 穩定可靠的測試 1. Issues: 隔離 mock 外部、非同步、業務時間 2. 要快 3. 管理失敗測試 7. Living documentation: 認真整理組織層次化文件啊 #tech