SuperAPI AI 工具集

testing-guide

测试与质量

查看项目

更新于 10-16 10:01

技能介绍

Testing Guide 是一个测试体系与测试编写规范技能(Skill),版本 1.1.1,最后更新于 2026-01-30,适用形式为 Claude Code Skills,支持英文与繁体中文。

用途 该技能为系统化测试提供测试金字塔标准与最佳实践,支持 ISTQB 与 Industry Pyramid 两种框架。其适用场景为:编写测试、讨论测试覆盖率等。

框架选择 技能提供两种可选框架。ISTQB 框架的层级为 UT → IT/SIT → ST → AT/UAT,适合企业、合规、正式 QA 场景。Industry Pyramid 框架的层级为 UT(70%)→ IT(20%)→ E2E(10%),适合敏捷、DevOps、CI/CD 场景。关于集成测试缩写,IT(Integration Testing)用于敏捷/DevOps 社区,SIT(System Integration Testing)用于企业/ISTQB 语境,二者指同一测试层级。

测试层级概览 UT 的范围为单个函数/类,速度小于 100ms,依赖为 Mocked。IT/SIT 的范围为组件间交互,速度 1-10s,依赖为真实数据库(容器化)。ST 的范围为完整系统(ISTQB),速度为分钟级,依赖为类生产环境。E2E 的范围为用户旅程,速度 30s 以上,依赖为全部真实。AT/UAT 的范围为业务验证(ISTQB),速度不定,依赖为全部真实。

覆盖率目标 行覆盖率最低 70%,推荐 85%。分支覆盖率最低 60%,推荐 80%。函数覆盖率最低 80%,推荐 90%。

AI 优化格式 为减少 token 使用,AI 助手可使用 YAML 格式文件:基础标准为 ai/standards/testing.ai.yaml;框架选项包括 ISTQB Framework(ai/options/testing/istqb-framework.ai.yaml)与 Industry Pyramid(ai/options/testing/industry-pyramid.ai.yaml);测试层级选项包括 Unit Testing(ai/options/testing/unit-testing.ai.yaml)、Integration Testing(ai/options/testing/integration-testing.ai.yaml)、System Testing(ai/options/testing/system-testing.ai.yaml)、E2E Testing(ai/options/testing/e2e-testing.ai.yaml)。

命名约定 文件命名示例:[ClassName]Tests.cs(C#)、[ClassName].test.ts(TypeScript)、[class_name]test.py(Python)、[class_name]test.go(Go)。方法命名示例:[MethodName][Scenario]ExpectedResult、should_[behavior]whencondition、test_[method][scenario]expected。

测试替身 Stub 返回预设值,用于固定 API 响应。Mock 验证交互,用于检查方法是否被调用。Fake 为简化实现,用于内存数据库。Spy 记录调用并委托,用于部分 mock。使用建议:UT 对所有外部依赖使用 mocks/stubs;IT 对数据库使用 fakes,对外部 API 使用 stubs;ST 使用真实组件,仅对外部服务使用 fake;E2E 全部使用真实组件。

AAA 模式 Arrange 准备测试数据,Act 执行行为,Assert 验证结果。

FIRST 原则 Fast(测试运行快)、Independent(测试互不影响)、Repeatable(每次结果一致)、Self-validating(明确的通过/失败)、Timely(与生产代码同时编写)。

应避免的反模式 测试相互依赖(必须按顺序运行)、脆弱测试(时通过时不通过)、测试实现细节、过度 Mock、缺少断言、魔法数字/字符串。

测试理论要点 基础术语:error(人思考中的错误)、defect(代码中的缺陷,由 error 引起)、failure(系统行为不正确,由 defect 引起),链条为 Error → Defect → Failure。测试判定问题(oracle problem)的定义为“我们如何知道预期结果正确”,方法包括 specification_oracle(与规格比对)、reference_oracle(与参考实现比对)、consistency_oracle(相同输入产生相同输出)、heuristic_oracle(合理近似)。静态测试是在不执行的情况下检查,技术包括 reviews、walkthroughs、inspections、static_analysis,用于在运行前发现缺陷,示例如 ESLint、SonarQube、code_review;动态测试是执行并观察行为,技术包括 unit、integration、system、acceptance,用于发现运行期间的 failure。黑盒测试设计包括等价类划分(将输入划分为等价类,示例:年龄 [<0 无效]、[0-17 未成年]、[18-64 成年]、[65+ 老年])、边界值(在划分边界处测试,示例:测试 -1、0、17、18、64、65)、决策表(条件组合 → 动作,用于复杂业务规则)、状态转换(有效状态序列,用于工作流、状态机)。白盒测试覆盖包括 statement_coverage(每条语句执行一次)、branch_coverage(每个判定分支均被走到的)、condition_coverage(每个条件取 T/F)、path_coverage(每条可能路径,通常不现实)。基于风险的测试包括 likelihood(失败可能性)、impact(失败后果严重度)、priority(likelihood × impact);风险矩阵为 high_high(充分测试,最高优先级)、high_low(良好覆盖)、low_high(良好覆盖)、low_low(基础覆盖)。缺陷管理方面,缺陷生命周期状态为 new、assigned、in_progress、fixed、verified、closed,重开触发条件为验证失败;severity 与 priority 的区别为 severity 是技术影响(critical/major/minor/trivial),priority 是业务紧急度(high/medium/low),示例:登录页错别字为低 severity、高 priority(品牌)。测试环境隔离层级:unit 为内存、Mock 依赖;integration 为容器化数据库(Docker);staging 为类生产、隔离;production 为真实环境、使用 feature flags 进行测试。测试数据策略包括 fixtures(静态预定义数据)、factories(动态生成,如 faker)、snapshots(脱敏的生产副本)、synthetic(算法生成的边界用例)。

配置检测 该技能支持项目专属配置。检测顺序为:检查 CONTRIBUTING.md 中的“Disabled Skills”部分,若列出该技能,则项目内禁用;检查 CONTRIBUTING.md 中的“Testing Standards”部分,若未找到,则使用默认覆盖率目标。首次设置时,若未找到配置且上下文不明确,会询问用户是否要自定义覆盖率目标。用户选择后,建议在 CONTRIBUTING.md 中记录。配置示例为在 CONTRIBUTING.md 中写明覆盖率目标(行 80%、分支 70%、函数 85%)与测试框架(单元测试 Jest、集成测试 Supertest、E2E 测试 Playwright)。

相关标准 Testing Standards、Code Review Checklist。

版本历史 1.0.0 于 2025-12-24 添加标准章节(Purpose、Related Standards、Version History、License);1.1.1 于 2026-01-30 更新。

许可 该技能以 CC BY 4.0 发布。来源:universal-dev-standards。