学习TDD:TDD的好处

发表于:2012-6-20 10:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:m13666368773    来源:51Testing软件测试网采编

  提供文档

  你是不是经常遇到看不懂的代码? 这些代码可能没有任何文档说明, 而且开发代码的人可能早就走了(或者去度假了)。 当然看到这种代码的时间往往也很不合时宜, 可能是凌晨3点, 也可能有位副总在你旁边大声催促着赶快解决问题, 这样要想花些时间来愿作者的意图就更困难了。 我们见过一些好的单元测试文档, 它们会指出系统要做什么。 测试就像原开发人员留下的记号, 可以展示他们的类具体是怎么工作的。

  改善设计

  编写测试能改善设计。 测试有助于你从界面的角度思考, 测试框架也是代码的客户。 测试能让你考虑得更简单。 如果你确实遵循了“尽量简单而且行之有效”的原则, 就不会写出篇幅达几页的复杂算法。 要测试的代码通常依赖性更低, 而且相互之间没有紧密的联系, 因为这样测试起来更容易。 当然, 还有一个额外的作用, 修改起来也会更容易!

  鼓励重构

  利用一套健壮的测试集, 你能根据需要进行重构。 你是不是经常遇到一些不知是否该修改的代码? 种种的顾虑让你行动迟缓, 过于保守, 因为你不能保证所做的修改会不会破坏系统。 如果有一套好的单元测试集, 就能放心的进行重构, 同时能保证你的代码依然简洁。

  提高速度

  编写这么多测试会不会使开发速度减慢呢? 人们经常会以速度(或开发开销)作为反对进行TDD和使用xUnit框架的理由。 所有的新的工具都会有学习曲线, 但是一旦开发人员适应了他们选择的框架(通常只需要很短的时间), 开发速度实际上会加快。 一个完备的单元测试集提供了一种方法对系统完成回归测试, 这说明, 增加一个新特性之后, 你不必因为怀疑它会不会破坏原系统而寝食难安。

  提供反馈

  单元测试还有一个经常被忽略的优点, 即开发的节奏。 尽管看上去好像无关紧要, 但通过测试之后你会有一种完成任务的成就感! 你不会成天地修改代码而没有任何反馈, 这种测试-代码-测试的方法会鼓励你动作幅度小一些 通常修改一次代码的时间仅仅几分钟而已。 这样你不会一下子看到冒出一大堆新的特性, 而只是让代码每次前进一小步。

  TDD所带来的好处是否被过度的夸大?

  当需要进行测试时,我信守下面的经验主义的做法:

  ● “先测试”还是“后测试”并不重要,只要你是在测试。

  ● 在你的开发过程中尽可能早的考虑测试。

  ● 不要让某个框框限制了你的行动。例如,不要轻信那些人告诉你的、要写出“尽可能简单的能够运行的程序”—也就是所谓的YAGNI—的话。如果你的经验告诉你,未来你会用到这个额外的类—虽然现在用不着,你应该相信你的判断,加上这个类。

  ● 记住,功能测试是真正对用户有意义的测试。单元测试只是为你—开发者—服务的。属于奢侈品。如果你有时间去写单元测试,那最好了:当你的程序出现问题时,它们能帮助你省去很多时间。但如果你没有时间,你要确保功能测试能覆盖到你的产品里用户所期望的所有功能点。

  ● 如果你没有做驱动测试开发,不要有任何的不安。有太多的因素都能导致这种开发方法在众多的项目和个人开发习惯中水土不服(有很多因素那些TDD极端主义者们永远都不会提)。

  TDD( 测试驱动开发) Overview

  第一篇技术博客,希望有人支持,您的关注是我的动力。。。

  本文主要是基于本人的开发经验,概叙一下TDD,也就是测试驱动开发。我比较喜欢用问题方式来写,语言水平有限 希望读者看得懂且有帮助

  TDD这个东西 你一般用了之后会上瘾:) 它可能改变你以后的编程习惯

  什么是TDD

  故名思意就是用测试的方法驱动开发。简单说就是先写测试代码,再写开发代码,和传统的方式是反的。

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号