编写单元测试的10条理由

Anna写了一篇10 reasons to write unit tests的文章,原文已经打不开,不过其观点还是非常不错的。本文摘录如下:
  1. 不要让客户发现难堪的bug。在bug进入产品生产环节前编写足够的测试场景来捕获它们。
  2. 对于复杂的场景,快速测试它,不必在程序中手动地重现去它们。
  3. 经常测试,在你离开的时候程序便不会出错。你不可能总能了解你所编写代码的各种可能情况,尤其最初的程序并不一定是由你编写的。
  4. 尽早测试,就不需要编写一些不必要的代码,而可只关注关键部分。这可以使得代码库精简且易于维护。同样可以节约开发时间。
  5. 同一代码不必两番调试。一旦你测试发现可能的bug后,你便可以快速地修正它。
  6. 可以确保可读性。单元测试可使代码的意图易于理解。
  7. 确保可维护性。进行单元测试可迫使你更好地实现封装功能,从而使代码易于维护而且方便增加新功能。
  8. 重构时无需担心。运行测试可确保一切功能如预期实现。
  9. 节省测试时间。你可以将整个CPU用来执行单元测试。
  10. 更安全。对于增加一个新功能或者修改部分程序内核后你是否经常会感到担心呢?(进行单元测试后)这一切不再了。
  11. 中奖:确切知道哪里出问题了。取代盲目的发现bug,测试可以告诉你问题及原因所在。举例:程序会告诉你什么时候cart中增加了一个条目而cart显示仍然是空的。它也会告诉你某个试图增加的条目失败了。
  你是怎么看的呢?欢迎发表评论。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-08-01 16:51:28

编写单元测试的10条理由的相关文章

《编写高质量Python代码的59个有效方法》——第10条:尽量用enumerate取代range

第10条:尽量用enumerate取代range 在一系列整数上面迭代时,内置的range函数很有用. 对于字符串列表这样的序列式数据结构,可以直接在上面迭代. 当迭代列表的时候,通常还想知道当前元素在列表中的索引.例如,要按照喜好程度打印出自己爱吃的冰淇淋口味.一种办法是用range来做. 与单纯迭代f?lavor_list或是单纯使用range的代码相比,上面这段代码有些生硬.我们必须获取列表长度,并且通过下标来访问数组.这种代码不便于理解. Python提供了内置的enumerate函数,

使用Java与XSLT的10条技巧

技巧 在我的新书<Java and XSLT>中介绍了Java与XSLT的技术组合.这篇文章从书中选出了我认为非常重要的10条技巧.但实际上这有限的10条只是粗略的描述了什么是可能的.其中大多数都集中在Java与XSLT的组合上,而不是在XSLT(可扩展样式表转换)技术规范.而更详细的信息,在文章结尾处指出了一些有价值的资源. 基本的XSL转换是非常简单的:一个或多个包含着指令的XSLT样式表,这些指令定义了如何把XML数据转换成其他格式.XSLT处理器完成实际的工作:Sun微系统的Java

10条建议 着手开始Web2.0实施

专家精选10条建议助你着手构建一个更动态的Web站点,跃入Web2.0时代-- 如今Web2.0的宣传铺天盖地,很难找到一个可靠的策略来让公司的网站更加动态.在这里我们给出10条建议,这些建议均来源于领先的已经铺平道路的专家和IT经理.它们将帮助你接触Web2.0,并且理解它的生产力.力量和存在的问题. 1 使用WordPress或者TypePad开始blog 这两家网站提供免费的hosting和简单的.只需要几分钟就可以掌握的工具.值得关注的还有,两家公司还出售一种公司版本的博客软件(Type

如何像NASA顶级程序员一样编程 —— 10条重要原则

引言: 你知道 NASA 顶级程序员如何编写关键任务代码么?为了确保代码更清楚.更安全.且更容易理解,NASA 的喷气推进实验室制定了 10 条编码规则. NASA 的开发者是编程界最有挑战性的工作之一.他们编写代码并将开发安全的关键任务应用程序作为其主要关注点. 在这种情形下,遵守一些严格的编码规则是重要的.这些规则覆盖软件开发的多个方面,例如软件应该如何编码.应该使用哪些语言特性等. 尽管很难就一个好的编码标准达成共识,NASA 的喷气推进实验室(JPL)遵守一个编码规则,其名为"十的次方:

无痛 SQL Schema 的10 条军规

在新建表和数据仓库时,往往需要做出许多决定.一些在当时看起来似乎是无关紧要的决定,却最终会导致你和你的客户在使用数据库的整个过程中饱尝痛苦. 我们已经和数千人以及他们的数据库打过交道了,在经历了无数个小时的读写查询之后,可以说我们几乎见过所有的情况了.下面是我们总结出的有助于创建无痛模式(Schema)的10条规则. 1. 只使用小写字母,数字和下划线 不要在数据库.模式.表格或者列名上使用点.空格或者破折号.因为点号是用来识别对象的,通常只在 database.schema.table.col

有助于面试的10条PHP编程习惯

过去的几周对我来说是一段相当复杂的经历.我们公司进行了大裁员,我是其中之一,但却体验到了其中的乐趣.我从来没有被开除过,所以很难不去想得太多.我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人,所以我寄去了简历并获得了面试机会.在面试之间,我和其主要的程序员们在咨询电话中聊了聊,最后他们给我出了一套测试题,其中有一道很耐人寻味. 找出以下代码的错误之处: <?function baz($y $z) { $x = new Array(): $x[sales] = 60: $x[profit]

增强应用“可用性”的10条设计原则

众所周知,如果开发者想发布一款iOS应用,必须提交苹果应用商店审查.苹果可能以各种各样的理由驳回你的申请,所幸苹果也把审查的规矩讲很清楚.通过审查的必备条件之一是你的应用必须有很高的"可用性".何谓可用性也?你可以去查这份叫做iOS Human Interface Guidelines的指导手册,更方便的是直接阅读从中提炼出的10条精华小贴士! 1 控制器看起来是可触摸的 应用的控制器应该有圆润平滑的轮廓,让人一看就想摸.(锯齿什么的,不要.) 2 结构整洁便于导航 充分利用iOS的导

JUnit一个回归测试框架用于Java开发人员编写单元测试

通过本文的介绍,您可以了解到什么是 Jhttp://www.aliyun.com/zixun/aggregation/29926.html">Unit,它有什么用处,JUnit 4.10 有什么新特性,并且如何应用. JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),主要供 Java 开发人员编写单元测试.在极限编程和重构中被极力推荐使用的一个工具,因为它可以大大地提高开发的效率.那么大家就

将 Web 应用性能提高十倍的10条建议

将 Web 应用性能提高十倍的10条建议 提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于历史上的最高点.如果你的网站不能及时的响应,或者你的 app 不能无延时的工作,用户会很快的投奔到你的竞争对手那里. 举一个例子,一份亚马逊十年前做过的研究可以证明,甚至在那个时候,网页加载时间每减少100毫秒,收入就会增加1%.另一个最近的研究特别强调一个事实,