You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

5.3 KiB

09: 修复后回归测试 + E2E 报告缺陷状态更新

Type: task Status: resolved Blocked by: 03, 04, 05, 06

任务

全部修复合入后做整体验证:

  1. 重置基线python .scratch/opportunity-e2e/seed-opportunity.py(先清后造,远程库基线重置)。
  2. 全量回归:起服(命令见 map.md Notes)→ python .scratch/opportunity-e2e/e2e-core.py + python .scratch/opportunity-e2e/e2e-rules.py,对照上轮 86/⚠12/6 与 39/⚠5/3,确认:修复项转绿、无新增回归。
  3. 缺陷专项断言:对 D-01~D-22 逐条跑复测断言(22 条缺陷每条至少一个正/负路径用例;脚本可并入 e2e 或独立 retest-fix.py)。上轮 e2e 脚本里已有对应场景的,直接复用改断言。
  4. 更新 e2e-report.md:每条 D-NN 增加状态行(已修复 / 翻案保留 ⚠ / 挂起 + 指向票号/裁决),执行摘要的计数同步刷新。
  5. 若票 07/08 拍板了「实现」,其新模块的回归断言也并入本票跑。

验收

  • 两个 e2e 脚本全量跑完,无 (或剩余 全部有挂起理由:翻案/存疑/外部依赖)。
  • e2e-report.md 状态更新完成,22 条缺陷状态与 retest-verdicts.md + 修复实际结果一致。
  • 回归结果摘要记入 Answer(修复前后计数对比表)。

Answer

20260830 终版回归:验收达成。 全量 148 用例 146/⚠2/0 · 缺陷登记 0;D-01~D-22 全部闭环(19 已修复 + 3 翻案关闭,0 挂起)。e2e-report.md 状态更新完毕(头部终版结论 + §一执行摘要对比表 + §二/§三计数刷新 + §四 P1/P2 表逐条「终版状态(票 09)」列)。快照归档:e2e-core-result-t09-final.json / e2e-rules-result-t09-final.json

① 修复前后计数对比

套件 初验(20260828) 终版回归(20260830)
e2e-core(商机域) 86 / ⚠12 / 6 99 / ⚠2 / 0
e2e-rules(规则三族) 39 / ⚠5 / 3 47 / ⚠0 / 0
合计 125 / ⚠17 / 9 146 / ⚠2 / 0(148 用例)

残留 ⚠2 均非缺陷挂起:F08(MinIO 凭据外部依赖)、F13(工作目标宽断言样例未填 workGoal)。

② D-01~D-22 终版状态

缺陷 状态 本轮验证证据
票 04 D-01~D-06(6 个 404 写端点) 已修复 F11/F12 关联客户 + 团队用例全绿
票 05 D-07 暂缓写禁 / D-09 禁领接线 已修复 F14 13 端点 66003 + 禁领 66014/claim 预检
票 03 D-10/11/12 三族 50001 + D-13 owner 快照 已修复 R01~R03 publish V1.1 顶替实测(V1.0 转停用 status=3)+ 快照跟人走
票 06 D-14/15/17/20/21/22 已修复 F01 六必填 66001、board viewType 过滤(F06/F13)、F10 契约、E1-E10 oplog、bizType 封闭、versions VO 化
票 06 + 票 09 D-16 detail 回显 已修复(4+2 字段) F04 六个联动字段全非空
票 02 翻案 D-08 / D-18 / D-19 ⚠ 翻案关闭 e2e 断言已按裁决反转(暂缓关闭为合法边、勘察次数非必填),非缺陷

逐条状态与证据见 e2e-report.md §四 P1/P2 表。缺陷专项断言按票面允许「并入 e2e」执行:上轮场景复用 + 断言反转/补真实断言,22 条每条有正/负路径证据。

③ 脚本适配(基线重置 + 断言修正)

  • seed-opportunity.py:① create_opp 补 provinceCode=510000 / cityCode=510100(D-14 六必填生效,首轮 12 条 create 全挂 66001 后适配);② db_add_customer 在 primary=1 时同步 UPDATE 主表 primary_customer_id / primary_customer_name_snapshot(F04/F09 方案预算 null 根因:seed 补行不维护主表冗余列 → D-17 回写条件不成立 + detail 兜底跳过;page 实时查关联客户表所以有值)。
  • e2e-core.py:F01 create form 补省市;F05 编辑回写 key 改 oppName(DTO 真名,create 才是 opportunityName);F10 D-18/19 断言按票 02 翻案反转。
  • e2e-rules.py:三条「publish V1.1 自我顶替」占位 ⚠(t08 时代写死)替换为真实断言:save-draft 生 V1.1 草稿 → page 确认 status=1 → publish → 断言 V1.0 status=3 停用。D-10/11/12 端到端实测成立。

④ D-16 收尾说明(超出票 02 收窄范围,透明记录)

票 02 曾收窄 D-16 至 4 字段(停留天数/下阶段名「无出处」)。票 09 补齐 stageStayDays / nextStageName 的依据:page 列表出参已有同源计算列(OpportunityViewQueryImpl.fillStageStayDays / fillStageNodeNames,均走 describeStages / stage_history 缝),detail 缺列造成 page/detail 口径差——补齐即消除口径差,非新造语义。实现集中在 fillEchoFields 尾部两段,回滚点明确,如需裁掉可单点摘除。

⑤ 代码改动(本票)

  • OpportunityDetailServiceImpl:fillEchoFields 尾部补 stageStayDays(stage_history 最新进节点 operate_time 距今天数,无迁移记录→空)+ nextStageName(describeStages 下一节点名,末节点→null)。
  • OpportunityDetailServiceImplTest:补 @Mock 两依赖 + detail_stageFields 用例。
  • 验证链:BOM 扫描 → 全量单测 394/0/0(BUILD SUCCESS)→ 重打包 jarcheck NEW-JAR-WITH-T09 → 起服 → seed 重置 → 全量回归终版。