测试规范专家助手技能,提供系统化的测试方法论,涵盖单元测试、集成测试、E2E测试、TDD开发实践。在编写代码时按照测试方法论进行测试,确保代码质量和功能正确性,包含测试策略、三层测试金字塔、测试驱动开发流程等核心内容。
测试规范专家技能:单元集成E2E测试与TDD开发实践指南
【适用场景】
Step 1:编写新功能的测试
当你需要为一个新功能编写测试时,按照测试金字塔模型,先写单元测试保障核心逻辑,再写集成测试验证模块协作,最后按需编写E2E测试。Step 2:采用TDD方式开发
当你准备用TDD(测试驱动开发)方式开发时,按照"红(写一个失败测试)→绿(写最简单代码通过)→重构(改善代码)"的节奏迭代,确保测试先行。Step 3:编写可测试的代码
当发现代码难以测试时,使用依赖注入等手法改善代码的可测试性,而非为了测试而牺牲代码质量。【操作步骤】
第一步:确定测试策略
根据项目类型和风险程度选择测试策略: - 常规项目:单元测试(覆盖核心业务逻辑)+ 集成测试(覆盖关键路径)+ 少量E2E测试(核心用户流程) - 高风险项目:增加测试覆盖率要求,增加E2E测试覆盖 - 快速迭代项目:聚焦单元测试和集成测试,E2E测试只覆盖核心路径
第二步:编写单元测试
单元测试原则: - 每个单元测试只测试一个功能点 - 测试应该快速、独立、可重复 - 使用模拟(Mock)隔离外部依赖 - 好的单元测试:可读、可维护、有意义(不测试琐碎内容)
第三步:编写集成测试
集成测试关注模块间的协作: - 测试模块间的接口契约 - 测试数据流转是否正确 - 测试异常场景下的协作
第四步:按需编写E2E测试
E2E测试代价高,只覆盖核心用户路径: - 用户注册/登录流程 - 核心业务操作流程 - 支付/交易关键路径
【代码模板】
测试金字塔模型: ``` /\ E2E 测试(少量) / \ 集成测试(适量) /____\ 单元测试(大量)
单元测试:快速、独立、覆盖核心逻辑 集成测试:模块协作、接口契约 E2E测试:真实环境、核心用户路径 ```
TDD开发节奏: ``` 1. 红:写一个描述期望行为的测试(运行失败) 2. 绿:写最简单能通过测试的代码(不求完美) 3. 重构:改善代码结构,消除重复(测试始终通过) ```
【复盘要点】
1. 测试先行的价值:TDD不仅是测试方法,更是设计方法——在编写测试的过程中迫使你思考代码的接口设计、依赖关系和可测试性,往往能发现设计问题。
2. 测试金字塔比测试宽带更重要:比起大量复杂的E2E测试,建立在扎实单元测试基础上的测试金字塔更能保证代码质量。单元测试快速反馈,失败时容易定位问题。
3. 可测试性是代码质量的指标:如果代码难以测试,往往说明代码本身的设计有问题(过度耦合、职责不清)。改善可测试性往往同时改善了代码质量。
来源:dkbnull/hello-skill (GitHub) | https://raw.githubusercontent.com/dkbnull/hello-skill/main/common/skills/testing/SKILL.md