课程培训
单元测试实战培训课程

单元测试实战培训课程

 

培训对象:

各类 IT/软件企业和研发机构的软件架构师、软件设计师、程序员。对于怀有设计疑问和问题,需要梳理解答的团队和个人,效果最佳。

 

学员基础:

学员学习本课程应具备下列基础知识:

    1) 了解Java/C#/C++语言;

    2) 简单了解XUnit框架的任何一种;熟悉一种开发工具IDE下单元测试环境。

 

培训大纲

 

  单元测试基础

· 内容一:理解单元测试

o 理解单元测试 第一个单元测试

o 单元测试框架提供了什么功能

o 好的测试是什么样子的

o 为什么要写单元测试,为什么不写单元测试

o 为什么要写"好"的单元测试

o 分析真实项目,如何做单元测试, 已经相关问题

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

· 内容一:理解单元测试XUnit 框架—(以Junit为案例介绍,其他简单介绍)

o Junit设计目标

o 安装和使用JUnit

o 探索JUnit核心

o 参数化测试

o 测试异常

o 超时测试

o 引入Hamcrest匹配器

o JUnit的测试运行器

o 用Suite来组合测试

o Junit与IDE,Ant,Maven集成运行

o JUnit与持续集成工具结合

o 通过案例分析,Junit的最佳实践

 单元测试设计

· 内容一:构思单元测试

o 单元测试模型的设计

o 单元测试用例设计

o 为系统运行起来而设

o 为正向测试而设计

o 为逆向测试而设计用例

o 为满足特殊需求而设计用例

o 为代码覆盖而设计用例

o 通过案例分析单元测试编程前的测试用例的设计

· 内容二:单元测试设计—黑盒测试

o 单元测试黑盒设计

o 等价类设计法

o 边界值分析法

o 判定表(决策表)驱动化

o 状态转移测试设计

o 结对测试

o 分类树设计方法

o 用例/场景测试

o 动态分析法

o 通过大量案例分析,如何应用各种黑盒测试设计技术,进行设计单元测试

· 内容三:单元测试设计-白盒测试

o 单元测试白盒设计

o 标识单元测试点

o 语句覆盖

o 判定覆盖

o 基本路径测试法

o 域测试法

o 符号测试法

o Z路径覆盖

o 程序变异

o 白盒测试综合策略

o 最少测试用例数计算

o 测试覆盖准则

o 通过大量案例分析,如何应用各种白盒测试设计技术,进行设计单元测试

· 内容四:单元测试点之测试技术选择

o 单元测试点之断言标准设计

o 单元测试点之测试数据设计

o 单元测试点集成测试场景设计

o 基于设计模式实现代码的单元测试设计(创建、结构与行为)

  单元测试覆盖

· 内容一:逻辑覆盖

o 实施逻辑覆盖的原因

o 语句覆盖

o 判定覆盖

o 条件覆盖

o 条件判定组合覆盖

o 多条件覆盖

o 修正条件判定覆盖

o 结合案例分析,逻辑覆盖的度量

· 内容二:统计测试覆盖--(以Junit为案例分析)

o 使用clover为junit单元测试做覆盖率分析

o 使用Cobertura统计JUnit测试覆盖率

o 结合案例分析,通过测试覆盖率工具,分析覆盖率

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

· 内容一:利用Stub打破依赖关系

o 利用Stub打破依赖关系 使用Stub的例子

o 重构设计以使依赖可被注入

o 分析真实项目,如何使用Stub

· 内容二:通过Mock对象测试交互

o 使用Mock的例子

o 对比基于状态的测试和基于交互的测试

o 分析真实项目,如何使用Mock, 以及相关问题

· 内容三:用好Mock与Stub

o Mock与Stub的区别

o 同时使用Mock和Stub

o 每个测试只使用一个Mock

o 改进代码设计,利于应用Mock和Stub

o Mock和Stub的局限性

o 结合多个案例项目进行分析,什么时间使用Mock ,什么时间使用Stub, 如何权衡

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

· 内容一:设计和代码的可测试性

o 抽取接口,容许替换底层实现

o 在被测类中注入桩对象

o What’s testable design?

o Modular design

o SOLID design principles

o Modular design in context

o Test-driving toward modular design

o Testability issues

o Can’t instantiate a class

o Can’t invoke a method

o Can’t observe the outcome

o Can’t substitute a collaborator

o Can’t override a method

o Guidelines for testable design

o Avoid complex private methods

o Avoid final methods

o Avoid static methods

o Use new with care

o Avoid logic in constructors

o Avoid the Singleton

o Favor composition over inheritance

o Wrap external libraries

o Avoid service lookups

o 结合多个大型案例项目进行分析,如何通过重构代码,实现可测试性

  编写好的单元测试

· 内容一:好的单元测试测试标准-A-TRIP

o 单元测试的自动化-Automatic

o 单元测试彻底的-Thorough

o 单元测试可重复-Repeatable

o 单元测试独立的-Independent

o 单元测试专业的-Professional

o 通过案例分析,分析好的单元测试标准

· 内容二:如何编写好的单元测试测试

o 单元测试中的坏味道

o 如何编写容易被看懂的模式

o 如何编写容易维护的模式

o 如何编写信得过的模式

o 重构单元测试,改进代码设计

o 结合多个案例项目进行分析,分析什么是好的单元测试

 TDD测试驱动开发基础

· 内容一:好的单元测试测试标准-A-TRIP

o TDD的节奏

o TDD的两个原则和TDD的目标

o TDD与行为驱动开发(Behaviour Driven Development)

o TDD与验收测试驱动开发(Acceptance Test Driven Development)

o 识别代码中的坏味道

o 重构工具及使用

o 常用重构技巧

o 重构与预先设计的区别

o 通过案例分析,TDD的最佳实践技巧,重构的技巧,坏味道等

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

· 内容一:遗留系统代码环境下如何编写单元测试

o 从哪里开始添加单元测试

o 确定抉择策略1-容易优先测类的优缺点

o 确定抉择策略2-困难优先测类的优缺点

o 遗留代码改动准则

o 重构前写集成测试

o 遗留代码整洁测试的常用工具

o 童子军原则

o 为第三方代码做学习测试

o 复杂遗留系统之中,如何增加单元测试以及遇到的问题

o 通过真实案例分析,在遗留系统的的难度和最佳实践

 单元测试组织和管理

· 内容一:组织和管理测试

o 通过自动构建脚本运行测试

o 将测试与代码做同源版本管理

o 根据速度和类型为测试分类

o 创建和维护项目的测试辅助设施

o 结合我们研发中心, 如何做单元测试管理, 已经如何组织,以及遇到的问题

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

· 内容一:将测试引入到你的组织中

o 如何成功在组织中引入单元测试

o 为什么在组织中引入单元测试的努力会失败

o 如何将测试集成到开发流程中 - 敏捷测试流程

o 常见的疑惑和解答?

o 通过多个研发中心咨询经验,分析单元测试引入的方式和最佳实践

 

 




如果您想学习本课程,请预约报名
如果没找到合适的课程或有特殊培训需求,请订制培训
除培训外,同时提供相关技术咨询与技术支持服务,有需求请发需求表到邮箱soft@info-soft.cn,或致电4007991916
技术服务需求表点击在线申请

服务特点:
海量专家资源,精准匹配相关行业,相关项目专家,针对实际需求,顾问式咨询,互动式授课,案例教学,小班授课,实际项目演示,快捷高效,省时省力省钱。

专家力量:
中国科学院软件研究所,计算研究所高级研究人员
oracle,微软,vmware,MSC,Ansys,candence,Altium,达索等大型公司高级工程师,项目经理,技术支持专家
中科信软培训中心,资深专家或讲师
大多名牌大学,硕士以上学历,相关技术专业,理论素养丰富
多年实际项目经历,大型项目实战案例,热情,乐于技术分享
针对客户实际需求,案例教学,互动式沟通,学有所获
报名表下载
联系我们 更多>>

咨询电话010-62883247

                4007991916

咨询邮箱:soft@info-soft.cn  

 

微信号.jpg

  微信咨询

随时听讲课

聚焦技术实践

订制培训 更多>>