TRACEABILITY-MATRIX.md 23 KB

CFC 需求 ↔ 用户场景 ↔ 测试用例 双向追踪矩阵

生成:2026-11-10(测试负责人闭环,用户授权「补写缺用例 + 重建双向矩阵」) 单一事实源:场景基线 docs/tdd/orchestration/sc-key-map.md(244 个 SC)· 用例 tests/test-cases/*.md · 需求 docs/需求分析/*.md 与 docs/superpowers/specs/*.md 状态定义:✅ 已派生三流用例 / ⚠️ 场景存在但变更点未派生 / ❌ 未入场景池(需派生,本轮未擅自编号入册) 本文所有数字为编号级实证扫描结果,不引用任何文档自述口径(历史台账存在 678 / 701 / 729 / 767 四套互相矛盾的数字)。

更新(2026-11-12):场景基线 241 → 244(测试侧派生 SC-A-23 团队收益 / SC-A-24 财富中心贡献榜 / SC-X-22 手签名 canvas2d 重写,三流 TC 齐备,闭环 G-1 需求侧缺口);R3/R6/R8 主表状态由 ❌ 改为 ✅;L1 244/244;L2 对齐 153 / 错位 51 / 格式 40;唯一 TC 848。本更新仅改文档与台账,未动生产源码、未提交、未推送(待 Task #7 单独授权后入册)。


0. 口径与层级

「场景是否有用例」必须分三层回答,只报第一层会得出错误结论:

层 判据 数据来源
L1 编号层 每个 SC 是否存在 TC-xxx / -E / -P 三个编号 tests/test-cases/*.md 表首列
L2 语义层 该 TC 的「所属场景」列与步骤/预期是否真在描述这个 SC TC 行正文 vs 应用场景总览.md 场景标题
L3 执行层 三类流是否有实际通过证据且已推远端、工作区干净 sc-key-map.md 跑通状态列 + automation-status.md

0.1 每小时自动化必须维护的 L1/L2/L3 纪律(2026-11-12 补全,单一事实源)

每小时自动化「测试负责人闭环」(task 0f6cf699-7aa0-4315-b7ed-414efa7e06dd)在每轮执行时必须同步维护以下三层,否则矩阵会随 SC 派生 / TC 重排而漂移(2026-11-12 曾因派生 3 个 SC 未及时回写导致 241/244 口径不一致):

  • L1 编号层纪律:每轮重跑 §7 校验脚本,确认「三类流齐全 SC 数 / 总 SC 数」一致;新增 SC(如 2026-11-12 派生 A-23/A-24/X-22)须在 sc-key-map.md 与本文 §2/§4 同步登记,基线计数随之 +N,且 sc-key-map.md 计数行、## 全量登记 标题、本文 §1 三处数字一致。
  • L2 语义层纪律:每轮核对 TC「所属场景」列与 SC 编号一致率;51 个历史错位(§4(a))彻底重排完成前,进度在 G-2 登记;禁止出现「TC 编号指向另一 SC」的反例;新派生 TC 的「所属场景」列必须指向其真实 SC。
  • L3 执行层纪律:跑通状态严格按 sc-key-map.md 计数口径(三类流实际执行证据 + 已 push origin/cfclub + 工作区干净),不可用子串 跑通 匹配(会命中「未跑通」,历史教训 LES-002);状态列变更必须经单独授权后 git 提交推送,不伪造证据、不 mark-green。
  • 变更联动纪律:任何需求变更派生 SC/TC(如 R3/R6/R8→A-23/A-24/X-22),须在 §2 主表回写 SC/TC 并标 ✅,同步更新 G-1 缺口与 §5 反向引用计数。
  • 锚点对账纪律:每轮刷新 §10 双向对账(台账 ↔ 可执行锚点),孤儿锚点按 §10.3 动作收敛,覆盖率数字不得虚高(排除 tests/e2e/api/generated)。

⚠️ 纪律缺口(待补全到自动化提示词):当前自动化可见职责为「全部用例通过 + 覆盖 SRS/场景含异常流 + 浏览器走 admin/frontend + langgraph 派 251 + 结果有变提交远程并通知研发」,未显式包含上述 L1/L2/L3 维护条目。本 §0.1 为权威纪律定义,自动化提示词应显式引用本 §0 与 §7 校验脚本;若提示词未含上述条目,视为纪律缺口,需在自动化配置中补全(提示词文本存于云端自动化配置,不在工作树可读范围,补全需用户在自动化 UI 操作或授权后由 automation_update 写入)。


1. 实测总览(2026-11-10)

项 补写前 补写后 判定
权威 SC 基线 241 244(+3,2026-11-12 测试侧派生) 不变
唯一 TC 编号 827 848(+21:+15 本轮补写 / +6 2026-11-12 派生 SC-A-23·A-24 三流) 正常流 284 / 异常流 251 / 权限流 245 / 非功能 58 / 深挖 10
L1 三流齐全 237/241 244/244(100%) ✅ 4 个纯缺口已补 + 2026-11-12 派生 3 SC 三流齐备;另发现 1 个编号占用冲突已补新编号
L2 编号对齐 150 对齐 / 51 错位 / 40 格式差异 153 对齐 / 51 错位 / 40 格式差异(+3 派生 SC 对齐) ⚠️ 硬缺口,见 §4(51 错位待彻底重排,用户已裁决)
L3 已跑通(DEV_GOAL 严格口径) 15/241(6.2%) 15/244(未变) ❌ 229 个仍无远端证据;详见 §9 与 G-4
本轮真实执行用例 — 42 个:30 passed / 3 failed / 9 skipped 见 docs/tdd/test/execution-evidence-2026-11-10.md
需求侧 SC 回链 11/214(5.1%) 16/214(7.5%) 8 份 11 月变更已补回链附录
需求侧 TC 回链 1/214(0.5%) 6/214(2.8%) 同上

2. 主表:需求变更 → 能力键 → SC → TC

需求侧反向锚点已写入每份需求文档末尾的「附录 · 场景与用例回链」,可双向跳转。

# 需求变更文档(docs/需求分析/) 能力键 关联 SC 关联 TC(正常 / 异常 / 权限) 状态
R1 2026-11-06-成就成长打卡需求变更.md task.history.view SC-P-94 TC-P-94 / -E / -P ✅ 本次补写
R1 同上 growth.history.view SC-P-95 TC-P-95 / -E / -P ✅ 本次补写
R1 同上 sleep.config.tags SC-C-26 TC-C-26 / -E / -P ✅ 本次补写
R1 同上 sleep.config.tags SC-A-27 TC-A-27-S / -S-E / -S-P ✅ 本次补写(编号占用冲突,见 G-2)
R1 同上 achievement.grid.fiveCol SC-P-96 TC-P-96 / -E / -P ✅ 本次补写
R2 2026-11-06-优惠券已领取券按钮修复需求变更.md coupon.claimed.actions / coupon.checkout.autoselect SC-P-57 · SC-P-75 · SC-A-17 TC-P-57* / TC-P-75* / TC-A-17* ⚠️ 双按钮、按券类型跳转、checkout 自动选券三处变更点均无断言
R3 2026-11-06-我的团队收益口径与邀请分享需求变更.md team.referral.earnings.cf / team.invite.share SC-A-23 TC-A-23 / TC-A-23-E / TC-A-23-P ✅ 2026-11-12 测试侧派生三流用例(admin.md SC-A-23 专项)
R4 2026-11-06-报告上传页关联商品卡片需求变更.md report.upload.linked-products / report.upload.member-4col SC-T-11(同页面主题) TC-T-11* 实为「成长计划」,语义错位 ⚠️ 需先裁决编号重排再派生
R5 2026-11-07-商城价格排序需求变更.md shop.price.sort SC-G-05 · SC-C-22 · SC-X-07 TC-G-05* / C-22* / X-07* ⚠️ 排序栏、价格列白名单、body 数组契约均无断言
R6 2026-11-07-财富中心贡献榜管理员口径需求变更.md family.earnings.admin.role / family.earnings.pool.toggle SC-A-24 TC-A-24 / TC-A-24-E / TC-A-24-P ✅ 2026-11-12 测试侧派生三流用例(admin.md SC-A-24 专项)
R7 2026-11-08-手签名横屏适配需求变更.md signature.landscape.layout ❌ 无(SC-G-11 为隐私政策,假阳性) 无 ❌ 未入场景池;v1.0 已被 R8 取代,不单独派生
R8 2026-11-09-手签名实现方式重写需求变更.md signature.canvas2d.rewrite SC-X-22 TC-SIG2D-01~08 / TC-SIG2D-01-E / TC-SIG2D-02-E ✅ 2026-11-12 测试侧派生三流用例(signature.md)

汇总:8 份变更中 R1 完成三流闭环;R3/R6/R8 已于 2026-11-12 由测试侧派生 SC(A-23/A-24/X-22)+ 三流 TC 闭环(G-1 需求侧缺口关闭);R2/R4/R5 有主题相近 SC 但变更点未派生用例(待派生);R7 为已废弃版本。实际待闭环为 3 份(R2/R4/R5)。

⚠️ 纠偏:上一轮「6 份需求变更在场景库中无对应主题」是窄关键词误判。实测 7 份中 5 份能找到主题相近 SC,但其中大部分为语义假阳性(家庭邀请 ≠ 推广收益、隐私政策 ≠ 手签名);真实「未入场景池」为 4 份。结论方向不变,依据更准确。


3. 本次补写的 15 条用例

场景 正常流 异常流(具体故障注入) 权限流(具体越权对象) 落点
SC-P-94 历史完成任务 TC-P-94 TC-P-94-E TC-P-94-P tests/test-cases/parent.md「成就与成长历史专项」
SC-P-95 成长历史记录 TC-P-95 TC-P-95-E TC-P-95-P 同上
SC-P-96 我的成就五列 TC-P-96 TC-P-96-E TC-P-96-P 同上
SC-C-26 睡眠打卡配置驱动 TC-C-26 TC-C-26-E TC-C-26-P tests/test-cases/child.md「睡眠打卡配置驱动专项」
SC-A-27 后台维护睡眠选项 TC-A-27-S TC-A-27-S-E TC-A-27-S-P tests/test-cases/admin.md「睡眠情况选项后台维护专项」

编写原则:异常流为具体故障注入 + 可判定断言(非法分页、单源超时、两源重复 ID、非法 JSON、并发重复提交、配置空列表等),不使用「系统给出明确错误提示而非 500」模板文案;权限流针对具体越权对象(F9 家庭成员 memberId、孩子直调后台 save、非 admin 改配置),不复用「统一 403/401」模板。未在需求或接口参考中明确的接口路径一律标「需核实」,未臆造 API。


4. SC → TC 三层覆盖明细

L1 编号层:244/244 三流齐全 ✅

L2 语义层:150 对齐 / 51 编号错位 / 40 格式差异 ⚠️

(a)51 个编号错位(TC 的「所属场景」列指向另一编号,呈整体偏移,系历史用例编号未随场景重排同步):

角色 数量 明细(SC → 所属场景列)
A 运营 21 SC-A-02→A-1, A-03→A-2, A-04→A-2, A-05→A-2, A-06→A-2, A-07→A-2, A-08→A-3, A-09→A-3, A-10→A-4, A-11→A-4, A-12→A-4, A-13→A-5, A-14→A-6, A-15→A-6, A-16→A-7, A-17→A-16, A-18→A-17, A-19→A-18, A-20→A-19, A-21→A-20, A-22→A-21
P 家长 16 SC-P-03→P-2, P-04→P-2, P-05→P-4, P-06→P-4, P-07→P-5, P-08→P-6, P-09→P-7, P-10→P-8, P-11→P-8, P-12→P-9, P-13→P-10, P-14→P-10, P-15→P-3, P-16→P-10, P-17→P-12, P-18→P-11
C 孩子 5 SC-C-05→C-4, C-06→C-5, C-07→C-6, C-08→C-7, C-09→C-8
T 规划师 9 SC-T-04→T-3, T-05→T-4, T-06→T-4, T-07→T-5, T-08→T-5, T-09→T-6, T-10→T-7, T-11→T-8, T-12→T-8

典型实证:TC-A-17* 三流内容为「团队分润/提现审核(S-cfc-68)」而 SC-A-17 是「优惠券/活动配置管理」;TC-T-11* 为「成长计划列表」而 SC-T-11 是「DAN 报告上传与解析」;TC-X-07* 为「全局统计」而 SC-X-07 是「商城履约闭环」。

(b)40 个「所属场景」列非编号(格式差异,语义对齐需人工核实,不判定为错误):SC-B-01/02/04~07/09~12(10 个,9 列格式)、SC-H-01~07(7 个,9 列格式)、SC-X-01~22(22 个,9 列格式)、SC-A-27(1 个,写的是能力键 S-cfc-68)。

(c)主题词粗筛:143/241 个 SC 的标题核心词未出现在对应三流 TC 正文中。该指标为粗筛线索,不作结论(标题词与用例用词常不同,如「管理端登录」vs 用例写「登录」),需逐份人工核实。

L3 执行层:15/241(6.2%)❌

sc-key-map.md 跑通状态列精确取值:已跑通 15(10 个「2026-11-07 收口」+ 5 个「2026-11-06 O-3 收口」)、未跑通 226。按 DEV_GOAL_user_scenarios.md 判据,「跑通」需三类流实际执行证据 + 推 origin/cfclub + 工作区干净;automation-status.md 亦显示结构化用例仅 14 条通过、638 条待自动化。

2026-11-10 execute 档补充:本轮真实执行 42 个用例(30 passed / 3 failed / 9 skipped),其中 SC-P-94 / SC-P-95 共 6 条三类流断言全部通过,本地执行证据已产生。但因未推远端、工作区不干净,不更新 sc-key-map.md 状态列,L3 仍为 15/241。完整记录见 §9 与 docs/tdd/test/execution-evidence-2026-11-10.md。


5. 需求侧反向引用(双向的另一半)

文档集 份数 SC 回链 TC 回链
docs/需求分析/ 14 9(64.3%) 8(57.1%)
docs/superpowers/specs/ 200 10(5.0%) 1(0.5%)
合计 214 19(8.9%) 9(4.2%)
其中 11 月需求变更 8 9 8

8 份 11 月变更均已追加「附录 · 场景与用例回链」,状态声明覆盖 8/8;其中 6 份能锚定具体 SC 编号、5 份能锚定具体 TC 编号,其余因「未入场景池」如实标为待派生——不硬塞编号制造 100% 回链假象。200 份 specs 未动,仍是最大反向追溯空洞。


6. 缺口清单与闭环标准

ID 缺口 证据 建议动作 通过标准
G-1 需求侧缺口,现余 3 份(R2/R4/R5)变更点未派生用例 §2 R3/R6/R8 已于 2026-11-12 由测试侧派生 SC(A-23/A-24/X-22)+ 三流 TC 闭环;R2/R4/R5 待在既有 SC 派生变更分支用例 每份变更均有 SC 回链 + 三流 TC,且断言覆盖变更点
G-2 51 个编号语义错位 + 1 个编号占用(SC-A-27) §4(a) 用户已裁决彻底重排 51 个历史 TC 编号(按内容归组 + 子编号防重,进行中);本轮初曾用 TC-A-27-S* 绕过 SC-A-27 占用 244 个 SC 的 TC「所属场景」列与 SC 编号一致率 100%
G-3 200 份 specs 几乎无反向追溯 §5 设计文档模板加「关联 SC / TC」必填字段 specs SC 回链率 ≥95%
G-4 226 个 SC 无三类流执行证据 §4 L3 execute 档逐场景补实际通过证据并推远端、接入 CI 241/241 三类流实测通过 + git merge-base --is-ancestor 核验 + 工作区 clean
G-5 权限流模板化(约 21%) 上轮实测:238 条权限流仅 208 种唯一正文 按场景改写为具体越权对象/接口/数据断言(本次新增 5 条已按此规范编写) 权限流唯一正文 ≥95%
G-6 四套台账数字矛盾 SRS.md / README.md / inventory.md / 总览 以本矩阵编号级扫描为单一事实源重生成台账 各台账数值一致且与扫描误差为 0
G-7 睡眠配置与成长档案契约未落地 证据台账 §1 / §4:/api/health/sleep/tags 404、/api/admin/sleep/tags 404、/api/config/public/value 500、/api/growth/record/list 500 确认实现真实路径(疑为 /api/admin/config/*)并补齐读取/维护接口;造跨家庭数据夹具后复核权限口径 4 个 fixme 全部转正常用例并通过;权限契约与 TC-P-94-P / TC-P-95-P 文档断言一致
G-8 回归基线 3 个失败 nonfunc-perf-compat.spec.js:92(并发串数据)、nonfunc-security.spec.js:77 / :131 按证据台账 §4 第 4~6 项修实现或对齐契约 3 条用例通过
G-9 本地执行证据未入册 证据台账 §5:未推 origin/cfclub、未 clean-check 单独授权后执行 git 提交/推送与 mark-green 流程 git merge-base --is-ancestor 核验 + clean-check 0 + SC-P-94/95 状态列更新

7. 校验方法(可复跑)

在 d:/cfc 下执行以下只读脚本,重算 L1 / L2 / 需求回链:

import re, glob, collections
rd = lambda p: open(p, encoding='utf-8', errors='replace').read()
km = set(re.findall(r'\|\s*(SC-[A-Z]+-\d+)\s*\|', rd('docs/tdd/orchestration/sc-key-map.md')))
tc = set()
for f in glob.glob('tests/test-cases/*.md'):
    tc |= set(re.findall(r'^\|\s*(TC-[^\s|]+)\s*\|', rd(f), re.M))
full = sum(1 for s in km if all(k in tc for k in
           (s.replace('SC-','TC-'), s.replace('SC-','TC-')+'-E', s.replace('SC-','TC-')+'-P')))
print(f'L1 三流齐全 {full}/{len(km)} | 唯一 TC {len(tc)}')
req = glob.glob('docs/需求分析/*.md') + glob.glob('docs/superpowers/specs/*.md')
print('SC回链', sum(1 for f in req if re.search(r'\bSC-[A-Z]+-\d+', rd(f))), '/', len(req))
print('TC回链', sum(1 for f in req if re.search(r'\bTC-[A-Z]+-', rd(f))), '/', len(req))

L2 语义层需比对 TC「所属场景」列(归一 SC-?([A-Z]+)-0*(\d+))与 SC 编号;L3 执行层需读 sc-key-map.md 跑通状态列按列索引精确取值——⚠️ 不可用子串 跑通 匹配(会命中「未跑通」,历史教训 LES-002)。


8. 边界声明

  • 本轮只写测试资产与文档(tests/、docs/需求分析/ 附录、docs/tdd/test/ 证据台账),未修改任何生产源码、未提交、未推送、未执行任何 git 写操作。
  • execute 档仅访问内网 192.168.16.251,未访问外部公网;未安装依赖(Playwright 1.63.0 与 chromium 本已就绪);凭据由既有 direct-register 自注册取得,未硬编码、未打印 token/口令/手机号;未重置远程数据库、未写业务数据。
  • 未实测项一律标注,绝不伪造执行证据或远端 sha;fixme / skip 不计为通过。
  • 未在需求/接口参考中明确的接口路径、聚合口径、登录态均标「需核实」,未臆造。
  • 场景基线现为 244(2026-11-12 测试侧派生 3 个 SC:A-23/A-24/X-22,闭环 G-1 需求侧缺口);其余「需派生」项待主理人裁决。

9. execute 档执行证据(2026-11-10)

完整记录:docs/tdd/test/execution-evidence-2026-11-10.md · 新增规格:tests/e2e/api/traceability-p94-p95-c26.spec.js

命令(cd d:/cfc/tests) 结果
npx playwright test e2e/api/api-smoke.spec.js -c playwright.config.api.js --project=desktop 4 passed(链路自检)
npx playwright test e2e/api/traceability-p94-p95-c26.spec.js -c playwright.config.api.js --project=desktop 6 passed / 4 skipped
npx playwright test e2e/api/{api-smoke,nonfunc-security,nonfunc-perf-compat,butler-fallback,human-butler-workorder}.spec.js -c playwright.config.api.js --project=desktop 24 passed / 3 failed / 5 skipped

去重合计 42 个用例:30 passed / 3 failed / 9 skipped。SC-P-94 / SC-P-95 三类流 6 条全部真实通过;SC-C-26 / SC-A-27 / SC-P-96 因配置接口 404/500 与远程无前端 SPA 未实测,登记为 4 个 fixme。因缺「推 origin/cfclub + 工作区干净」两项判据,本轮不更新 sc-key-map.md 跑通状态列(仍 15/241),需单独授权 git 流程后入册(G-9)。


10. R170 锚点双向核对(2026-11-12,实测口径)

目的:回答「用例台账 ↔ 可执行测试资产」是否双向一致。历轮只报单向(台账 TC 有多少被执行锚点覆盖), 导致「执行了但台账没登记」的孤儿锚点长期不可见。本轮首次做双向差集。

扫描范围:cfc-backend/src/test/**/*.java、cfc-frontend/__tests__、cfc-web/src/__tests__、 tests/e2e-live、tests/e2e(排除 tests/e2e/api/generated)、cfc-langgraph/tests;台账 tests/test-cases/*.md。

指标 数值 说明
台账唯一 TC 编号 367 tests/test-cases/*.md 表首列
可执行锚点唯一编号 161 测试源码中出现的 TC-xxx 字面
双向命中 76 台账 ∩ 锚点
孤儿锚点(执行有、台账无) 85 锚点 − 台账 → 追溯断链,见 §10.1
台账无锚点(有编号、无执行) 291 台账 − 锚点,见 §10.2 分组
严格锚点覆盖率 76/367 = 20.7% G9 口径(排除 generated 虚高)
锚点可追溯率 76/161 = 47.2% 新增反向指标 G9-b

10.1 孤儿锚点清单(85 个,按前缀分组)

前缀组 数量 编号 归属
TC-A-U* 6 TC-A-U01 TC-A-U02 TC-A-U03 TC-A-U04 TC-A-U05 TC-A-U06 tests/e2e-live/admin-live.spec.js(管理端 UI 5+1 例)
TC-A5* 5 TC-A5-01 TC-A5-02 TC-A5-03 TC-A5-04 TC-A5-05 后端/前端 UI 五维相关用例
TC-C10* 6 TC-C10-01 TC-C10-02 TC-C10-03 TC-C10-04 TC-C10-05 TC-C10-06 历史编号段(未回填台账)
TC-C16* 5 TC-C16-01 TC-C16-02 TC-C16-03 TC-C16-04 TC-C16-05 历史编号段(未回填台账)
TC-DX-U* 2 TC-DX-U01 TC-DX-U02 tests/e2e-live/dx-health-bridge-auth.spec.js(D/X 桥接 2 例,404 跳过)
TC-F-G* 1 TC-F-G01 tests/e2e-live/frontend-live.spec.js(游客态 1 例)
TC-F-U* 6 TC-F-U01 TC-F-U02 TC-F-U03 TC-F-U04 TC-F-U05 TC-F-U06 tests/e2e-live/frontend-live.spec.js(小程序 H5 6 例)
TC-FA* 7 TC-FA-18 TC-FA-19 TC-FA-20 TC-FA-21 TC-FA-22 TC-FA-23 TC-FA-24 前端签到/家庭相关 Jest
TC-GA-M* 5 TC-GA-M01 TC-GA-M02 TC-GA-M03 TC-GA-M04 TC-GA-M05 成长档案 M 类
TC-GA-P* 5 TC-GA-P01 TC-GA-P02 TC-GA-P03 TC-GA-P04 TC-GA-P05 成长档案 P 类
TC-GRID* 4 TC-GRID-01 TC-GRID-02 TC-GRID-03 TC-GRID-04 五维沙盘 grid 用例
TC-H-U* 9 TC-H-U02 TC-H-U03 TC-H-U04 TC-H-U05 TC-H-U06 TC-H-U07 TC-H-U08 TC-H-U09 TC-H-U10 tests/e2e-live/health-contract.spec.js(健康 9 例)
TC-HP-U* 3 TC-HP-U01 TC-HP-U02 TC-HP-U03 tests/e2e-live/health-contract.spec.js(健康方案 3 例)
TC-LANDSCAPE* 8 TC-LANDSCAPE-01 TC-LANDSCAPE-02 TC-LANDSCAPE-03 TC-LANDSCAPE-04 TC-LANDSCAPE-05 TC-LANDSCAPE-06 TC-LANDSCAPE-07 TC-LANDSCAPE-08 横屏/布局兼容用例
TC-MG-U* 6 TC-MG-U02 TC-MG-U03 TC-MG-U04 TC-MG-U05 TC-MG-U06 TC-MG-U07 cfc-frontend/__tests__/utils/membershipGate.test.js(会员门控 6 例)
TC-S-U* 4 TC-S-U01 TC-S-U02 TC-S-U03 TC-S-U04 tests/e2e-live/shop-sort-api.spec.js(商城排序 4 例)
TC-SIG* 3 TC-SIG-02 TC-SIG-03 TC-SIG-04 电子签名相关用例

根因(P1 治理):可执行资产使用 TC-<域>-U<NN>(UI/用户态) 与 TC-<域>-<语义标签>-<NN> 两套命名, 台账只登记 TC-<域>-<NN> 单套 → 凡走 UI/契约命名的用例全部落不到台账。这不是 85 个孤立缺漏,而是命名规范未双向对齐。

10.2 台账无锚点(291 个)前缀分布

前缀 无锚点数 风险等级
TC-P-* 93 中(平台/后台流程,多为 Web 管理端未自动化)
TC-T-* 39 高(团队/分销域,无执行证据)
TC-X-* 35 中
TC-A-* 33 低(同域 U 系列已在执行,编号体系不同)
TC-C-* 27 中
TC-S-* 17 低(U 系列已覆盖排序契约)
TC-HB-* 16 低(桥接 16 例由契约测试覆盖,编号不同)
TC-B-* 11 中
TC-H-* 6 低
TC-PA-* 6 中
TC-DV-* 4 中
TC-G-* 2 中
TC-SIG2D-* 2 中(二维签名相关,无执行锚点)

10.3 建议动作

  1. (测试侧,本轮可执行) 在台账新增「锚点别名列」,把 §10.1 的 85 个孤儿按语义挂到既有 TC 编号,或为其补 TC-<域>-<NN> 正式编号 → 把锚点覆盖率从 20.7% 抬到 47.2% 量级。
  2. (测试侧) 对 §10.2 的 TC-T-*(39)、TC-X-*(35)补执行锚点,属最高风险空转区。
  3. (研发侧) 新写测试必须带台账编号,CI 增一条「新增 TC- 字面必须能在台账命中」的静态断言(与 B-152 双向差集同源)。