什么是测试驱动开发(Test-Driven Development)

来源:互联网 发布:人力资源数据分析职位 编辑:程序博客网 时间:2024/05/05 19:37
        不怕被大家笑话,刚才同事手上拿到《测试驱动开发实用指南》这本书时,我还以为是驱动开发方面的书籍呢,仔细翻了一下才知道不是。这本书的英文名称是《Test-Driven Development》,这里的Driven是动词,书名的意思是由测试来带动开发。那什么是Test-Driven Development,在我看来这是一种开发方式,是一种编程理念。就像作者说的一样。他比咖啡因更容易让人上瘾。一旦你“陷入”其中,你将且仅将通过这种方式编程。他是一种这样的开发方式:
  1. Maintain an exhaustive suite of Programmer Tests。维护一套详尽无疑的编程测试。你不得不不断的编写测试去确保你能分类展示恰当的行为。没有测试通过的编程测试,就没有代码的编写。你先编写测试,再编写通过这些测试的代码。系统中不存在没有经过测试响应的代码。
  2. No code goes into production unless it has associated tests。极限编程的信条之一就是:一个特点不会存在直到有一系列与之相关的测试。系统中的都是经过充分测试的代码能给我们信心。
  3. Write the tests first。当你有个任务需要完成的时候,你需要先写出测试这些功能的测试代码,再完成这些功能自身的代码。
  4. Tests determine what code you need to write。仅仅写出那些需要通过最后测试的代码,花少量的时间在你将要写的代码上。你只写出足够通过测试的代码,不要再多。那意味着你做能够工作的最简单的事。
       先写出测试功能的代码,再写出实现功能的代码;测试代码要100%的先于功能代码。这是把测试工作从开发中后期调整到开发前和开发的整个过程。在保证没行代码都有测试代码在前并经过充分的测试,自然会大大降低产品的BUG率。
       当然要实现这种编程方式的转变也并非易事,但一旦我们做了,就将慢慢的把它变成一种习惯,就像作者说的,它很容易让人上瘾。