开发和测试的两大难题:Regression Bug和Late Discovery Bug

发表于:2008-09-22来源:作者:点击数: 标签:bugBUGBugLateRegression
关键字: 开发 和测试 难题 什么是Regression Bug ?Regression Bug,就是由于开发新特性或Fix Bug导致以前正常工作的特性罢工了。这种情况,通常出现在产品的开发中。 为了便于分析,Regression Bug又分为Release Regression和Build Regression。 Release R
关键字:开发和测试 难题

 什么是RegressionBug?Regression Bug,就是由于开发新特性或Fix Bug导致以前正常工作的特性罢工了。这种情况,通常出现在产品的开发中。

  为了便于分析,Regression Bug又分为Release Regression和Build Regression。

  Release Regression指的是和上一个产品版本相比,出现的Bug。

  Build Regression的解释就更复杂些。通常开发软件的一个版本的过程中,会有很多Build,通常测试会根据需要每天或每隔几天取一个Build进行测试。相对于前某个Build的Regression Bug就是Build Regression。

  产生Regression Bug的主要原因是:
      
  单元测试没有做充分。     
  隔山打牛的Bug,单元测试很难做到。    
  测试环境问题

  另外,通常Regression Bug也有较高的误报率,或者争议比例较大。

  控制Regression Bug的方法通常从强调单元测试开始,然后是控制Bug的Reopen率,增加Code Review的频率,引入自动测试。但是,Regression Bug在全部Bug中的比例,在通过上述方法控制到20%到30%后,开始出现难以下降的趋势。

  Late Discovery Bug则是QA之痛。用质量的术语来说,就是漏检。每个Release都会发现无数上个版本测试没有发现的Bug。通常这也会达到20%到30%。

  产生Late Discovery Bug的主要原因是:

  测试覆盖率。通过黑盒测试,要想做到100%分支的Cover率,是不可能的。这样,总会有漏掉的Bug。
  灯下黑,就是个人的测试盲区。每个人都有脑筋死角或盲区,先入为主的认识会让人们不能发现很明显的问题。
 
  解决的方法有:

  增加Ad Hoc测试,就是不按照事先设计好的Case执行的测试。
  交叉测试,减少测试误区。
 

原文转自:http://www.ltesting.net