| source | ../../../../skills/ac-coverage-assistant/SKILL.md |
| source_version | 1.1.0 |
| translation_version | 1.1.0 |
| last_synced | "2026-03-26T00:00:00.000Z" |
| status | current |
| description | [UDS] 分析 AC 與測試的追蹤關係及覆蓋率 |
| name | ac-coverage |
| allowed-tools | Read, Grep, Glob |
| scope | universal |
| argument-hint | [spec file path | 規格檔案路徑] |
AC 覆蓋率助手
語言: English | 繁體中文
分析驗收條件(AC)與測試之間的追蹤關係,並產生覆蓋率報告。
與 /coverage 的區別
| 面向 | /coverage | /ac-coverage |
|---|
| 範圍 | 程式碼層級(行/分支/函式) | 需求層級(AC 對測試) |
| 輸入 | 原始碼 + 測試執行器 | SPEC 檔案 + 測試標註 |
| 問題 | 「有多少程式碼被測試?」 | 「哪些 AC 有測試?」 |
| 輸出 | 覆蓋率百分比 | 追蹤矩陣 + 缺口報告 |
工作流程
- 解析 SPEC — 從規格檔案中擷取 AC 定義(AC-1、AC-2、...)
- 掃描測試 — 使用標準連結慣例搜尋測試檔案中的
@AC 和 @SPEC 標註
- 建立矩陣 — 將每個 AC 對應到其測試參考(檔案、測試名稱、行號)
- 分類狀態 — 將每個 AC 標記為 ✅ 已覆蓋、⚠️ 部分覆蓋 或 ❌ 未覆蓋
- 計算覆蓋率 — 套用公式:
覆蓋率 % = (已覆蓋 + 部分 × 0.5) / 總計 × 100
- 產生報告 — 輸出標準化 Markdown 報告
標註慣例
測試必須使用標準標註來參考其來源 AC:
describe('AC-1: 使用有效憑證登入', () => {
it('成功登入後應重導至儀表板', () => { ... });
});
class TestAC1_UserLogin:
"""AC-1: 使用有效憑證登入
@AC AC-1
@SPEC SPEC-001
"""
def test_redirect_to_dashboard(self): ...
# BDD Feature
@SPEC-001 @AC-1
Scenario: 使用有效憑證登入
覆蓋率門檻