From a1f1c258eaa3f844dc2f9c85ca8c38b8d8b0117e Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Fri, 6 Nov 2026 05:42:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E8=AE=B0(QA=20harness=E7=BC=BA?= =?UTF-8?q?=E9=99=B7=E6=94=B6=E5=8F=A3=C2=B7P0=E6=9D=A1=E7=9B=AE+=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E8=90=BD=E6=A1=A3):=20=E6=96=B0=E7=AB=8B=E3=80=8CQA?= =?UTF-8?q?=20harness=20=E4=B8=89=E6=89=B9=E7=BC=BA=E9=99=B7=E4=B8=8E?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E9=81=97=E6=BC=8F=E6=94=B6=E5=8F=A3=E3=80=8D?= =?UTF-8?q?P0=E6=9D=A1=E7=9B=AE(=E5=AE=9E=E5=86=B5=3Dreports=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E6=8C=87=E9=92=88+=E5=A4=84=E7=BD=AE=E5=9B=9B?= =?UTF-8?q?=E5=88=86=E6=B5=81:A1=E9=9A=8Fcamp-interact=E5=90=88=E5=9B=9E?= =?UTF-8?q?=E5=8D=B3=E6=B6=88/A2=C2=B7B1=C2=B7B2=E8=B5=B0=E5=86=99?= =?UTF-8?q?=E5=8D=A1/B3=C2=B7B6=E5=BD=92=E6=97=A2=E6=9C=89=E4=B9=89?= =?UTF-8?q?=E5=8A=A1/B4=C2=B7B5=E4=BA=BA=E5=B7=A5=E5=A4=8D=E6=A0=B8?= =?UTF-8?q?=E5=90=8E=E5=88=86=E6=B5=81);=20=E6=8A=A5=E5=91=8A=E8=90=BDrepo?= =?UTF-8?q?rts(=E5=85=AB=E7=B1=BB=E9=80=90=E6=9D=A1=E5=B8=A6=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=A1=8C=E5=8F=B7=E4=B8=8E=E7=99=BB=E8=AE=B0=E5=A4=84?= =?UTF-8?q?=E6=8C=87=E9=92=88);=20=E7=BB=9F=E7=AD=B9=E6=9D=A1=E7=9B=AE?= =?UTF-8?q?=E3=80=8CQA=20=E8=A6=86=E7=9B=96=E6=80=BB=E8=A7=88=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E4=B8=8E=E8=87=AA=E5=8A=A8=E8=AF=95=E7=8E=A9=E6=89=A9?= =?UTF-8?q?=E5=B1=95=E3=80=8D=E4=B8=89=E6=89=B9=E5=85=A8=E8=90=BD=E5=9C=B0?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=95=B4=E6=9D=A1=E5=88=A0=E9=99=A4(?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=8D=B3=E5=88=A0,=C2=A712.1)=E3=80=82?= =?UTF-8?q?=E8=AF=BB=E6=95=B0:=20=E6=B5=81=E6=B0=B4=E7=BA=BF=E9=97=B8PASS(?= =?UTF-8?q?27=E6=9D=A1=E7=9B=AE)+--docs=E3=80=90=E9=AA=8C=E6=94=B6?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E3=80=91=E6=97=A0=E6=96=B0=E5=A2=9E=E7=BA=A2?= =?UTF-8?q?(exit=3D0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rness三批-缺陷与覆盖遗漏报告-2026-11-06.md | 62 +++++++++++++++++++ 待办清单.md | 8 +-- 2 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 reports/QA-harness三批-缺陷与覆盖遗漏报告-2026-11-06.md diff --git a/reports/QA-harness三批-缺陷与覆盖遗漏报告-2026-11-06.md b/reports/QA-harness三批-缺陷与覆盖遗漏报告-2026-11-06.md new file mode 100644 index 00000000..d03cdbb4 --- /dev/null +++ b/reports/QA-harness三批-缺陷与覆盖遗漏报告-2026-11-06.md @@ -0,0 +1,62 @@ +# QA harness 三批——缺陷与覆盖遗漏报告(2026-11-06) + +> **接收方**:待办清单「QA harness 三批缺陷与覆盖遗漏收口」条目(P0)。 +> **来源**:合并 d3c85390(批 1 探针真输入化+覆盖登记/批 2 覆盖总览面板+本体枚举器/批 3 自动试玩扩展)三批实施过程的真实跑批读数。 +> **口径**:本报告只列**发现且未解决**的缺陷与测试遗漏(实施期已自修的环境/机制坑不在列,见 qa-harness 讨论文档 §10–§12);明细可查出处逐条标注。 + +## 一、产品缺陷(2 类) + +### A1 开局被开始层盖住(大门开局开始层滞留盖屏+输入锁死) + +- **现象**:大门确认开局冒险后,开始层(start_overlay)滞留可见;它以栈内模态身份直入输入锁谓词(`game/presentation/modal_flow.gd:77` 的 `start_visible_get` 项),战斗全程 `locks_input()==true`,玩家无法操作。 +- **发现**:C 自动试玩首跑(journey_player)即机器复现——上报 2 条(同缺陷双指纹),归因字段在案(`game/tests/.gates/coverage/journey_report.js`)。 +- **现状**:**营地交互修复批已修未合**(camp-interact 分支 0977a548,main.gd 大门两出口补隐藏句)——该分支合回 master 后本缺陷即消,C 的对应上报自然消失。 +- **归属**:随 camp-interact 合回即消,无需新批。 + +### A2 终局面板关闭路径引擎报错噪声 + +- **现象**:`game/presentation/views/battle_end_overlay.gd:194` 的 `get_meta(&"celebrate_tw", null)` 在 meta 缺失时仍触发引擎 SCRIPT ERROR 打印(当前引擎版对显式 null 缺省值照样报错);关闭动线功能不受影响,属持续输出的日志噪声。 +- **发现**:批 1 探针直跑日志在案(screen_flow_probe 终局段每次触发)。 +- **修法**(一行级,未实施):改 `has_meta()` 前置判断。归属=需求性工程条目(改游戏行为),走写卡通道。 + +## 二、测试覆盖遗漏(6 类) + +### B1 停手钮(AP 条)零真输入覆盖 + +- **现象**:两探针与 C 均未以真输入点过「停手」钮——emit 时代信号直发绕过 disabled 掩盖了驱动空洞;停手使能位=alive∧digging 投影(`game/presentation/views/ap_bar_view.gd:147`、`hud_presenter.gd:92`)。 +- **登记处**:覆盖面板控件下钻(ui_click 探针 seen 91/命中 27 的缺口之一);`probe_hits_ui_click.js` 零停手键。 + +### B2 视图层测试方法面未真输入化 + +- **现象**:弃图刷新确认链(press_refresh_for_probe/press_confirm_for_probe)、地图候选(press_candidate)、节点与三选一停点(press_continue/press_card/press_confirm)等驱动走视图方法口,非输入管线——保「逻辑通」不保「玩家点击可达」。 +- **登记处**:待办清单「测试面真输入化分期与存量断言逐条精锚」条目①余项;C 的两方法口在归因字段如实标注通道。 + +### B3 存量 996 条断言判据出处精锚 + +- **现象**:链式锚已保可核(capability_audit 链断 0),逐条出处粒度精锚未做。 +- **登记处**:同上条目②,原样在案。 + +### B4 本体对账缺口 212 条/62 类 + +- **现象**:游戏本体实体(data/tables 行集、schema 词表与字段、场景按钮、自绘命中类、屏模态清单,共 865 实体)在测试断言文料中零关联 212 条——「游戏做了但从未被验证」的候选面。 +- **诚实边界**:grep 关联有假阳假阴(断言测了实体但文本没带 id=假缺口;文本带 id 但断言弱=假覆盖)——**须人工逐条复核后再立事项**,禁直接照单开工。 +- **登记处**:覆盖面板第四节(`tools/coverage_report.html`);`game/tests/.gates/coverage/ontology_gaps.js`。 + +### B5 控件级零真输入命中缺口(ui_click 64 处/screen_flow 97 处) + +- **现象**:探针真输入登记的「存在但零命中」控件缺口——大头=未被探针打开过的屏(完备性边界在案:控件级视图只对被打开过的屏负责),其中混有 B1 类真空洞。 +- **登记处**:覆盖面板第三节;`probe_hits_ui_click.js`/`probe_hits_screen_flow.js` 的 seen−hit 差集。 + +### B6 C 判据收紧轮未做 + +- **现象**:全三关推进约 8 分钟(冒险段帧预算 60000 兜底);契约条款「连 3 批零真缺陷→判据收紧一轮」的触发权与执行归用户复核轮。 +- **登记处**:`journey_report.js` meta(上报数/静默数/fatal/屏到达进回执)+qa-harness 讨论文档 §5。 + +## 三、处置归属(汇总) + +| 组 | 项 | 通道 | +|---|---|---| +| 随合即消 | A1 | camp-interact 分支合回,无需新批 | +| 写卡通道 | A2、B1、B2 | 需求性工程条目(改游戏行为/测试驱动)→ 需求卡片 | +| 既有义务 | B3、B6 | 衔接条目②+用户复核轮 | +| 人工复核 | B4、B5 | 面板逐条复核后按性质分流(真缺口立事项/假缺口面板豁免清单核销) | diff --git a/待办清单.md b/待办清单.md index 6937f7d8..0676ac3e 100644 --- a/待办清单.md +++ b/待办清单.md @@ -251,13 +251,13 @@ **状态**:待执行 -#### QA 覆盖总览面板与自动试玩扩展——自动发现测试验证缺漏(2026-11-05 登记,来源=会话提及) +#### QA harness 三批缺陷与覆盖遗漏收口(2026-11-06 登记,来源=批次移交,优先级=P0) -**实况**:方案全文=`D:\code\qa-harness-discussion\QA-Harness讨论结果-中间报告.md`(三批定案;批1实施偏差八条回写其 §10);证据=能力行「营地七物件命中区点选与分界面可达」残险 game/tests/README.md:158+test-conventions §8.3/§2 条文。进度=①②已落地(worktree qa-harness:批1=两探针 51 处真输入化+1 接线断言保留+覆盖登记件+§2 条文;批2=B 面板四节+义务层提取器+六源回执明细化闸壳挂点+本体枚举器 865 实体对账,工具四件入 tools/,提交 bb9ce8a1)③已落地(journey_player 场景驱动件:全动线 16 类屏到达+异常三类上报+误报指纹跨跑静默收敛实测生效+真输入命中并入覆盖登记 30 控件;首跑机器复现在案缺陷「开局被开始层盖住」)。裁决在案勿重提:A 执行覆盖矩阵不做、D 缺口闸不做、变异测试禁入、归因登记不立独立制度。 +**实况**:证据=reports/QA-harness三批-缺陷与覆盖遗漏报告-2026-11-06.md(八类逐条带文件行号与登记处指针:产品缺陷 2=A1 开局被开始层盖住/A2 终局关闭路径引擎报错噪声;测试覆盖遗漏 6=B1 停手钮零真输入/B2 视图方法面/B3 精锚/B4 本体缺口 212 条/B5 控件零命中缺口/B6 判据收紧轮);来源批次=合并 d3c85390(三批读数在案)。处置分流:A1 随营地交互修复批合回即消;A2/B1/B2 走需求性工程写卡通道;B3/B6 归衔接条目与复核轮;B4/B5 人工复核后分流(真缺口立事项/假缺口豁免清单核销)。 -**改动面**:游戏代码+工具代码+文档 +**改动面**:游戏代码 -**状态**:待执行 +**状态**:待写卡 #### 闸机超时守卫缺陷修复——gate_run_timeout 标志文件恒真(2026-11-06 登记,来源=批次移交)