单元测试+重构软件培训方案
浏览:368次 作者:小编培训背景
在每个现代软件的构造阶段,测试这一实践都扮演着中心角色。过去那种先编写代码,然后有空的时候再测试(或者根本不测试)的日子已经一去不返,因为大多数开发人员现在认识到需要采用编码和测试彼此交织、同步推进的软件方法论,以便尽早发现 bug,在开发过程开始的时候就识别出主要的风险。
本培训系统全面地介绍了单元测试技术、方法以及原则,同时通过静态分析Java/C#/C++/C语言程序常见代码发现隐形Bug,而如何采用工具提高单元测试效率,则由讲解使用XUnit等单元测试工具实现,最后使用代码重构改进代码质量和可测性。
培训收益
通过本次培训,您将深入了解并掌握持续交付的核心概念和实践方法。您将学习到TDD(测试驱动开发)的理念,以及如何在项目中有效应用这一方法。此外,您还将掌握单元测试的基本概念,学习如何设计高质量的单元测试用例,并应用单元测试框架进行实践。
本次培训还将涉及多种技术平台和编程语言的单元测试实战,让您在实际项目中能够灵活运用所学知识。同时,您还将学习到如何提高单元测试的效率,掌握单元测试的最佳实践经验,从而实现代码质量的度量和提升。
除了单元测试方面的内容,本次培训还将介绍代码覆盖率分析的重要性及方法,以及如何进行Code review,提升代码质量。此外,您还将深入了解面向对象设计原理与原则,掌握重构实践的方法,学习如何将代码重构为符合设计模式的优质代码。
通过本次培训,您将全面提升自己在软件开发领域的专业能力和实践经验,为未来的职业发展奠定坚实的基础。
日程安排
章节 | 授课内容 |
第 | 持续交付 · 软件研发交付面临的挑战 · 持续交付的研发流程 · 使用高质量的单元测试提高开发期质量的反馈 · 应用CI进行每日构建以频繁地交付可工作的软件 · 基本脚本的自动化部署缩短系统部署时间 · 自动化的回归功能测试加速UAT测试 单元测试概述 · 什么叫单元测试? · 为什么要做单元测试 · 单元测试实施流程 · 单元测试代码的编写规范 · 单元测试策略 · 单元测试用例设计 · 单元测试覆盖率分析 · 单元测试报告模板 · 开发过程是否需要单元测试 · 是先代码开发,还是先单元测试 · 进行Debug是否可以替代单元测试 · 什么时间展开单元测试 · 单元测试的粒度(函数级别吗?) · 单元测试与代码开发的时间比例关系 · XP中的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和Stub · 使用Mock框架实现测试隔离 · Mock和Stub的最佳实践 · 根据架构设计分析单元测试策略 · 基于软件需求、技术设计单元测试用例 · 自动化回归单元测试用例 · 生成、分析单元测试覆盖率报告 · 如何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实战 · 案例:使用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 |
- 标签: 软件重构 软件重构培训 单元测试 软件重构课程
-
下篇: 传统项目交付与敏捷技术培训方案