在測試領域,冒煙測試(smoke test)、可用性測試(sanity test)和迴歸測試(regression test)彼此之間很類似,範圍也有重疊,測試
因此比較容易混淆:都是在需求變動或問題修改後對系統全面測試以前的一種預測試,都是爲了發現是否在界面和代碼層面引入了問題。it
咱們能夠用一個和河流相關的類比來更好的理解它們之間的差異,在類比以前,咱們先了解下這幾個測試的簡單定義:io
若是咱們拿一條河流來比喻,好比1000英尺寬,在水裏含有雜質(能夠比做軟件中的bug),test
那麼這三種類型的測試能夠被看做以下:軟件
對於Smoke Testing: 爲了找到河面全部的雜質,但不包括水面如下的bug
對於Sanity Testing: 爲了找到某個特定範圍內全部的雜質(好比200英尺半徑內),這不包含全部表面的雜質,但包含了那個範圍內水面下直到水底的雜質界面
對於Regression Testing: 爲了這片水域全部的雜質,表面的以及水面如下的系統