在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至,用代码覆盖率来考核测试任务完成情况。但是我相信,你不是为了覆盖率才要求覆盖率的。你需要有意义的覆盖率,以表明你已经很好地测试了该软件。
衡量代码覆盖率相关的问题总是能够引起我的注意。一方面,我经常发现,公司和组织不一定知道他们在测试期间覆盖了多少代码,这确实很令人惊讶!另一方面,对于一些组织来说,代码覆盖率的数字是如此重要,以至于测试的质量和有效性却变得几乎无关紧要了。他们盲目地追逐100%的代码覆盖率,并相信,如果拥有这个数字,该软件将是优秀的,甚至可能是最好的。其实,这样跟不知道你所测试的内容一样危险,实际上可能更危险,因为它可能给你带来错误的安全感。
代码覆盖率可以用来评估软件质量,这是一个很好且有趣的数字,但请务必记住,这是一种手段,而非目的。 我们并不是为了覆盖率而要求覆盖率,因为它应该表明我们在测试软件方面做得很好。如果测试本身没有意义,那么再高的覆盖率也并不意味着软件会更好。重要的目标是确保测试每个代码,而不仅仅是执行代码。没有足够的时间和金钱来全面测试所有内容,至少要确保对所有重要的内容都进行了测试。
这就是说,低覆盖率意味着我们可能测试不足,而高覆盖率本身并不一定与高质量相关联——实际情况要复杂得多。
显然,拥有一个愉快的测试环境,使你拥有“足够”的覆盖率,可以放心使用一个良好、稳定、可维护的测试套件来发布软件ÿ