软件测试实践中的取舍之道

从根本来说再怎么提高效率,时间和质量还是成正比的。当你有足够的时间,即便没有任何测试效率,只要反复的把该测试的点都测试到,那质量一样还是可以保证的。但实际上来说别说足够的时间,即便正常时间也不足以保证。IT行业就是和时间在赛跑,如果今天不上线,或许也就没有明天了。

因此从微观上来看提高测试效率是一个办法,从宏观上来讲有时候要懂得取舍,要在时间和质量上的做出选择和平衡。有人也许要说测试的目的不就是保证质量吗,质量不能达到上线标准就坚决不能上线,实在不行就通宵加班或者延迟上线。

从理论上说没毛病,但现实往往不允许的,如何保证通宵加班的效率,延迟上线的时限到了还达不到要求呢?也许有人又要说那也不能为了上线而带着bug强行上线,出了问题还不是测试担着责任。这也说的没错,所以要有所取舍的哪些bug可以带着上线的(当然常规是不推荐这样做的,仅迫于时间压力只能如此的时候)。

软件测试实践中的取舍之道

以修复BUG率作为判定上线的标准之一,举个例子:

设想这样极端一个场景,明天就要上线了,然后还有几十个bug没有修复,那么作为测试、开发应该怎么选择优先解决哪些bug呢?一般大多数人想到的就是按照bug的严重程度或者优先级来选择,大多数情况下这样是没错,但其实还要考虑一些其他因素:

  • bug的严重程度
  • bug的优先级
  • bug的修复复杂度

比如一个bug优先级较高,但解决的时间需要1天,就会影响其他bug的修复,那么这时候可能需要舍弃这个bug而保全更多的bug修复。

  • bug的影响范围

比如一个bug严重程度较高,但影响的只是少数用户(可能新注册的用户或者没有数据的用户),那么这个bug也是可以舍弃的。

  • bug出现的频率

比如一个bug非常严重,但可能100次才会出现一次(可能网络波动或者并发量太大处理不过来等情况触发),那么这个bug还是可以舍弃。

 当然除了各种考虑的因素,还要参考一些基本原则:

  • 基本功能保证正常
  • 不能造成数据错误或者丢失
  • 界面显示没问题

取舍的问题并不是一篇文章能讲清楚的,涉及到情况不同取舍的标准也各有差异。但总的目标是一致的,就是在条件允许的情况下尽量把影响降到最小

这里讲的关于bug修复的选择,其实扩展开来也是测试方向的选择:

  • 在有限的时间中哪些地方要优先测试?
  • 哪些地方可以简单测试?
  • 哪些不可能重现的bug可以先放一放?
  • 哪些小错误一定要解决等等?


留言