联系我:新浪微博@架构师Jack 或 dongjietest#163.com联系.(#换为@)

90%代码覆盖率不一定比70%质量高

上一篇 / 下一篇  2012-03-19 08:46:43 / 个人分类:正确的测试思想

      51Testing软件测试网 oh/G/s1[ AS"f

         90%代码覆盖率不一定比70%质量高

ATq#T2i2y J0

   测试策略的价值—— 实现高性价比的代码覆盖率    

pk [#]_ |P0

 51Testing软件测试网 tJ3t7BU5[-_7sjyk

 正文: 51Testing软件测试网X0z5o6dd/z MWVec{

   用户并不关心所有的软件bug,所以测试也并不需要找出所有bug。用户只关心影响他核心需求的bug(例如:昨天QQ安全箱导致用户电脑不能上网的Bug),因此除非真正100%的代码覆盖率,否则都有可能遗漏掉用户也许最关心的那5%-10%Bug。据此可推断出一种场景:假如对用户影响很大的bug5%的代码中2个不同的测试策略,1个测试策略的代码覆盖率只有70%但覆盖到了这5%的代码,另1个测试策略的代码覆盖率有90%但未覆盖到这5%的代码。显然,从对用户的影响来看,70%的测试质量比90%的测试质量更高。51Testing软件测试网 j2@ t'w-Kvf/Y

现在我们对代码覆盖率应该有一种更进一步的认识:除非100%覆盖否则不一定高覆盖率就一定比低覆盖率的测试质量更高,而决定测试质量的关键在于测试策略(测试宽度和测试深度组合的设计)。好的测试策略会帮助你用更少的时间尽早发现对用户影响最大的一批bug,而不是花费较多的时间去覆盖更高的代码覆盖率,这会影响我们测试进度和测试资源。51Testing软件测试网9~N1Ak#{yY

如何设计好的测试策略实现高性价比的代码覆盖率,也是我需要去研究的课题。但我相信这一定是有解的,建议大家可以先从这些纬度来思考和研究:基于风险分析的测试策略设计、何谓风险分析、更深入的了解用户需求及应用场景、软件实现模型、不同测试手段能实现的测试覆盖范围、测试对象提取的测试分析方法等。51Testing软件测试网-~/D#Q_hDx

   除非你有很多测试时间和测试资源实现100%代码覆盖率和100%用户场景覆盖率,否则你只能追求高性价比的代码覆盖率,而不是越高越好的代码覆盖率。

;Z7C9l7N.z0

TAG:

whisky328的个人空间 引用 删除 whisky328   /   2015-05-27 20:16:17
5
引用 删除 andrewliang   /   2012-06-29 10:02:57
从绩效角度讲,如果目标是80%,70%就交不了差,90%就是优秀。
like0831的个人空间 引用 删除 like0831   /   2012-06-29 09:32:25
5
kkk3044147的个人空间 引用 删除 kkk3044147   /   2012-06-20 15:37:45
挺有道理的,我们实际工作中就遇到过这个问题,测试策略:用户需求和应用场景
zhou_fin_test的个人空间 引用 删除 zhou_fin_test   /   2012-05-13 15:09:24
对要测试的软件的核心功能设计更多的cases, 或者说检查测试cases是否覆盖了核心功能。

如果覆盖了核心功能而没bug就比较不错。

覆盖率完全是一个辅助手段,主要用来检查那一块没覆盖,为什么?没覆盖的那块是否需要交case。
zhou_fin_test的个人空间 引用 删除 zhou_fin_test   /   2012-05-13 14:58:20
原帖由qg26176570于2012-04-12 12:36:38发表
重点业务,全部走到。其他路径再抽查。
引用 删除 catherinexu   /   2012-05-11 16:56:28
高性价比,说得挺好的,不过还有点抽象,比如怎样保证那70%覆盖到那5%的代码,不太懂
引用 删除 catherinexu   /   2012-05-11 16:54:24
5
qg26176570的个人空间 引用 删除 qg26176570   /   2012-04-12 12:36:38
重点业务,全部走到。其他路径再抽查。
luozi的个人空间 引用 删除 luozi   /   2012-04-10 17:08:39
5
引用 删除 sunnysuky   /   2012-03-30 16:52:08
同意,关键还是要从用户的角度出发。对他们至关重要的bug是什么,要抓出来解决掉,当然时间充足的话,覆盖100%是最好的,但是我认为即使是覆盖了100%,由于环境还有不可预估的因素,发到生产环境还是会有bug的。
guluyu的个人空间 引用 删除 guluyu   /   2012-03-27 14:56:49
5
引用 删除 夏花   /   2012-03-26 10:46:15
测试的过程中会发现很多精力花费在一些边缘功能点上,有时候测试出来的一些bug也是不痛不痒。觉得从测试策略设计的时候就应该标示好优先级,哪些要花大力气测试,哪些可以少测甚至不测。现在往往为了保证覆盖的完整性而费时过多,这个貌似不大明智。
引用 删除 billhu   /   2012-03-22 08:42:11
从概率上说,90%覆盖率质量高于70%。不一定绝对。
xin_晴的个人空间 引用 删除 xin_晴   /   2012-03-20 13:55:39
您好,我是51Testing软件测试网的编辑,您的本篇博文被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/21/n-809721.html
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
happy_wendi的个人空间 引用 删除 happy_wendi   /   2012-03-19 11:58:39
5
happy_wendi的个人空间 引用 删除 happy_wendi   /   2012-03-19 11:58:29
严重同意
引用 删除 风华雪夜   /   2012-03-19 10:24:28
1
引用 删除 风华雪夜   /   2012-03-19 10:24:12
据此可推断出一种场景:假如对用户影响很大的bug在5%的代码中,2个不同的测试策略,1个测试策略的代码覆盖率只有70%但覆盖到了这5%的代码,另1个测试策略的代码覆盖率有90%但未覆盖到这5%的代码。
这个百分之九十都覆盖不到那么百分之七十就能覆盖到?我觉得这个的概率要更小一些。所以我认为百分之九十的覆盖率不管从哪个角度上讲一定要大于百分之七十。
引用 删除 mlongmlong   /   2012-03-19 09:24:54
测试策略就是测试的灵魂
 

评分:0

我来说两句

Open Toolbar