冒煙測試
-
最初定義
Smoke Testing這個詞,是由電路板測試得來的,當電路板完成之後,會先通電來進行測試,如果電路板沒有冒煙再進行其它測試,如果冒煙了就說明這個電路板連基本的功能都沒達到,其他功能則不必再繼續測試。
-
軟體開發領域
軟體開發領域導入冒煙測試,是對軟體的基本功能進行測試,目的是確認軟體的基本功能正常,保證系統正常運行,所以所有測試版本必須首先通過冒煙測試的考驗。
而在軟體開發過程中,冒煙測試其實是微軟首先提出来的一個概念,和微軟提倡的每日build有著密不可分的關係。具體來说,冒煙測試就是在每日build建立後,對系統的基本功能進行測試,這種測試是針對主要功能進行基本驗證,而不會對具體功能進行更深入的測試。
而冒煙只是這類測試活動更為形像化的一種說法,小編覺得如果直接叫做BVT(Build Verification Testing)感覺更貼切。
-
測試對象
冒煙測試的對象是每個需要正式測試的版本,目的是確認軟體基本功能正常,執行者則是每個版本的coding人員也就是開發者,而不通過時則需要重新進行coding,直到完全Pass為止。
-
測試優缺點
冒煙測試的作用就是保證系統主流程和新模組的基本功能正常,優點是節省測試時間,防止build失敗,缺點則是覆蓋率較低,畢竟只有針對主要流程。
如果冒煙測試失敗進而導致整體測試進度落後,那麼成本及風險就會漸漸變大,因此冒煙測試失敗將會是一個專案執行上的重大缺失,所以在一般版本發布前,開發人員會執行至少1次冒煙測試,來確保品質。
-
冒煙測試的執行
那麼,我們到底應該何時開始冒煙測試呢?按照現有的定義,冒煙測試的執行是在每日構建(daily build)完成時進行的,從這一點來看似乎說的就是 BVT,因此有人更進一步理解,把開發後期所做的一些不全面的集成測試也當做是冒煙測試。
但實際上冒煙測試的執行是在 Code Review 之後、Daily Build 之前完成的工作,關於這一點,參照國外許多相關文獻探討,是不難找到解答的。
在實際的軟體測試之中,冒煙測試在軟體研發不同階段皆有所不同,大體上可以分為三類:
- 形成完整測試版本之前-冒煙測試是隨著程式碼的不斷開發而必須執行的一項工作,目的是驗證各項主要功能可以成功執行,並保證測試版本能夠順利完成。
- 形成完整測試版本以後,在 code check in 到 daily build 之前執行冒煙測試,以保證新的、或更改過的 code 不破壞整體的完成性和穩定性。
- 後期預測試Bug的修正,後期 daily build 相對穩定時,針對每個 Bug 所做的 Bug Fix 都要先在「乾淨的」 build 中進行冒煙測試,測試通過的 Bug Fix 才能 check in 到新的 daily build 中。
-
冒煙測試很重要嗎?
不管是軟體開發或是電商,冒煙測試存在的意義在於每個版本的code編輯完成並提交至測試環境之前,盡可能的把比較容易發現的bug先行處理,減少後期測試團隊的負擔!因此,冒煙測試也可以說是預測試,對整個流程來說是有其存在的價值與必要性唷。
參考來源:
“Guidelines for Smoke Testing". MSDN Library for Visual Studio 2005.
威基百科 – https://en.wikipedia.org/wiki/Smoke_testing_(software)
简简单单幸福 – https://www.cnblogs.com/zzp28/articles/1742661.html
我要留言