SuperAPI AI 工具集

testing-guide

测试与质量

查看项目

更新于 10-15 11:02

技能介绍

Testing Guide 是一套编写高质量测试的约束规范,目标是确保测试真正验证行为,而不是仅仅覆盖代码。其核心理念是:测试依据来自需求,不是来自代码。

一、用途与定位 该技能在用户编写测试代码、需要测试策略指导、提到测试覆盖率/断言/变异测试、要求分析代码分支覆盖,或在 Code Review 中涉及测试代码时触发,同时接受中英文提问并用中文回答。相关的关键词包括“分支分析”“branch analysis”“未测试路径”“覆盖盲区”等。

二、测试质量金字塔

  • Level 3 测试有效性:变异得分≥80%,需求追溯100%。
  • Level 2 断言质量:禁止弱断言,验证行为而非实现。
  • Level 1 代码覆盖:行/分支覆盖≥80%(必要非充分条件)。

三、核心阈值表 该表是全仓唯一权威测试质量阈值源,判定规则为:≥达标值=合规;≥最低值且<达标值=[Suggestion];<最低值=[Blocker]。指标包括:行覆盖率(达标值80%、最低值60%,适用全部项目)、分支覆盖率(达标值80%、最低值60%,适用全部项目)、变异得分(达标值80%、最低值60%,适用于启用变异测试的项目,核心业务逻辑按达标值要求)、每测试具体断言数(≥1,弱断言作为唯一断言则判定为[Blocker])。agent 侧引用一律改为指针,仅用户侧产物模板允许内联数字并须标注“摘录自本表,变更需同 commit 同步”。文中还列出了待迁移的已知 agent 侧镜像位置。

四、各类测试约束

  • 单元测试:每个测试至少 1 个具体断言;禁止弱断言(toBeDefined、toBeTruthy、not.toBeNull)作为唯一断言;测试名称必须描述预期行为;一个测试只验证一个行为;测试依据来自需求;只 Mock 外部依赖,不 Mock 内部实现。
  • 覆盖率:行/分支覆盖达标。
  • 变异测试(推荐):变异得分达标,核心业务逻辑按达标值要求。
  • 集成测试:必须验证模块间数据流、接口契约,测试数据必须独立。
  • E2E 测试:P0 场景必须 100% 覆盖,使用显式等待,禁止硬编码延时。
  • 需求追溯:每个需求必须有对应测试。

五、测试骨架生成 采用 AI 驱动的自顶向下开发:先由测试用例设计生成测试骨架(describe 结构按功能点分组、test.skip() 占位、// TODO 注释),再逐个实现(移除 skip、编写 AAA 结构、添加具体断言)。骨架生成约束包括:必须使用 test.skip() 或 test.todo() 标记未实现测试;测试名必须说明验证的行为;必须按功能点组织 describe 结构。测试自说明规范强调测试代码不写 keel 编号标注,追溯由文档侧追溯矩阵维护,测试名即文档。

六、代码分支覆盖分析(BCA) 代码实现完成后,AI 分析所有代码分支,找出未被测试覆盖的路径并生成补充测试用例,作为需求驱动测试的补充。适用场景包括:代码含防御性逻辑、复杂条件分支、覆盖率工具显示分支不足、变异测试发现存活变异体。分析流程为:分析代码分支(条件语句、异常处理路径、早返回、循环边界)→映射现有测试→生成补充测试(使用 BCA-XXX 编号,添加 @covers-branch 标注,遵循 AAA 结构和断言质量约束)。约束包括:分支分析在需求驱动测试之后执行;补充测试必须标注 @covers-branch;使用 BCA-XXX 编号不占用 UT/IT/E2E 编号空间;业务逻辑分支应回溯为正式测试而不保留 BCA 编号。

七、速查与模板 测试命名推荐格式为“[被测方法] 应该 [预期行为] 当 [条件]”,测试结构为 Arrange→Act→Assert(具体断言)。文档提供了覆盖率与变异测试的常用命令(Jest、pytest、Go、Stryker、mutmut、mvn pitest 等)、模板索引(core-concepts、unit-testing、integration-testing、e2e-testing、branch-coverage-analysis、mutation-testing、ci-integration、traceability-matrix、test-examples)以及多语言最佳实践模板(Jest/Vitest、pytest、JUnit 5、xUnit、Go、Rust、Swift、Google Test)。此外,还说明了与 /test-cases、/code-quality、/refactor、/dev-workflow 等其他技能的协作方式。

八、限制 关于具体收费、价格、平台支持等信息暂未提供。