测试驱动介绍

测试驱动介绍

 

1.               简介

测试驱动的英文:Test-Driven Development,简称TDD

TDD的核心是:先测试再开发。

TDD的原则是:没有测试,不要写代码;只写正好能通过测试的代码等等。

TDD背后的思想:简单设计、代码就是文档、针对接口编程、迭代、重构

2.               TDD的大致开发过程

     

3.               TDD的价值

1.  一开始明确目标。保证是“做正确的事”

2.  对自己的代码会非常有信心

3.  支持重构,不要担心对现有代码的修改会破坏现有的功能;不会发生改一个BUG,产生10BUG的问题;无用的代码敢于删除而不是留大段大段的注释

4.  减少了在测试上的投入。TDD是自己测试自己开发的代码,大大减少了测试人员的数量。

5.  质量会越做越好。一旦发现BUG,就补充测试程序使能发现这个BUG

6.  针对接口设计,提升设计水平

7.  可以取代详细设计

4.               TDD的可行性

4.1            TDD的一些疑问

1.  自己测试自己的开发,真的有用吗?

a)       有用。测试是从另一个角度思考问题,往往会发现一些从开发的角度难以发现的问题。

b)       TDD不能取代代码审查

2.  开发人员的工作量变大了。以前只需要写开发代码,现在还需要写测试代码

a)       首先测试代码很简单,一般是由一些“断言”组成

b)       其次,从测试去考虑,能更加容易明确目标,从而能少走弯路,根据我自己的经验,用TDD后,我的开发代码基本是一次成功

c)       第三,TDD能有效减少debug时间,借助测试平台,能直接对后台类进行测试,如果没有TDD,只能运行程序,经过一系列的界面和操作(登录、视图界面、维护界面、输入、点击按钮)才能测试

d)       第四,TDD能大幅度降低维护量,而对多数的项目,维护的工作量并不比开发工作量小。一是因为有测试,代码质量提高,BUG少而维护自然少,二是因为有测试,改代码时不会缩手缩脚。

e)       另外,并不是所有的类都要写对应的测试类,只有业务类才需要。

f)       所以,结论是:没有增加,只有减少。

3.  有了TDD后,是否就不需要其它测试了?

a)       其它测试仍然需要,但可以大幅减少

b)       TDD主要是针对后台,不支持对界面的测试(工具限制)。所以界面的美观、可用性仍然要靠人工测试。

4.2            TDD的难点

有这么多好处的东西,如果不需要付出一点代价,是不可能的,TDD是需要一些基础的:

1.  对开发人员的要求高了。测试代码虽然简单,但要知道怎么才能证明自己要开发的代码是正确的并不容易。

2.  要有一个工具支持。否则测试代码和开发代码怎么结合?

3.  要建立专门的TDD数据库。根据我的经验,TDD中最困难的部分就是测试数据。

4.3            可行性

当下面的两个条件具备时,TDD就是可行的

1.  开发人员理解了TDD的思想,认识到TDD的作用,相信TDD能给自己带来好处

2.  有合适的工具和指导

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值