Files
Yb-QaAutomationHub/output/apply_review_fixes2.py
T
xst 8c61209dd4 test(物流公司管理需求): 需求文档与 QE Fleet 全流程设计产物入库
- 需求 v1.1 + 2026-09-29 需求方确认的 Q7~Q19 决议(含 BR-07/BR-09/6.7/6.9 矛盾表述修订)
- 测试点 159 个、测试用例 164 条(P0 55/P1 81/P2 23/P3 5),需求→测试点→用例三级追溯覆盖率 100%
- 质量裁决 PASS(首轮 PASS_WITH_FIX,13 项待确认确认后复裁决升级);评审原始 2 阻断项+9 建议项+3 优化项已全部修复
- 确认单:与 4 个历史需求均为并行关系、0 冲突、0 回写
- 附导出 v1/v2 版本快照、Playwright/Appium 脚本骨架、覆盖率审计脚本与指标、评审修复脚本
2026-09-29 10:03:35 +08:00

78 lines
3.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""第二批修复:O-001(余 2 处笔误)、O-002(泛化尾述收敛)、O-003(数据引用对齐)。"""
from __future__ import annotations
import sys
from pathlib import Path
REPO = Path(__file__).resolve().parent.parent
sys.stdout.reconfigure(encoding="utf-8")
CASES = REPO / "output" / "test_cases" / "物流公司管理需求_测试用例.md"
FIXES: list[tuple[str, str, str, str]] = [
# O-001 余项
("PLT_BSC_LC_019", "预期结果",
"1. 不传许可证时提单成功(核心边界口径,不得误判为必传)",
"1. 不传许可证时提交成功(核心边界口径,不得误判为必传)"),
("PLT_BSC_LC_066", "测试数据",
"生效=T-0、过期=T+365",
"生效时间=T、过期时间=T+365"),
# O-002 泛化尾述收敛
("PLT_BSC_LC_012", "预期结果",
"3. 空态下分页组件收敛(不显示明细分页)、导出按钮行为符合平台口径",
"3. 空态下分页组件收敛(不显示明细分页)、导出按钮不可点 或 给出无数据提示(记录实际行为)"),
("PLT_BSC_LC_041", "预期结果",
"4. 控制台无未捕获异常,页面功能正常",
"4. 控制台无未捕获异常;列表查询/重置/导出等页面功能可正常执行(无因注入样本导致的渲染或请求异常)"),
("PLT_TMS_LC_011", "预期结果",
"3. 恢复后搜索、分页、单选功能正常",
"3. 恢复后搜索可命中、分页可翻页、单选可勾选并回填(三功能逐一验证)"),
("PLT_TMS_LC_074", "预期结果",
"3. \"无外协公司\"选项下记录可正常操作,展示列为\"无外协公司\"",
"3. \"无外协公司\"选项下记录可执行打款/驳回,状态流转与未筛选时一致,展示列为\"无外协公司\""),
# O-003 数据引用对齐
("PLT_TMS_LC_005", "测试数据",
"BLK-03(名称/代码关键词、无结果关键词 ZZZ不存在);WT-08",
"LC-07(名称部分字符\"测试庚\"、信用代码前缀 91532301);无结果关键词 ZZZ不存在;WT-08"),
("PLT_BSC_LC_040", "测试数据",
"UQ-10(1 秒连点 2 次);REQ-011;项目画像 §8.2",
"UQ-10(1 秒连点 3 次);REQ-011;项目画像 §8.2"),
]
FIX_MAP = {
"PLT_BSC_LC_019": "O-001", "PLT_BSC_LC_066": "O-001",
"PLT_BSC_LC_012": "O-002", "PLT_BSC_LC_041": "O-002",
"PLT_TMS_LC_011": "O-002", "PLT_TMS_LC_074": "O-002",
"PLT_TMS_LC_005": "O-003", "PLT_BSC_LC_040": "O-003",
}
lines = CASES.read_text(encoding="utf-8").splitlines(keepends=True)
line_of: dict[str, int] = {}
for i, line in enumerate(lines):
if line.startswith("| PLT_"):
line_of[line.split("|")[1].strip()] = i
for case_id, col, old, new in FIXES:
li = line_of[case_id]
line = lines[li]
cnt = line.count(old)
if cnt != 1:
raise SystemExit(f"❌ {case_id} [{col}] 命中 {cnt} 次(期望 1):{old[:50]!r}")
lines[li] = line.replace(old, new)
print(f"✅ {case_id} [{col}] 已修复")
for case_id, fix_id in FIX_MAP.items():
li = line_of[case_id]
line = lines[li]
tag = f";[AI修正: 评审修复 {fix_id}]"
if tag in line:
continue
idx = line.rstrip().rfind(" |")
if idx < 0:
raise SystemExit(f"❌ {case_id} 备注列尾部结构异常")
lines[li] = line[:idx] + tag + line[idx:]
print(f"✅ {case_id} 补标注 [AI修正: 评审修复 {fix_id}]")
CASES.write_text("".join(lines), encoding="utf-8")
print(f"\n完成:{len(FIXES)} 处修复 + {len(FIX_MAP)} 处标注 -> {CASES}")