需要100%的测试覆盖率吗?

发表于:2007-7-03 16:10

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

 作者:Amr Elssamadisy    来源:InfoQ中文站

        多少测试才算够用呢?答案因人而异。有人会告诉你要做到100%的测试覆盖率。另一些人却不这么想,他们认为这个问题的答案因测试代码质量的不同而不同,而衡量测试覆盖率并不能说明这些测试及被测试代码的质量。

        来自ObjectMentor的Tim Ottinger写道:“如果你正在进行真正的TDD,那么你的测试覆盖率应该很高,因为你只有编写出产品级代码才能满足测试的部分。”这很巧妙地表明,TDD对已有代码的测试覆盖率几乎没有什么影响。

        我并不是说代码覆盖率应该很低,只是说随着我们的进展,我们写的每个独立的测试应该对我们的代码覆盖率影响非常小……这是一个很令我感兴趣的想法。
通过示例,Andy Glover向我们说明了代码覆盖的度量可能会给我们带来了错误的安全感。对于代码覆盖的度量可能会告诉你哪些代码没有被测试,但不能准确地告诉你哪些代码被测试过了。同样地,Tobias Schlitt认为:对代码覆盖的度量是很重要的,因为它会告诉我们哪部分是我们没有覆盖到的。

        诚然,一个测试套件的高代码覆盖率根本不能说明代码经过了很好的测试(假如你自己不写代码和测试的话)。但是反过来说是成立的:一个较低的代码覆盖率毫无疑问还是意味着这个测试套件并不充分。就让我来深入分析一下代码覆盖率问题,看看它会给你带来什么吧。
测试大师Testivus认为“结果因情况而异”是最好的解释。对于那些刚开始写测试的人来说:

        现在他写了很多代码,但还没有测试代码,那他还有很长的路要走。此时把重点放在代码覆盖率上的话将会很郁闷,而且毫无用处。他现在最好开始写一些测试并运行这些测试,覆盖率问题是他之后才需要考虑的事情。
对于那些有经验的开发者来说:……所需的测试数量依赖于很多因素,而且在“需要考虑哪些因素”这个问题上,她比我更清楚,毕竟代码是她写的。虽然没有那种简单明了的答案,但她还是足以应付这个事实。
        最后,对于那些只想得到答案的人来说:第三个程序员想得到仅仅是简简单单的答案——即便事实上简简单单的答案并不存在……而且(即便有)他在稍后并不会遵循这些答案。
        就象在这些Blog中说的那样,测试的关注点在于测试给质量检验带来的益处。从这个角度出发,我们应该意识到,对测试覆盖率的度量可以告诉我们遗漏了什么,而不是告诉我们哪些做的很好。

 

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • huamao2006
    2007-8-13 17:02:48

    不要写的像文人一样嘛,没怎么看懂,我觉得一句话,测试就应该用100%的方法(规范、各种测试工具、思想...)去验证1%的问题,就这么简单,哪有那么复杂的文言文。

  • lzh59zxm
    2007-7-19 11:31:48

    个人心中的标准都不一样,要求怎么可能一样,再说,覆盖100%势必肯定会加重开发任务,延长开发时间,愿意看到这种情况出现的公司应该不多吧

  • xhk1
    2007-7-16 16:04:25

    总有一种感觉,这个问题时永远有争议的问题,仁者见仁,智者见智,除非他们建立在某一个标准上来谈的话,可能会有一致的答案。

  • 飞翔的胖鸟
    2007-7-13 14:44:15

    真难懂……
    是没有摘抄全还是有什么之前的文章忘记被拿过来了?

  • liulinzhu
    2007-7-04 08:50:32

    终于明白作者的意思了:刚开始写测试的人,有经验的开发者,想得到答案的人,这三种人对代码覆盖要求是不一致的。

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号