什么是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.anti-gravitydesign.com