SuperAPI AI 工具集

testing-ops

测试与质量

查看项目

更新于 10-13 17:12

技能介绍

Testing Ops 是一套跨语言通用的测试策略与模式集合,帮助开发者在不同语言项目中统一测试思路。

用途与总体思路:技能以“测试金字塔”为核心模型。金字塔底层是数量多、速度快、成本低的单元测试;中层是数量适中的集成测试;顶层是数量少、速度慢、成本高的端到端(E2E)测试。该模型用于指导测试分层与投入分配。

测试类型:

  1. 单元测试:范围是单个函数/方法/类;速度为毫秒级;依赖全部被 mock;每次代码变更都可运行;目标覆盖率 80% 以上。
  2. 集成测试:范围是多个组件协同;速度为秒级;使用真实数据库、外部 API 采用 mock;在 PR/合并、关键路径上运行;覆盖关键集成点。
  3. 端到端测试:范围是完整用户旅程;速度为分钟级;使用真实系统或预发环境;在部署前、夜间运行;仅覆盖关键用户流程。

命名与写法:测试命名约定为 test_<单元><场景><预期>,例如 test_calculate_total_with_discount_returns_reduced_price、test_user_login_with_invalid_password_returns_401、test_order_submit_when_out_of_stock_raises_error。推荐使用 Arrange-Act-Assert(AAA)结构:Arrange 准备测试数据与依赖,Act 执行被测代码,Assert 验证结果,文中给出了计算折扣的示例。

测试替身:列出五种类型及用途——Stub 返回预设数据、Mock 验证交互、Spy 记录调用并使用真实实现、Fake 可工作的简化实现(如 FakeDatabase)、Dummy 仅作占位且从不使用。

测试隔离:数据库隔离有三种方案——事务回滚(快)、清空表(中等)、独立数据库(慢)。外部服务隔离也有三种方案——在边界处 mock(替换 HTTP 客户端)、伪服务器(WireMock、MSW、VCR cassettes)、契约测试(Pact 等消费者驱动契约)。

测试范围建议:必须测试业务逻辑与计算、输入校验与错误处理、安全敏感代码(认证、权限)、边界条件;应该测试集成点(数据库、API)、状态转换、配置处理;避免测试框架内部实现、第三方库行为、简单 getter/setter、私有实现细节。

质量检查清单:测试相互独立(无顺序依赖)、确定性(无 flaky 测试)、快速(单元 <100ms、集成 <5s)、名称清晰描述行为、覆盖正常路径与错误情况、不重复生产逻辑、mock 保持最小化(仅外部边界)。

参考资源与脚本:包含 ./references/tdd-workflow.md(TDD 周期)、./references/mocking-strategies.md(何时及如何 mock)、./references/test-data-patterns.md(fixtures、factories、builders)、./references/ci-testing.md(CI/CD 中的测试),以及 ./scripts/coverage-check.sh(运行覆盖率并在低于阈值时失败)。

限制:资料未提及具体支持的语言列表、安装命令、收费方式或平台限制,这些信息暂未提供。