测试驱动开发训练营

测试驱动开发训练营
    马上咨询


    第一讲:测试驱动开发与软件重构最佳实践(2天,12小时)

    张逸老师  前ThoughtWorks 架构师、敏捷教练

    拥有近10年的软件开发与架构设计经验,主要专注于软件架构、设计模式、领域驱动设计和敏捷开发实践。工作期间,在多个项目担任了软件架构 师,敏捷教练等角色。Bruce熟悉各种开发语言平台,包括Java、C#、Ruby以及Scala等,具有丰富的 企业软件系统和分布式开发经验。他作为咨询师和培训师,多次为惠普、可口可乐、摩托罗拉、第九城市、CA、携程等企业提供过咨询与培训服务,并翻译了和编 写多部著作。

    课程简介

    测试驱动开发训练营以理论讲解结合案例演练,全方位梳理测试驱动开发的流程,帮助学员掌握整洁编码、单元测试与重构的技巧,从而使得学员能够在实际项目开发中合理运用测试驱动开发,提高编码质量,打造高效的开发团队,并在企业中有效推进测试驱动开发实践。

    课程大纲

    第一关 测试加油站

    测试驱动开发的基础是正确地运用框架编写单元测试。要了解什么是单元测试,编写单元测试的价值,并能熟练运用单元测试框架。JUnit框架。
     ·如何创建测试方法
     ·如何运用Rule测试异常
     ·如何运用Parameterized Data
     Mockito
     ·何时需要进行Mock
     ·Mock查询式方法
     ·Mock命令式方法
     ·Mock异常抛出
     ·验证对象的协作
     测试数据准备
     ·各种格式的测试数据
     ·模板的使用
     ·测试数据准备的辅助方法

    第二关 对象健身操

    测试驱动开发的驱动力在于任务分解和测试先行,但如果不具备足够的面向对象设计能力,就会影响到对职责的判断,无法做到有效而合理的对象协作,也无法判断该在何时对功能进行抽象。
     OO的核心要素
     ·理解封装的意义
     ·高内聚松耦合
     ·继承与委派
     ·抽象与多态
     SOLID原则
     ·单一职责原则
     ·开放封闭原则
     ·Liskov替换原则
     ·接口隔离原则
     ·依赖倒置原则

    第三关 重构工具箱

    测试驱动开发的节奏是“红-绿-重构”,没有重构,测试驱动开发就无法保证代码质量,如果不及时发现代码的坏味道,就会导致“破窗效应”,直到代码腐化至难以重构的地步,测试驱动开发带来的红利就被抵消殆尽了。
     代码的坏味道
     ·Long Method
     ·Feature Envy
     ·Switch Statement
     ·迪米特法则
     重构手法运用
     ·Rename Method
     ·Extract Method
     ·Move Method
     ·Extract Class
     ·Push Member Down

    演练
     演练案例:Movie Store
     第四关 TDD修炼

    在具备了单元测试、面向对象设计与重构知识之后,就可以开始TDD的训练了。TDD的工作主要分为任务分解与测试驱动,开发人员需要进行实战演练才能真正体会TDD的好处。本部分将通过一个完整的案例进行实操训练。
     TDD知识
     ·TDD核心
     ·TDD三大定律
     ·FIRST原则
     TDD Kata
     实战案例:Guess Number
     ·任务分解
     ·开始第一个任务
     ·Specification By Example
     ·测试驱动开发的驱动力
     ·Given-When-Then模式
     ·CQS原则
     ·信息专家模式
     ·命名规则
     ·单一职责原则
     ·开始第二个任务
     ·开始第三个任务
     ·开始第四个任务
     ·测试驱动开发需要事先设计吗?
     ·寻找职责的承担者
     ·开始第五个任务
     ·运用依赖注入框架

    第五关 重构到模式

    通过识别代码的坏味道,然后利用重构手法改进代码,逐步形成设计模式,可以有效地避免过度设计,保证编码实现的恰如其分。
     常用设计模式
     ·工厂模式
     ·装饰器模式
     ·适配器模式
     ·模板方法模式
     ·策略模式
     ·访问者模式
     ·职责链模式
     重构到模式实践
     ·重构到策略模式
     ·重构到模板方法模式
     ·重构到装饰器模式
     ·重构到职责链模式
     ·重构到MVC模式
     ·重构到访问者模式
     ·重构到适配器模式

    第二讲:TDD训练营(1天,6小时)

    丁老师 公司级敏捷教练和代码大全、代码设计训练营教练

    13年软件开发经验,8年项目管理和流程改进经验,指导并参多个团队由传统研发模式向敏捷研发模式转型(其中超过100人的大型团队成功项目级敏捷转型5个)。
     在敏捷导入、指导团队转型、CI、核心技术实践、自组织团队建设等方面具有丰富的实战经验;对如何提升员工代码设计能力和代码内在质量、遗留代码重构、架构设计等方面也有较多理解和解决思路;精益创业教练,曾指导多个创业团队产品设计、团队运作、技术架构。

    课程简介

    大量工程实践和研究表明:采用TDD的开发者更少的使用Debugger,更能保持“小步快跑”的开发节奏,对产品质量的信心更大;同时,虽然TDD要求编写更多的代码,但是开发时间往往更短,大量的单元测试使产品代码的质量更高、设计的可测试性更强,更易实现高内聚低耦合的设计,从而加入新需求和缺陷排查所需的时间更短,项目成本更低。根据我们开发、培训和咨询经验,TDD几乎是无法自学的!
     TDD是敏捷开发实践中最重要的一招,同时也是最难的一招。为了掌握TDD,除了了解基本的节奏、步骤和原则,还需要大量的练习和观摩,而一个良好的有教师代领和点拨的开端对学习和掌握TDD有非常大的帮助和作用。

    目标收益

    学习结束后,学员对TDD建立正确、深入的观点和理解,了解测试驱动开发的基本步骤、节奏、原则和常见的误解和错误的做法,可以开始在生产环境中尝试使用测试驱动开发。

    培训对象

    面向企业软件研发团队包括但不限于系统架构师、设计师、开发人员、测试人员等。

    课程大纲

    TDD实战部分

    2 TDD实战部分
     2.1 场景识别
     2.2 用例设计
     2.3 需求实例化
     2.4 用例分类
     2.5 用例重构
     2.6 依赖隔离
     2.7 依赖系统测试用例设计

    重构实战

    3 TDD的手段之重构
     3.1 代码的腐化
     3.2 代码22种坏味道
     3.3 重构实战
     3.4 演练-展示-点评-总结
     3.5 4个需求变化方向