冒煙測(cè)試(smoke test)、可用性測(cè)試(sanity test)和回歸測(cè)試(regression test)
測(cè)試領(lǐng)域,[冒煙測(cè)試](http://www.baidu.com/s?wd=%E5%86%92%E7%83%9F%E6%B5%8B%E8%AF%95&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLP1f4nH0YPHu9n1IWrAcz0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPHcknj64nWndrjfzPWfLrj0d)(smoke test)、[可用性測(cè)試](http://www.baidu.com/s?wd=%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLP1f4nH0YPHu9n1IWrAcz0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EPHcknj64nWndrjfzPWfLrj0d)(sanity test)和回歸測(cè)試(regression test)彼此之間很相似,范圍也有重疊,所以比較容易混淆:都是在需求變更或問(wèn)題修改后對(duì)系統(tǒng)全面測(cè)試之前的一種預(yù)測(cè)試,都是為了發(fā)現(xiàn)是否在界面和代碼層面引入了問(wèn)題。
我們可以用一個(gè)和河流相關(guān)的類比來(lái)更好的理解它們之間的差別,在類比之前,我們先了解下這幾個(gè)測(cè)試的簡(jiǎn)單定義:
Smoke Testing:測(cè)試新特性有關(guān)的所有方面 (廣度) ,但不深入,用以判斷我們是否需要執(zhí)行進(jìn)一步的測(cè)試。
Sanity Testing:測(cè)試新特性的有限正常功能,深入測(cè)試。
Regression testing:回歸新特性所有相關(guān)功能,避免引入代碼變更存在問(wèn)題以及引入新問(wèn)題,深入全面。
如果我們拿一條河流來(lái)比喻,比如1000英尺寬,在水里含有雜質(zhì)(可以比作軟件中的bug),那么這三種類型的測(cè)試可以被看作如下:
對(duì)于Smoke Testing:為了找到河面所有的雜質(zhì),但不包括水面以下的。
對(duì)于Sanity Testing:為了找到某個(gè)特定范圍內(nèi)所有的雜質(zhì)(比如200英尺半徑內(nèi)),這不包含所有表面的雜質(zhì),但包含了那個(gè)范圍內(nèi)水面下直到水底的雜質(zhì)。
對(duì)于Regression Testing:為了這片水域所有的雜質(zhì),表面的以及水面以下的