中培IT学院

单元测试+重构软件培训方案

浏览:254次 作者:小编

培训背景

在每个现代软件的构造阶段,测试这一实践都扮演着中心角色。过去那种先编写代码,然后有空的时候再测试(或者根本不测试)的日子已经一去不返,因为大多数开发人员现在认识到需要采用编码和测试彼此交织、同步推进的软件方法论,以便尽早发现 bug,在开发过程开始的时候就识别出主要的风险。
本培训系统全面地介绍了单元测试技术、方法以及原则,同时通过静态分析Java/C#/C++/C语言程序常见代码发现隐形Bug,而如何采用工具提高单元测试效率,则由讲解使用XUnit等单元测试工具实现,最后使用代码重构改进代码质量和可测性。

 

培训收益

通过本次培训,您将深入了解并掌握持续交付的核心概念和实践方法。您将学习到TDD(测试驱动开发)的理念,以及如何在项目中有效应用这一方法。此外,您还将掌握单元测试的基本概念,学习如何设计高质量的单元测试用例,并应用单元测试框架进行实践。

本次培训还将涉及多种技术平台和编程语言的单元测试实战,让您在实际项目中能够灵活运用所学知识。同时,您还将学习到如何提高单元测试的效率,掌握单元测试的最佳实践经验,从而实现代码质量的度量和提升。

除了单元测试方面的内容,本次培训还将介绍代码覆盖率分析的重要性及方法,以及如何进行Code review,提升代码质量。此外,您还将深入了解面向对象设计原理与原则,掌握重构实践的方法,学习如何将代码重构为符合设计模式的优质代码。

通过本次培训,您将全面提升自己在软件开发领域的专业能力和实践经验,为未来的职业发展奠定坚实的基础。

 

日程安排

章节

授课内容




持续交付

· 软件研发交付面临的挑战

· 持续交付的研发流程

· 使用高质量的单元测试提高开发期质量的反馈

· 应用CI进行每日构建以频繁地交付可工作的软件

· 基本脚本的自动化部署缩短系统部署时间

· 自动化的回归功能测试加速UAT测试

单元测试概述

· 什么叫单元测试?

· 为什么要做单元测试

· 单元测试实施流程

· 单元测试代码的编写规范

· 单元测试策略

· 单元测试用例设计

· 单元测试覆盖率分析

· 单元测试报告模板

 
基于单元测试的开发习惯

· 开发过程是否需要单元测试

· 是先代码开发,还是先单元测试

· 进行Debug是否可以替代单元测试

· 什么时间展开单元测试

· 单元测试的粒度(函数级别吗?)

· 单元测试与代码开发的时间比例关系

· XP中的TDD实施过程

 
TDD-测试驱动开发

· TDD开发优势、价值

· TDD开发过程

· TDD开发模式

· TDD实践过程的问题、难点解决方案

 
单元测试代码结构

· 实现代码结构与单元测试代码结构对比

· 单元测试代码结构的可复用性

· 单元调用接口替身代码结构

· 集成单元测试代码结构

 
实现代码结构分析

· 实现代码语句分析

· 实现代分支、循环分析

· 实现代码路径分析

· 实现代码条件分析

· 标识测试点

 
单元测试用例设计

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

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

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

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

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

 
应用单元测试框架实践单元测试

· 单元测试框架概述

· 编译单元测试框架源代码

· 使用断言编写单元测试用例

· 使用Fixture机制灵活支持单元测试

· 使用参数化批量定义单元测试用例

· 使用运行参数控制测试用例执行

· 使用工具生成单元测试覆盖率报告




多种技术平台编程语言单元测试实战

· 使用JSUnit、JSMock实践Javascript单元测试

· Java语言单元测试实践:

· 使用JUnit/TestNG框架实施Java代码的单元测试

· 使用MockIto框架实施隔离测试

· 使用Spring Test API实践Spring框架单元测试

· 使用DBUnit框架实施基于数据库的单元测试

· C#语言单元测试实践

· 使用MSTest实施C#代码的单元测试

· 使用RhinoMock框架实施隔离测试

· C++语言单元测试实践

· 使用Google Test框架实施C++代码的单元测试

· 使用Google Mock框架实施隔离测试

· C语言单元测试实践:使用Cmockery框架

· 使用SQLUnit实践数据库存储过程单元测试

案例:使用单元测试框架进行单元测试案例实践
 
单元测试效率(缩短单元测试时间)

· 测试的全面性与测试效率

· 函数级别单元测试与测试效率

· 简单且可运行实现代码的测试效率

· 将单元测试代码集成到CI过程中

 
使用Mock实现测试隔离

· Mock对象的设计和应用原则

· 如何编写Mock和Stub

· 使用Mock框架实现测试隔离

· Mock和Stub的最佳实践

 
单元测试最佳实践经验

· 根据架构设计分析单元测试策略

· 基于软件需求、技术设计单元测试用例

· 自动化回归单元测试用例

· 生成、分析单元测试覆盖率报告

 
Test Review技巧

· 如何Review已有单元测试代码

· 分析单元测试覆盖率报告以发现问题

· 分类测试问题以实现单元测试的可读性和可维护性

· 案例分析开源项目的单元测试方案

 
遗留代码的单元测试导入与改进

· 设计解耦分离解决方案

· 测试已有代码的方法和策略

· 通过重新设计改进代码可测性

· 针对不可测代码的解决方案




静态测试

· 静态测试的目的

· 静态测试的原则

· 静态测试实战

· 案例:使用CheckStyle,PMD,Findbugs进行校验代码规则 , 发现重复代码,检查代码注释率

 
实现代码质量的度量

· 代码质量的度量

· Chidamber & Kemerer度量,

· Depth of Inheritance Tree(DIT)

· Number of Childre(NOC)

· Response for a Class(RFC)

· Afferent/Efferent Couplings(CA/CE)

· Lack of cohesion in methods(LCOM)

· 业界其他度量标准

 
Code review

· Code review的原则

· Code review前期准备

· Code review的代码量

· Code review的缺陷检查表

· Code review实战

· 案例:使用Eclipse插件执行Code review活动

 
代码覆盖率分析

· 代码覆盖率的意义

· 代码覆盖率工具介绍

· 代码覆盖率实战

· 代码覆盖率分析

· 案例:使用 CodePro进行覆盖测试

 
使用重构提高代码可测试性
面向对象设计原理与原则

· 开-闭原则(Open-Closed Principle)

· 里氏代换原则(Liskov Substitution Principle)

· 依赖倒换原则(Dependence Inversion Principle)

· 接口隔离原则(Interface Segregation Principle)

· 合成、聚合复用原则(Composite Aggregate Reuse Principle)

· 迪米特法则(Law of Demeter)

 
重构实践

· 分析并初步重构一个案例

· 重构原则

· 代码的坏味道

· 构筑测试体系

· 重构工具

· 优秀程序结构的风格

· 如何观察代码

· 重构名录

· 重新组织函数与属性

· 重新组织对象关系

· 简化表达式

· 组织继承体系

· 如何让重构成为习惯

· 重构案例实践与分析

· 重构工具

· 案例:使用Eclipse/VS.NET工具进行重构实战




 
使用重构提高代码可测试性
重构到模式

· 设计模式概述

· 设计模式历史,描述,分类,应用

· 使用模式的预先设计

· 过度使用设计模式后果分析

· 通过重构实现、趋向和去除滥用模式

· 代码的坏味道:过度设计、设计不足

· 构筑测试体系

· 演进式设计

 
案例---重点介绍重构基本类型依赖和对应模式

· 通过案例学习以下重构到模式手段

· 以State取代状态改变条件语句

· 以Strategy取代条件逻辑

· 以Composite取代隐含树

· 以Interpreter取代隐式语言

· 转移装饰功能到Decorator

· 用Builder封装Composite

 
案例---重点介绍重构代码重复和对应模式

· 通过案例学习以下重构到模式手段

· 构造Template Method

· 以Composite取代一/多之分

· 引入Null Object

· 用Adapter统一接口

· 用Fatory Method引入多态创建

 
案例---重点介绍重构代码过长/过大的类/方法和对应模式

· 转移聚集操作到Vistor

· 以Strategy取代条件逻辑

· 以Command取代条件调度程序

· 转移聚集操作到Collecting Parameter

 
案例---重点介绍条件逻辑过度复杂和对应模式

· 以Strategy取代条件逻辑

· 以State取代状态改变条件语句

· 转移装饰功能到Decorator

· 引入Null Object

· 以Command替换条件调度程序

· 转移聚集操作到Visitor


企业内训1 企业内训1
标签: 软件重构 软件重构培训 单元测试 软件重构课程

上篇: iOS与Android的UX/UI设计培....

下篇: 传统项目交付与敏捷技术培训方案