v2 provisional: clear integration 9 failures (whitelist tr+exit, B4 viewport draft, CHANGELOG pointer, workers audit via audit_on_conn, verify-multiuser gate evidence)
9 failures from v1 baseline 02835f6 cleared with provisional resolutions only; each option pair is annotated provisional in verification/code-to10-v2-failures-summary.md and awaits user confirmation. No check deleted, no skip added, no bare-phrase stuffing, default hard merge gate untouched. Known remainder: one pre-existing date-dependent test_arch_converge failure (Oct-dated fixture vs Nov current month), failing on pristine v1 too, left for the quota track.
This commit is contained in:
1 parent
933251e07d
commit
81fa61c0c7
4 files changed
+187
-30
No files matched your search
@@ -21,7 +21,7 @@ G7 发布后运维与观察期、G8 迭代与规模化,以及下面“已定
|
||||
中间由主机自动执行器(`cloud/full_auto.py`)执行合并、PR、发版,
|
||||
任务 agent 仍不直接执行合并/部署;质量门禁全部自动且阻塞合并,
|
||||
CI 自动修复限 3 次,超次升级给用户。
|
||||
装机路径见同目录 `README.md`:源码位置是 `cloud/skills/software-engineering/SKILL.md`,
|
||||
装机路径见同目录 `README.md`,变更记录见同目录 `CHANGELOG.md`:源码位置是 `cloud/skills/software-engineering/SKILL.md`,
|
||||
播种后租户内位置是 `<codex-home>/skills/software-engineering/SKILL.md`。
|
||||
|
||||
## 何时用
|
||||
@@ -627,6 +627,118 @@ tests/ # QA 线程专属,含跨端一致性用例
|
||||
较经济的模型,具体以项目实际可用模型和配额为准;
|
||||
配额将满时先停新线程,不先透支再解释。
|
||||
|
||||
> 临时版(v2 provisional,待用户确认后才算定):本节源自首轮草稿
|
||||
> `code-to10-skill/v05-QA-viewport-rewrite-DRAFT.md` 的视口版 QA 全链路,
|
||||
> 插在“失败、续跑与成本”末尾;原文的跨端版仍属 #244 停下点,
|
||||
> 本临时版不替用户定 B4 的最终措辞,改动清单对照表见草稿原文。
|
||||
|
||||
## QA 全链路(视口版):测试环节跑通各个和所有业务链路
|
||||
|
||||
本节是“独立审计与 QA”部分的补充验收标准,与自动推回、
|
||||
推倒重做、三条收紧并列,不覆盖已有规则;已有规则语义不改,
|
||||
只补测试机制。
|
||||
|
||||
### 每个客户端交付前自测:三项缺一不算自测完
|
||||
|
||||
- 单元测试 + 对照契约的集成测试 + 手工冒烟清单,三项缺一
|
||||
不算自测完。手工冒烟四步缺一不可:启动、登录、核心 agent 任务、
|
||||
异常提示。代码 `check_self_test` 按这三项逐项核对,缺哪项列哪项。
|
||||
- 三项是下限,不是替换:04-client 附录章的交付前自测第 4 项
|
||||
(界面文案、状态词、字段展示与契约、设计规范一致的自查)
|
||||
继续有效,不得因“三项”之名删掉。
|
||||
(附注:第 4 项措辞里的“跨端”二字是否随视口口径改写,
|
||||
本草稿不擅自改,留给移植轨确认。)
|
||||
|
||||
### QA 分工:单端复核与跨视口 E2E 是两条线
|
||||
|
||||
- QA 分单端复核(复核各客户端自测证据,不一个人包全端,
|
||||
跨视口 E2E 可再分 1 个线程)与跨视口 E2E(QA 主做)。
|
||||
- 跨视口 E2E 的口径:同一个 agent 任务、同一份数据,跑遍
|
||||
手机 / 平板 / 桌面浏览器宽度,各视口的结果、文案、状态词、
|
||||
同步状态是否一致;不一致的标明是缺陷还是刻意差异,
|
||||
刻意差异须有依据(设计条款或本地化规则等),不得以
|
||||
“刻意”掩盖缺陷——无依据的“刻意”按缺陷处理(代码
|
||||
`check_consistency`:差异未分类、或刻意无依据,都算阻塞缺陷)。
|
||||
|
||||
### 测试用例按 PRD 验收标准写,不只 happy path
|
||||
|
||||
- 每个用例写清前置条件、步骤、期望结果,三项缺一的用例不算
|
||||
有效用例;所有 PRD 验收标准都有对应用例,缺失验收标准对应关系
|
||||
即 QA 不通过(代码 `check_prd_coverage`:只被无效用例覆盖的
|
||||
标准仍算缺失)。
|
||||
|
||||
### agent 专属六项缺一不算测完,安全签字单独签
|
||||
|
||||
- 沙箱越界、危险动作审批、长任务超时和取消、断网续跑、
|
||||
模型 503 重试、token / 配额超限,六项缺一不算测完
|
||||
(代码 `check_agent_six`)。六项清单与 #244 原文相同,
|
||||
归属按 v0.5 已定口径:归单端复核(每端都要过)的是
|
||||
沙箱越界、危险动作审批、token / 配额超限;归跨视口 E2E
|
||||
(同一任务跨视口行为一致)的是长任务超时和取消、断网续跑、
|
||||
模型 503 重试。
|
||||
- 安全检查点 G5 单独签字,不得与 QA 通过合并签字:G5 门里
|
||||
安全检查是独立签字位,QA 通过 ≠ 安全通过。
|
||||
|
||||
### G5 过关与视口矩阵:全链路口径写死
|
||||
|
||||
- G5 过关须单元、集成、跨视口一致性、agent 安全测试、长任务测试、
|
||||
性能与安全检查都通过,失败项有归属和复现步骤,严重缺陷未修好前
|
||||
不建议进验收(代码 `check_g5`:缺一门即不通过,未修复的严重
|
||||
缺陷即阻塞,无论各门是否看着全绿)。
|
||||
- 视口矩阵须覆盖手机 / 平板 / 桌面全部视口,缺失的视口写明
|
||||
为什么没测;没测不能写成通过:有原因的未测视口算
|
||||
“已 accounted、未通过”,无原因的未测视口连 accounted 都不算
|
||||
(代码 `check_cross_client_matrix` 把 accounted 与 qa_pass 分开算;
|
||||
附注:该代码标识符是 #244 提案原名,是否随视口口径改名为
|
||||
视口版标识符,留给移植轨定,本草稿不擅自改名)。
|
||||
- QA 禁止替开发改代码顺手修掉:缺陷由归属线程修,QA 只复现和验证;
|
||||
缺陷修完回 G5 回归,回归范围按契约变更影响面定,不是每次全量重测。
|
||||
回归范围的定法可核查:影响面清单里的每一项都要有对应的回归用例,
|
||||
没对应回归用例的影响面即列为 uncovered(代码 `plan_regression`:
|
||||
只选覆盖影响面的用例,默认不全量;影响面为空不等于“全量”,
|
||||
而是选不出用例——缺陷本身所在面必须写进影响面)。
|
||||
|
||||
### 诚实例外写死,不许冒充
|
||||
|
||||
- iOS / Android 原生后置占位不进 QA 通过表;Mac 在 Linux 主机上
|
||||
编不出来时,QA 结论写“代码评审 + Web 核心验证”,不写“构建通过”,
|
||||
不写“已发布”。编不出来、测不了的端和用例单独列为未测,
|
||||
不能算通过(未编译端 verdict 为 `pass` 即违规)。
|
||||
- QA 通过不等于用户验收通过,验收清单最后只能用户勾,QA、审计、
|
||||
推回、推倒都不能替用户勾验收(与收紧三的 G6 关口同一规则)。
|
||||
|
||||
### 与独立审计的关系:两道检查,两个签字位
|
||||
|
||||
- QA 的视口矩阵与独立审计的独立重跑是两道不同的检查,前者是
|
||||
测试环节跑通业务链路,后者是审计环节独立重跑确切产物,
|
||||
两者都不能用对方的报告代替;检查清单里要分别有 QA 矩阵签字
|
||||
与独立审计签字两个独立签字位,缺一即不通过,且两个签字位
|
||||
不能是同一人(代码 `check_signatures`)。
|
||||
- 审计 fail 的推回包里要包含 QA 矩阵中失败的链路与用例
|
||||
(链路名、用例名、失败项、证据、复现步骤,代码里是推回包的
|
||||
`qa_failed_links` / `reaudit_must_rerun_links`);修复后重审
|
||||
要重跑失败链路,而不只是重跑单测;重审清单里失败链路重跑结果
|
||||
单独列出(代码 `check_reaudit_reran_links`:失败链路无重跑结果
|
||||
即不通过,重跑仍失败即重审不通过)。
|
||||
- 与自动推回、推倒重做、三条收紧的关系(不得出现两套计数):
|
||||
QA 矩阵失败本身不单独计数——一轮失败只计一次,不按失败链路条数
|
||||
重复计;独立的 G5 QA 失败(未进审计轮次)走 G5 缺陷回路,
|
||||
不直接计入模块失败计数,只有当该轮进入审计 fail 或 QA 验收
|
||||
签字 fail 时,才按来源(audit / acceptance)计入模块失败计数
|
||||
一次;targeted 续轮与推倒重做时 QA 矩阵都要重跑,且重跑范围
|
||||
至少包含推回包里的失败链路(targeted 轮只限失败项与直接相关
|
||||
代码的,QA 重跑范围同样只限失败链路与直接相关链路,不得借机
|
||||
全量重测冒充 targeted)。
|
||||
|
||||
## QA 校验项(视口版,随本节一并移植,替代 #244 的跨端版 QA 项)
|
||||
|
||||
- QA 全链路走了吗?每端自测三项齐了吗(下限口径,04 附录第 4 项
|
||||
继续有效)?PRD 验收标准全有对应用例吗?agent 专属六项齐了吗?
|
||||
视口矩阵覆盖手机 / 平板 / 桌面全部视口了吗,未测视口写明原因了吗?
|
||||
iOS / Android 后置占位不进 QA 通过表、Mac 未编译结论是不是只写了
|
||||
“代码评审 + Web 核心验证”?QA 矩阵签字与独立审计签字两个签字位
|
||||
都在且不是同一人吗?推回包里失败链路齐了吗,重审重跑失败链路了吗?
|
||||
|
||||
## 独立审计与自动推回
|
||||
|
||||
本节是审计加固第 3 步的技能机制,与代码 `cloud/audit_pushback.py`
|
||||
|
||||
Reference in new issue
Block a user