SuperAPI AI 工具集

testing-strategy-enforcement

测试与质量

查看项目

更新于 10-16 04:31

技能介绍

用途:该技能用于执行 CIA 平台的测试策略,确保覆盖率阈值一致、遵循测试金字塔,并落实 CI/CD 门禁,为各模块维护测试质量提供可操作指导。

适用场景:为新功能编写测试、评审 PR 的测试充分性、配置 CI/CD 测试门禁、排查测试失败或不稳定测试、度量并改进测试覆盖率、决定变更的测试范围、重构现有测试套件。不适用于安全专项测试、性能测试设计和 UI/UX 验证。

覆盖率要求:行覆盖率最低 80%、目标 85% 以上,分支覆盖率最低 70%、目标 75% 以上,均为 CI 门禁阻断项;新代码覆盖率最低 80%、目标 90% 以上,由 SonarCloud 阻断;变异分数目标 60% 以上,为建议项。JaCoCo 通过 jacoco-maven-plugin 的 check 目标配置 BUNDLE 级 LINE 0.80 与 BRANCH 0.70 规则。

测试金字塔:单元测试占 75-80%,使用 JUnit 5、Mockito、AssertJ,覆盖业务逻辑、数据转换、校验、工具方法、异常路径与边界条件;集成测试占 15-20%,使用 Spring Test 与 TestContainers,覆盖数据库仓储操作、安全过滤链、真实依赖的服务层、外部 API 客户端与事务边界;E2E 测试占 5%,使用 Playwright,仅覆盖关键用户流程、关键数据可视化页面、管理操作与跨浏览器兼容性。

CI 门禁:编译(Maven,零错误)、单元测试(JUnit 5,100% 通过)、覆盖率(JaCoCo,80% 行/70% 分支)、代码质量(SonarCloud 质量门禁通过)、安全扫描(CodeQL,零严重/高危)、依赖检查(OWASP DC,CVSS 小于 7)、集成测试(Spring Test,100% 通过)。门禁失败时按测试失败、覆盖率不足、质量门禁失败、安全扫描失败分别处理,不稳定测试须修复根因而非跳过。

测试质量:命名采用 methodUnderTest_condition_expectedResult;避免无断言、测试实现细节、忽略异常、共享可变状态、过度 mock、不稳定测试、逐行测试等反模式。覆盖率例外仅限自动生成代码、简单 DTO 样板代码和无业务逻辑的基础设施代码,可在 pom.xml 中通过 JaCoCo excludes 排除。

度量方式:使用 mvn clean test jacoco:report 生成报告,查看 target/site/jacoco/index.html;多模块可用 mvn clean verify -pl . -am 生成聚合报告。SonarCloud 跟踪覆盖率趋势,任何 PR 覆盖率不得下降,目标逐步提升至 85% 以上行覆盖率。该技能与 ISO 27001、NIST CSF 相关控制项对齐。