冒煙測試
文章鏈接:冒煙測試
這一術語源自硬件行業。對一個硬件或硬件組件進行更改或修復后,直接給設備加電。如果沒有冒煙,則該組件就通過了測試。在軟件中,“冒煙測試”這一術語描述的是在將代碼更改嵌入到產品的源樹中之前對這些更改進行驗證的過程。在檢查了代碼后,冒煙測試是確定和修復軟件缺陷的最經濟有效的方法。冒煙測試設計用于確認代碼中的更改會按預期運行,且不會破壞整個版本的穩定性。
概述
冒煙測試是在軟件開發過程中的一種針對軟件版本包的快速基本功能驗證策略,是對軟件基本功能進行確認驗證的手段,并非對軟件版本包的深入測試。冒煙測試也是針對軟件版本包進行詳細測試之前的預測試,執行冒煙測試的主要目的是快速驗證軟件基本功能是否有缺陷。如果冒煙測試的測試例不能通過,則不必做進一步的測試。進行冒煙測試之前需要確定冒煙測試的用例集,對用例集要求覆蓋軟件的基本功能。這種版本包出包之后的驗證方法通常稱為軟件版本包的門檻用例驗證。
冒煙測試屬于HLT(highleveltest)測試,HLT通常指SDV(系統設計驗證)/SIT(系統集成測試)/SVT(系統驗證測試)等測試活動。HLT是站在系統的角度對整個版本進行測試,測試對象是一個完整的產品而不是產品內部的模塊,常見的HLT測試包括系統測試和驗收測試。
冒煙測試可以手動執行,也可以自動化執行。穩定的系統適合自動化冒煙測試,集成過程中的系統適合手工冒煙測試,因為冒煙測試內容在動態變化,變化中的自動化腳本維護工作量比較大。
冒煙測試(smoke
testing),據說是微軟起的名字。在《微軟項目求生法則》一書第14章“構建過程”關于冒煙測試,就是開發人員在個人版本的軟件上執行目前的冒煙測試項目,確定新的程序代碼不出故障。冒煙測試的名稱可以理解為該種測試耗時短,僅用一袋煙功夫足夠了。也有人認為是形象地類比新電路板基本功能檢查。任何新電路板焊好后,先通電檢查,如果存在設計缺陷,電路板可能會短路,板子冒煙了。
分類
冒煙測試的對象是每一個新編譯的需要正式測試的軟件版本。通過冒煙測試,在軟件代碼正式編譯并交付測試之前,先盡量消除其表面的錯誤,減少后期測試的負擔。冒煙測試的執行者是版本編譯人員。因此可以說,冒煙測試是預測試。在實際的軟件測試工作中,冒煙測試在軟件研發的不同階段有所不同。大體可以分為三類:
1)形成集成測試版本以前:驗證各個單元能夠成功執行,并保證測試版本能夠順利集成;
2)形成集成測試版本:以保證新的或者更改過的代碼不破壞集成版本的完成性和穩定性;
3)后期預測試缺陷的修正:針對每個缺陷所做的缺陷修正都要先在干凈的鏈接環境中進行冒煙測試,測試通過后才能更新相關軟件版本。
應用
冒煙測試的對象是每一個新編譯的需要正式測試的軟件版本,目的是確認軟件基本功能正常,可以進行后續的正式測試工作。冒煙測試的執行者是版本編譯人員。
在一般軟件公司,軟件在編寫過程中,內部需要編譯多個版本(Builds),但是只有有限的幾個版本需要執行正式測試(根據項目開發計劃),這些需要執行的中間測試版本,在剛剛編譯出來后,軟件編譯人員需要進行基本性能確認測試,例如是否可以正確安裝/卸載,主要功能是否實現,是否存在嚴重死機或數據嚴重丟失等Bug。如果通過了該測試,則可以根據正式測試文檔進行正式測試。否則,就需要重新編譯版本,再次執行版本可接收確認測試,直到成功。
現狀
新版本的基本功能確認的測試,有的公司稱為版本健康檢查(Build Sanity Check)。
對于編譯的本地化軟件新版本,除了進行上面提到的各種檢查,還要檢查是否在新的本地化版本中正確包含了全部應該本地化的文件。可以采用文件和目錄結構比較工具,首先比較源語言版本和本地化版本的文件和目錄中的文件數目、文件名稱和文件日期等,這個過程稱為版本鏡像檢查(Build
Image
Check);其次,分別安裝源語言版本和本地化版本,比較安裝后的文件和目錄結構中的文件數目、文件名稱和文件日期等,這個過程稱為版本安裝檢查(Build
Installing Check)。
意義
冒煙測試,在軟件生命周期中所占有的時間比例較低,同時具有注重通過性輕細節的特點,因此經常被開發、測試人員所忽視。事實上,冒煙測試是軟件測試過程中一個不可或缺的節點,一個好的冒煙測試過程,對于軟件測試效率的提升具有重要意義。
(1)冒煙測試是對軟件質量的總體檢驗。
通過冒煙測試,能夠快速確認軟件是否具備測試準入條件,避免出現正式測試階段全面開展后甚至到測試中后期才才發現阻塞型缺陷等嚴重影響測試進度浪費人力物力的情況。
(2)冒煙測試是測試人員對測試流程的熟悉。
通過冒煙測試,測試人員可以迅速熟悉測試總體流程,這一方面有助于測試人員準確制定測試時間計劃,合理安排工作進度;另一方面也有助于測試人員提前做好相關設備、數據的準備,為正式測試的開展奠定基礎。
注意事項
冒煙測試執行,與正式測試的區別在于二者側重點不同,冒煙測試關注的是阻塞型缺陷,包括但不限于流程不通、主要功能未實現等,而正式測試則屬于全面、細致的測試,需要盡可能的發現全部缺陷并按其嚴重性進行區分。冒煙測試過程中,需要注意的是:
1、開發協同
冒煙測試階段有幾個特點,一是該階段軟件可能存在較多缺陷,特別是阻塞型缺陷,測試工作隨時可能陷入停滯狀態;二是該階段測試人員對軟件的流程、功能等熟悉程度較低,難免會出現找不到合適的測試方法甚至是找不到功能模塊的情況從而延遲測試進度;三是該階段的時間一般僅占整個軟件生命周期的極小部分,這就需要開發人員實時響應,盡快解決各類問題。因此,在冒煙測試階段,測試人員與開發人員的協同工作十分重要。
2、注重效率
冒煙測試應以效率為先,盡量縮短測試時間提高測試效率。要在關注主流程、重點功能的前提下,抓關鍵缺陷驗數據準備,對于諸如頁面不美觀、用戶體驗不佳等缺陷可在冒煙階段有選擇的予以過濾。例如:測試系統登錄,關注點應針對用戶名、密碼、校驗碼的輸入及提交完成,對于非法字符的校驗、登錄框是否美觀、錯誤提示是否準確等均屬于次要關注點,不納入冒煙測試范圍。
3、評估用例
冒煙測試過程同時也是對測試用例進行評估的一個過程,要充分利用這一階段,對前期形成的測試案例進行檢驗,及時對案例進行補充、刪減和修訂,使案例更貼合實際,更具有可執行。
——內容引自“百度百科”:https://baike.baidu.com/item/冒煙測試/2166486?bk_tashuoStyle=topLeft&bk_share=shoubai&bk_sharefr=lemma