TDD培训总结

       TDD全称Test Driven Development,中文为测试驱动开发,顾名思义以测试来驱动开发,他的基本思路就是通过测试来推动整个开发的进行,但不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。先编写单元测试用例代码,测试代码确定需要编写什么功能代码实现,并在功能代码的开发实现中去不断的重构。

       TDD遵循的原则如下:

  • 独立测试:不同代码的测试应该相互独立,一个类对应一个测试类,一个方法对应一个测试方法。用例也应各自独立,每个用例不能使用其他用例的结果数据,结果也不能依赖于用例执行顺序。 
  • 一个角色:开发过程包含多种工作,如:编写测试代码、编写产品代码、代码重构等。做不同的工作时,应专注于当前的角色,不要过多考虑其他方面的细节,也就是说在写单元测试的时候要从需求出发而不是考虑具体的实现。
  • 测试案例列表:代码的功能点可能很多,并且需求可能是陆续出现的,任何阶段想添加功能时,应把相关功能点加到测试案例列表中,然后才能继续手头工作,避免疏漏。
  • 测试驱动:即利用测试来驱动开发,是TDD的核心。要实现某个功能,要编写某个类或某个方法,应首先编写测试代码,明确这个类、这个方法如何使用,如何测试,然后在对其进行设计、编码。
  • 断言很重要:编写单元测试时,应该首先编写判断代码功能的断言语句,然后编写必要的辅助语句。
  • 可测试性:产品代码设计、开发时的应尽可能提高可测试性。每个代码单元的功能应该比较单纯,每个类、每个方法应该只做它该做的事,应多考虑使用子类、继承、重载等OO方法。
  • 及时重构:对结构不合理,重复等“味道”不好的代码,在测试通过后,应及时进行重构。同时遵循OO思想
  • 小步前进:软件开发是复杂性非常高的工作,小步前进是降低复杂性的好办法。

      优缺点:

  • 优点:作为一种编程思想,的确不错,可以站在一个高度去思考问题。
  • 缺点:正因为他是站在一个高度去思考问题,因此可操作性很低,同时进度成本的开销很大,如果完全照搬那么普通的一天开发量(功能实现+单元测试)在采用TDD的思想去实现的话预估需要5天。

你可能感兴趣的:(TDD)