单元测试------理论篇[3]

发表于:2010-04-30来源:作者:点击数: 标签:单元理论
单元测试------理论篇[3] 单元测试方法 1、 编写单元测试太花时间了。 我们知道,在 开发 时越早发现BUG,就能节省更多的时间,降低更多的风险。 下图表摘自实用 软件度量 (Capers Jones,McGraw-Hill 1991),它列出了准备测试,执行测试,和修改 缺陷 所花

  单元测试------理论篇[3]  单元测试方法 

    1、 编写单元测试太花时间了。

  我们知道,在开发时越早发现BUG,就能节省更多的时间,降低更多的风险。

  下图表摘自<<实用软件度量>>(Capers Jones,McGraw-Hill 1991),它列出了准备测试,执行测试,和修改缺陷所花费的时间(以一个功能点为基准),这些数据显示单元测试的成本效率大约是集成测试的两倍,是系统测试的三倍(参见条形图)。

  术语:域测试(Field test)意思是在软件投入使用以后,针对某个领域所作的所有测试活动。

  如果你仍然认为在编写产品代码的时候,还是没有时间编写测试代码,那么请先考虑下面这些问题:

  1)、对于所编写的代码,你在调试上面花了多少时间。

  2)、对于以前你自认为正确的代码,而实际上这些代码却存在重大的bug,你花了多少时间在重新确认这些代码上面。

  3)、对于一个别人报告的bug,你花了多少时间才找出导致这个bug 的源码位置。

  回答完这些问题,你一定不再以“太花时间”作为拒绝单元测试的借口。

  2、 运行测试的时间太长了。

  合适的测试是不会让这种情况发生的。实际上,大多数测试的执行都是非常快的,因此你在几秒之内就可以运行成千上万个测试。但是有时某些测试会花费很长的时间。这时,需要把这些耗时的测试和其他测试分开。通常可以每天运行这种测试一次,或者几天一次。

  3、 测试代码并不是我的工作。

  你的工作就是保证代码能够正确的完成你的行为,恰恰相反,测试代码正是你不可缺少的工作。

  4、 我并不清楚代码的行为,所以也就无从测试。

  如果你实在不清楚代码的行为,那么估计现在并不是编码的时候。如果你并不知道代码的行为,那么你又如何知道你编写的代码是正确的呢?

  5、 但是这些代码都能够编译通过。

原文转自:http://www.ltesting.net