QA 与测试规范
按规范编写测试计划、测试用例、自动化脚本与测试报告;并在排查缺陷或测试失败时采用系统性排错与根因分析(先确认根因再修复,禁止只治标不治本)。规范细节见 references/REFERENCE.md。
何时使用
-
用户要求「写一份测试计划」「设计 xxx 的测试用例」「补充接口/UI 自动化」「生成测试报告」
-
用户提供需求/接口/页面说明,需要据此设计测试策略、用例或自动化脚本
-
用户需要评审或规范化现有测试文档/用例/脚本
-
用户排查缺陷、修复测试失败、分析异常行为或「为什么又挂了」— 使用系统性排错(见下方「系统性排错与根因分析」)
系统性排错与根因分析
在排查缺陷、修复失败用例或分析异常行为时,必须先做根因分析,再实施修复。禁止仅做症状层面的修补而掩盖真实问题。
核心原则
未确认根因前不实施修复(NO FIXES WITHOUT ROOT CAUSE FIRST)。
不应对症下药式地打补丁;先弄清「为什么失败」,再改代码。
四阶段框架
阶段一:根因调查(改代码之前)
-
完整阅读报错信息(每一句都有用)
-
稳定复现问题(无法复现则无法验证修复)
-
查看近期变更(失败前改了什么)
-
收集诊断证据:日志、堆栈、状态 dump
-
追踪数据流:沿调用链找到错误值的来源
根因追溯:从现象 → 直接产生错误的代码 → 谁调用了它 → 沿调用栈向上 → 找到最初触发问题的位置。不要只修报错点,要追溯到原始触发点。
阶段二:模式对比
-
找到能正常工作的类似代码
-
完整对比实现差异(不要只扫一眼)
-
明确「正常」与「异常」的差异点
-
理清依赖与前提条件
阶段三:假设与验证
-
提出一条清晰假设(例如「错误是因为 X」)
-
设计最小复现/最小改动(一次只动一个变量)
-
预测「若假设成立,应看到什么」
-
执行验证并对照预测
-
不符合则修正假设,符合则进入实施
阶段四:实施与验证
-
先写失败用例(能复现该缺陷)
-
实施单一、针对根因的修复(不治标)
-
确认该用例通过
-
跑完整测试套件,确认无回归
规则:若连续三次修复均失败或引出新问题,应停止补丁式修改,视为设计/架构问题,需要讨论与重新评估。
过程红线
一旦出现以下想法,应立即停下:
-
「先快速修一下,以后再查根因」
-
多次修复失败后仍「再试一次修复」
-
未理解原因就认为「这样改应该能行」
-
没有明确假设就「先试一下…」
-
「在我这儿能跑」却不排查环境/数据差异
与测试的衔接
-
修复前:用可复现该缺陷的用例(或最小复现步骤)锁定根因并验证假设。
-
修复后:该用例应由红变绿,并跑全量用例防回归。
-
详细场景(测试失败、运行时错误、间歇性失败等)与检查清单见 references/REFERENCE.md「系统性排错」。
执行流程(测试计划 / 用例 / 自动化 / 报告)
- 确认测试范围
向用户确认:
-
被测对象:功能模块、接口、页面或端到端场景;是否有需求文档、接口契约或 UI 设计
-
测试类型:功能、接口、UI、性能、安全等;是否需自动化及框架(pytest、Playwright、Postman 等)
-
已有约定:项目内是否有 docs/测试规范.md 、用例模板、自动化目录结构,优先遵从
- 查阅规范
-
若存在 docs/测试规范.md 或 docs/xx规范.md:优先读取其中的用例格式、优先级定义、命名约定、自动化目录与报告格式。
-
无则按 references/REFERENCE.md 的通用约定执行。
- 按规范产出
产出顺序与要点:
测试计划(若需要)
目标与范围、测试类型、环境与数据、进度与风险、准入/准出标准;与需求或迭代对齐。
测试用例
-
用例 ID、标题、前置条件、步骤、预期结果、优先级、所属模块;格式见 REFERENCE。
-
覆盖正常、边界与异常;步骤可执行、预期可验证;避免重复与模糊表述。
自动化脚本(若需要)
-
接口测试:pytest + requests 或项目既有 client;用例与实现分离,数据与断言清晰。
-
UI 测试:Playwright/Selenium 等;页面对象或组件封装,避免裸定位与重复步骤。
-
命名:test_{场景}_{预期} ;目录与文件与模块/功能对应。
测试报告(若需要)
执行结果汇总、通过/失败/阻塞统计、缺陷摘要、风险与建议;可基于模板生成。
- 规范要点
-
用例与脚本:中文描述可接受,自动化代码与注释建议中英统一(与项目一致)。
-
用例 ID:建议模块前缀 + 序号,便于追溯与去重。
-
优先级:P0/P1/P2 或高/中/低,与项目定义一致。
-
禁止:无预期结果的步骤、无法自动断言的主观描述、硬编码敏感数据、跳过必要的清理与还原。
- 交付物清单
单次执行应包含(按需):
-
测试计划文档(范围、策略、进度、准出标准)
-
测试用例(表格或 Markdown/Excel 等,含 ID、步骤、预期、优先级)
-
自动化脚本与说明(目录结构、运行方式、依赖)
-
测试报告(执行结果、统计、缺陷与风险)
-
若项目有约定,同步更新 docs/ 下测试相关文档
-
排错场景:根因结论、复现步骤、失败用例(修复前红)、修复后验证与全量回归结果
资产与参考
-
规范与示例汇总(含系统性排错详细场景与检查清单):references/REFERENCE.md
-
项目内规范:docs/测试规范.md、docs/xx规范.md(若存在,优先遵从)
-
既有自动化:tests/、e2e/、testcases/ 等(保持风格与命名一致)