90%代码覆盖率不一定比70%质量高
测试策略的价值—— 实现高性价比的代码覆盖率
用户并不关心所有的软件bug,所以测试也并不需要找出所有bug。用户只关心影响他核心需求的bug(例如:昨天QQ安全箱导致用户电脑不能上网的Bug),因此除非真正100%的代码覆盖率,否则都有可能遗漏掉用户也许最关心的那5%-10%的Bug。据此可推断出一种场景:假如对用户影响很大的bug在5%的代码中,2个不同的测试策略,1个测试策略的代码覆盖率只有70%但覆盖到了这5%的代码,另1个测试策略的代码覆盖率有90%但未覆盖到这5%的代码。显然,从对用户的影响来看,70%的测试质量比90%的测试质量更高。
现在我们对代码覆盖率应该有一种更进一步的认识:除非100%覆盖否则不一定高覆盖率就一定比低覆盖率的测试质量更高,而决定测试质量的关键在于测试策略(测试宽度和测试深度组合的设计)。好的测试策略会帮助你用更少的时间尽早发现对用户影响最大的一批bug,而不是花费较多的时间去覆盖更高的代码覆盖率,这会影响我们测试进度和测试资源。
如何设计好的测试策略来实现高性价比的代码覆盖率,也是我需要去研究的课题。但我相信这一定是有解的,建议大家可以先从这些纬度来思考和研究:基于风险分析的测试策略设计、何谓风险分析、更深入的了解用户需求及应用场景、软件实现模型、不同测试手段能实现的测试覆盖范围、测试对象提取的测试分析方法等。
除非你有很多测试时间和测试资源实现100%代码覆盖率和100%用户场景覆盖率,否则你只能追求高性价比的代码覆盖率,而不是越高越好的代码覆盖率。
版权声明:本文出自 架构师Jack 的51Testing软件测试博客:http://www.51testing.com/?293557
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。