CODEX / 20H ACADEMY
單元 05 / 12
UNIT 05 · 120 MINUTES

測試、Diff 與 Code Review

學習目標:為任務選適合的驗證方式;理解 Codex 報告的測試結果;用 review 找到實際缺陷,再自行核對 diff。

技能:測試設計、diff 閱讀、審查判斷交付:驗證證據 + review 結果

120 分鐘安排

10 分測試基線
20 分從條件到測試
20 分理解 test scope
35 分Review 案例
25 分審查自己 diff
10 分交付檢查
本單元計時00:00:00
VALIDATION PYRAMID

驗證不只是一個「有跑測試」

邏輯測試

快速測單一函式、輸入邊界、狀態轉換。

整合測試

確認元件、資料庫、API 或多模組介面能一起工作。

端到端檢查

從使用者可見入口走完最重要的一條流程。

依修改的風險和範圍選擇適當層級。小型純函式可能只需單元測試;跨 API 和 UI 的功能通常要多一層整合或手動流程驗收。

讀測試結果要問:跑了哪條命令?測了哪些檔案或案例?是否有跳過、失敗、環境錯誤?是否有新測試真正覆蓋本次條件?
CASE / DISCOUNT BUG

案例:優惠碼讓結帳總價多折一次

更改結帳頁後,有優惠碼的購物車金額不正確。Codex 表示「測試通過」,但只執行了 UI lint,折扣計算測試沒有被執行。

Lint(靜態規範檢查)和功能測試回答不同問題;不能互相取代。

驗收矩陣範例

沒有優惠碼

總價 = 商品小計 + 運費 + 稅。

有效百分比折扣

只折商品金額;確認 rounding 規則。

折扣大於小計

總價是否應降到 0,而非負數?

無效 / 過期折扣

保留原金額並呈現明確訊息。

CODE REVIEW WORKBENCH

審查時分清「發現」和「偏好」

  1. 缺陷可以由變更和程式路徑推導。
  2. 指出觸發條件及使用者 / 資料影響。
  3. 標示檔案和行號,且行號落在相關變更。
  4. 優先找 bug、安全、資料一致性和漏掉的測試;個人風格移交 lint。
LAB / 25 MIN

你的 diff 審查實驗

  1. 拿目前 repo 的一份小 diff,或在練習任務新增一個有條件分支的函式。
  2. 請 Codex 先列本次修改的行為和驗收條件,再提議需要跑的測試。
  3. 在 Codex 完成後,用 /review 針對未提交變更檢查。
  4. 對每個 review finding 打開相關程式碼,確認資料流、觸發條件和實際影響。
  5. 請 Codex 修一項你確認的問題,再重跑相關測試和 review。
情境題:程式測試通過,UI lint 也通過,但 Codex 沒跑折扣計算測試,能否宣稱優惠功能已完整驗證?