课程简介
本课程的内容是讲师十余年软件开发实践的总结,讲师从端到端的软件开发角度来对单元测试的关键问题和解决方案进行探究,能给学员和软件开发组织带来较大的收益,其内容远远超出了一般性的技能讲解范畴。
目标收益
通过培训,学员可以掌握单元测试所必须的接口设计、自动化用例编写及相关的xUnit框架、Stub/Mock框架的使用,编写易于理解、易于复用和易于扩展的单元测试。此外,学员还能学到已经被证实有效的单元测试相关模式和方法,以及遗留代码的单元测试编写等技能。
通过培训,软件开发组织能够对于什么是好的单元测试建立一致的认知,建立利于理解、利于维护的、可长期持续演进的单元测试基线,为软件设计改善、代码质量提升及产品的质量保证建立有效的保障机制。
培训对象
本课程的培训面向的对象以从事软件开发实践的工程师和软件团队的技术负责人为主,课程具备Java、C#、C/C++等多个语言版本,讲师具备为特定领域定制的丰富经验和能力。
课程大纲
单元测试的目标和本质 |
内容一:从端到端角度看单元测试 1. 单元测试到底要解决的是什么问题 2. 单元测试的基本价值观 3. 第一个单元测试演示 4. 理解单元测试中的核心概念 |
单元测试工具 |
内容二:熟练运用单元测试工具和基本模式 1. 单元测试框架 2. 四阶段测试模式 3. 数据驱动的测试 4. 练习:为既有代码编写单元测试 内容三:单元测试中的依赖和Mock工具 1. 依赖对单元测试的影响 2. 测试替身的类型 3. Stub和Mock工具 4. 设计接缝和依赖注入 5. 接口设计和重构 6. 练习:使用Mock框架隔离和控制依赖 |
单元测试模式 |
内容四:好的(和不好的)单元测试 1. 单元测试的坏味道 2. 好的单元测试的设计和编写原则 3. 单元测试模式 4. 单元测试的重构 5. 练习:单元测试代码的重构 |
为遗留代码编写测试 |
内容五:和遗留代码相关的单元测试问题 1. 为什么遗留代码的测试那么难? 2. 遗留代码的测试策略和技术 3. 练习:为遗留代码编写测试 |
测试优先和测试驱动开发 |
内容六:测试优先 1. 测试优先的可行性和必要性 2. 测试优先和传统测试策略的比较 内容七:测试驱动开发 1. 测试驱动开发案例演示 2. 测试驱动开发的方法 3. 练习:使用测试驱动开发方法编写代码 |
组织级的单元测试关注 |
内容八:如何在组织级成功导入单元测试实践 1. 单元测试的组织和管理 2. 单元测试和持续集成 3. 组织级导入单元测试的常见问题和应对方案 |
单元测试的目标和本质 内容一:从端到端角度看单元测试 1. 单元测试到底要解决的是什么问题 2. 单元测试的基本价值观 3. 第一个单元测试演示 4. 理解单元测试中的核心概念 |
单元测试工具 内容二:熟练运用单元测试工具和基本模式 1. 单元测试框架 2. 四阶段测试模式 3. 数据驱动的测试 4. 练习:为既有代码编写单元测试 内容三:单元测试中的依赖和Mock工具 1. 依赖对单元测试的影响 2. 测试替身的类型 3. Stub和Mock工具 4. 设计接缝和依赖注入 5. 接口设计和重构 6. 练习:使用Mock框架隔离和控制依赖 |
单元测试模式 内容四:好的(和不好的)单元测试 1. 单元测试的坏味道 2. 好的单元测试的设计和编写原则 3. 单元测试模式 4. 单元测试的重构 5. 练习:单元测试代码的重构 |
为遗留代码编写测试 内容五:和遗留代码相关的单元测试问题 1. 为什么遗留代码的测试那么难? 2. 遗留代码的测试策略和技术 3. 练习:为遗留代码编写测试 |
测试优先和测试驱动开发 内容六:测试优先 1. 测试优先的可行性和必要性 2. 测试优先和传统测试策略的比较 内容七:测试驱动开发 1. 测试驱动开发案例演示 2. 测试驱动开发的方法 3. 练习:使用测试驱动开发方法编写代码 |
组织级的单元测试关注 内容八:如何在组织级成功导入单元测试实践 1. 单元测试的组织和管理 2. 单元测试和持续集成 3. 组织级导入单元测试的常见问题和应对方案 |