冒煙測試

冒煙測試

這一術語源自硬體行業。對一個硬體或硬體組件進行更改或修復後,直接給設備加電。如果沒有冒煙,則該組件就通過了測試。在軟體中,“冒煙測試”這一術語描述的是在將代碼更改嵌入到產品的源樹中之前對這些更改進行驗證的過程。在檢查了代碼後,冒煙測試是確定和修復軟體缺陷的最經濟有效的方法。冒煙測試設計用於確認代碼中的更改會按預期運行,且不會破壞整個版本的穩定性。

基本介紹

  • 中文名:冒煙測試
  • 外文名:smoke testing
  • 隸屬:自由測試
  • 行業:計算機
來源,套用,現狀,準則,

來源

冒煙測試(smoke testing),據說是微軟起的名字。在《微軟項目求生法則》一書第14章“構建過程”關於冒煙測試,就是開發人員在個人版本的軟體上執行目前的冒煙測試項目,確定新的程式代碼不出故障。
冒煙測試的名稱可以理解為該種測試耗時短,僅用一袋煙功夫足夠了。也有人認為是形象地類比新電路板基本功能檢查。任何新電路板焊好後,先通電檢查,如果存在設計缺陷,電路板可能會短路,板子冒煙了。

套用

冒煙測試的對象是每一個新編譯的需要正式測試的軟體版本,目的是確認軟體基本功能正常,可以進行後續的正式測試工作。冒煙測試的執行者是版本編譯人員。
在一般軟體公司,軟體在編寫過程中,內部需要編譯多個版本(Builds),但是只有有限的幾個版本需要執行正式測試(根據項目開發計畫),這些需要執行的中間測試版本,在剛剛編譯出來後,軟體編譯人員需要進行基本性能確認測試,例如是否可以正確安裝/卸載,主要功能是否實現,是否存在嚴重當機或數據嚴重丟失等Bug。如果通過了該測試,則可以根據正式測試文檔進行正式測試。否則,就需要重新編譯版本,再次執行版本可接收確認測試,直到成功。

現狀

新版本的基本功能確認的測試,有的公司稱為版本健康檢查(Build Sanity Check)。
對於編譯的本地化軟體新版本,除了進行上面提到的各種檢查,還要檢查是否在新的本地化版本中正確包含了全部應該本地化的檔案。可以採用檔案和目錄結構比較工具,首先比較源語言版本和本地化版本的檔案和目錄中的檔案數目、檔案名稱稱和檔案日期等,這個過程稱為版本鏡像檢查(Build Image Check);其次,分別安裝源語言版本和本地化版本,比較安裝後的檔案和目錄結構中的檔案數目、檔案名稱稱和檔案日期等,這個過程稱為版本安裝檢查(Build Installing Check)。

準則

與開發人員協同工作
由於冒煙測試特別關注更改過的代碼,因此必須與編寫代碼的開發人員協同工作。必須了解以下內容:
1、代碼中進行了什麼更改。若要理解該更改,必須理解使用的技術;開發人員可以提供相關說明。
2、更改對功能有何影響。
3、更改對各組件的依存關係有何影響。
在進行冒煙測試前檢查代碼
在運行冒煙測試前,進行側重於代碼中的所有更改的代碼檢查。代碼檢查是驗證代碼質量並確保代碼無缺陷和錯誤的最有效、最經濟的方法。冒煙測試確保通過代碼檢查或風險評估標識的主要的關鍵區域或薄弱區域已通過驗證,因為如果失敗,測試就無法繼續。
在乾淨的調試版本中安裝私有二進制檔案
由於冒煙測試必須側重於僅對更新後的二進制檔案中的功能更改進行驗證,所以必須通過使用被測試檔案的調試二進制檔案來使測試在乾淨的測試環境中運行。
注意:在冒煙測試中,使用不匹配的二進制檔案進行測試是一個常見錯誤。為了避免此錯誤,當兩個或多個更新後的二進制檔案之間存在依賴項時,請在測試版本中包括所有更新後的二進制檔案。否則,測試的結果可能無效。
創建每日構建(Daily Build)
每日構建要求團隊成員協同工作,並鼓勵開發人員彼此保持同步。如果新版本的疊代被延遲,則該延遲很容易導致具有多個依賴項的產品不同步。遵循每日構建和冒煙測試的過程,任何更改過的或新的二進制檔案都可確保實現高質量。
注意:將高質量的每日構建作為團隊最重要的任務。如果由於嵌入代碼未進行冒煙測試而導致版本中斷,則需要開發人員和測試人員停止所有其他工作,直到問題被解決為止。對導致中斷版本的人員的處罰不應該很重,但這個處罰一定要能強調這樣一個道理:正確構建是團隊最重要的任務。
不需要執行窮舉測試。冒煙測試的目的不是確保二進制檔案100%沒有錯誤。這樣需要花費太多的時間。執行冒煙測試是為了在高級別驗證版本。要確保二進制檔案中的更改不會破壞常規版本的穩定性,也不會導致功能中出現嚴重錯誤。
生成Web測試和負載測試時,在運行任何時間長、工作量大的測試之前運行冒煙測試是一種很好的做法。在Web測試和負載測試中,冒煙測試時間短,工作量也小。使用冒煙測試是為了在運行性能測試壓力測試之前,確保一切都已正確配置並可按預期運行。

熱門詞條

聯絡我們