单元测试

1 单元测试基础

1.理解单元测试
2.单元测试框架提供了什么功能
3.好的测试是什么样子
4.为什么要写单元测试,为什么不写
5.为什么要写好的单元测试
6.分析真实项目,如何做单元测试

2 理解单元测试框架——XUnit工具

1. Junit设计目标
2.安装和使用JUnit
3.探索JUnit核心
4.参数化测试
5.测试异常
6.超时测试
7.引入Hamcrest匹配器
8.JUnit的测试运行期
9.用Suite来组合测试
10.JUnit与IDE, Ant, Maven集成运行
11.JUnit与持续集成工具的结合
12.通过案例分析,JUnit的最佳实践

3 单元测试设计

3.1 构思单元测试

1.单元测试模型的设计
2.单元测试用例设计
3.为系统运行起来而设计
4.为正向测试而设计用例
5.为逆向测试而设计用例
6.为满足特殊要求而设计用例
7.为代码覆盖而设计用例
8.通过案例分析单元测试,编程前的测试用例的设计

3.2 单元测试设计——黑盒测试

1.单元测试黑盒设计
2.等价类设计法
3.边界值分析法
4.判定表(决策表)驱动化
5.状态转移测试设计
6.结对测试
7.分类树设计方法
8.用例/场景测试
9.动态分析法
10.通过大量案例分析,如何应用各种黑盒测试设计技术,设计单元测试

3.3 单元测试设计——黑盒测试

1.单元测试白盒设计
2.标识单元测试点
3.语句覆盖
4.判定覆盖
5.基本路径测试法
6.域测试法
7.符号测试法
8.Z路径覆盖
9.程序变异
10.白盒测试综合策略
11.最少测试用例数计算
12.测试覆盖准则
13.通过大量案例分析,如何应用各种白盒测试设计技术,设计单元测试

3.4 单元测试点之测试技术选择

1.单元测试点之断言标准设计
2.单元测试点之测试数据设计
3.单元测试点集成测试场景设计
4.基于设计模式实现代码的单元测试设计(创建、结构与行为)

4 单元测试覆盖

4.1 逻辑覆盖

1.实施逻辑覆盖的原因
2.语句覆盖
3.判定覆盖
4.条件覆盖
5.条件判定组合覆盖
6.多条件覆盖
7.修正条件判定覆盖
8.结合案例分析,逻辑覆盖度量

4.2 统计测试覆盖——(以JUnit为例)

1.使用clover为JUnit单元测试做覆盖率分析
2.使用Cobertura统计JUnit测试覆盖率
3.结合案例分析,通过测试覆盖率工具,分析覆盖率

5 单元测试之中如何解耦依赖

5.1 利用Stub打破依赖关系

1.利用Stub打破依赖关系
2.重构设计以使依赖可被注入
3.分析真实项目,如何使用Stub

5.2 通过Mock对象测试交互

1.使用Mock的例子
2.对比基于状态的测试和基于交互的测试
3.分析真实项目,如何使用Mock,以及相关问题

5.3 用好Mock与Stub

1.Mock与Stub的区别
2.同时使用Mock和Stub
3.每个测试只使用一个Mock
4.改进代码设计,利于应用Mock和Stub
5.Mock和Stub的局限性
6.结合多个案例进行分析,什么时间使用Mock,什么时间使用Stub,如何权衡

6 增强设计与代码的可测试性

1.抽取接口,容许替换底层实现
2.在被测试类中注入桩对象
3. What’s testable design?
4. Modular design
5. SOLID design principle
6. Modular design in context
7. Test-driving toward modular design
8. Testability issues
9. Can’t instantiate a class
10. Can’t invoke a method
11. Can’t observe the outcome
12. Can’t substitute a collaborator
13. Can’t override a method
14. Guidelines for testable design
15. Avoid complex private methods
16. Avoid final methods
17. Avoid static methods
18. Use new with care
19. Avoid logic in constructors
20. Avoid the Singleton
21. Favor composition over inheritance
22. Wrap external libraries
23. Avoid service lookups
24. 结合多个大型案例项目进行分析,如何通过重构代码,实现可测试性

7 编写好的单元测试

7.1 好的单元测试标准——A-TRIP

1.单元测试的自动化——Automatic
2.单元测试彻底的——Thorough
3.单元测试可重复——Repeatable
4.单元测试独立的——Independent
5.单元测试专业的——Professional
6.通过案例分析,分析好的单元测试标准

7.2 如何编写好的单元测试

1.单元测试中的坏味道
2.如何编写容易被看懂的模式
3.如何编写容易维护的模式
4.如何编写信得过的模式
5.重构单元测试,改进代码设计
6.结合多个案例项目进行分析,分析什么是好的单元测试

8 TDD测试驱动开发基础

1.TDD的节奏
2.TDD的两个原则和TDD的目标
3.TDD与行为驱动开发(Behaviour Driven Development)
4.TDD与验收测试驱动开发(Acceptance Test Driven Development)
5.识别代码中的坏味道
6.重构工具及使用
7.常用重构技巧
8.重构与预先设计的区别
9.通过案例分析,TDD的最佳实践技巧,重构的技巧,坏味道等

9 历史遗留系统如何编写单元测试

1.从哪里开始添加单元测试
2.确定抉择策略1——容易优先册类的优缺点
3.确定抉择策略2——困难优先测类的优缺点
4.遗留代码改动准则
5.重构前些集成测试
6.遗留代码整洁测试的常用工具
7.童子军原则
8.为第三方代码做学习测试
9.复杂遗留系统之中,如何增加单元测试以及遇到的问题
10.通过真实案例分析,在遗留系统的难度和最佳实践

10 单元测试组织和管理

1.通过自动构建脚本运行测试
2.将测试与代码做同源版本管理
3.根据速度和类型为测试分类
4.创建和维护项目的测试辅助设施
5.结合我们研发中心,如何做单元测试管理,以及如何组织,遇到的问题

11 在研发团队如何引入单元测试

1.如何成功在组织中引入单元测试
2.为什么在组织中引入单元测试的努力会识别
3.如何将测试集成到开发流程中——敏捷测试流程
4.常见的疑惑和解答?
5.通过多个研发中心咨询经验,分析单元测试引入的方式和最佳实践

你可能感兴趣的:(单元测试)