複製鏈接
請複製以下鏈接發送給好友

冒煙測試

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

冒煙測試產品介紹

冒煙測試是微軟公司在《微軟項目求生法則》一書中提出的一種功能測試,目的是對一個新編譯需要正式測試的軟件版本,確認軟件的基本功能是正常的,可以進行後續的測試工作。其嚴格定義為:冒煙測試是從抽象層次驗證軟件的基本功能是否已經實現來確定是否需要更多的測試.若測試失效,軟件不再進行其他測試,直接返回給開發人員。 [4] 
冒煙測試是在軟件開發過程中的一種針對軟件版本包的快速基本功能驗證策略,是對軟件基本功能進行確認驗證的手段,並非對軟件版本包的深入測試。冒煙測試也是針對軟件版本包進行詳細測試之前的預測試,執行冒煙測試的主要目的是快速驗證軟件基本功能是否有缺陷。如果冒煙測試的測試例不能通過,則不必做進一步的測試。進行冒煙測試之前需要確定冒煙測試的用例集,對用例集要求覆蓋軟件的基本功能。這種版本包出包之後的驗證方法通常稱為軟件版本包的門檻用例驗證。
冒煙測試屬於HLT(highleveltest)測試,HLT通常指SDV(系統設計驗證)/SIT(系統集成測試)/SVT(系統驗證測試)等測試活動。HLT是站在系統的角度對整個版本進行測試,測試對象是一個完整的產品而不是產品內部的模塊,常見的HLT測試包括系統測試和驗收測試。
冒煙測試可以手動執行,也可以自動化執行。穩定的系統適合自動化冒煙測試,集成過程中的系統適合手工冒煙測試,因為冒煙測試內容在動態變化,變化中的自動化腳本維護工作量比較大。 [1] 
冒煙測試(smoke testing),據説是微軟起的名字。在《微軟項目求生法則》一書第14章“構建過程”關於冒煙測試,就是開發人員在個人版本的軟件上執行的冒煙測試項目,確定新的程序代碼不出故障。冒煙測試的名稱可以理解為該種測試耗時短,僅用一袋煙功夫足夠了。也有人認為是形象地類比新電路板基本功能檢查。任何新電路板焊好後,先通電檢查,如果存在設計缺陷,電路板可能會短路,板子冒煙了。

冒煙測試分類

冒煙測試的對象是每一個新編譯的需要正式測試的軟件版本。通過冒煙測試,在軟件代碼正式編譯並交付測試之前,先儘量消除其表面的錯誤,減少後期測試的負擔。冒煙測試的執行者是版本編譯人員。因此可以説,冒煙測試是預測試。在實際的軟件測試工作中,冒煙測試在軟件研發的不同階段有所不同。大體可以分為三類:
  1. 形成集成測試版本以前:驗證各個單元能夠成功執行,並保證測試版本能夠順利集成;
  2. 形成集成測試版本:以保證新的或者更改過的代碼不破壞集成版本的完成性和穩定性;
  3. 後期預測試缺陷的修正:針對每個缺陷所做的缺陷修正都要先在乾淨的鏈接環境中進行冒煙測試,測試通過後才能更新相關軟件版本。 [2] 

冒煙測試應用

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

冒煙測試現狀

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

冒煙測試意義

冒煙測試 冒煙測試
冒煙測試,在軟件生命週期中所佔有的時間比例較低,同時具有注重通過性輕細節的特點,因此經常被開發、測試人員所忽視。事實上,冒煙測試是軟件測試過程中一個不可或缺的節點,一個好的冒煙測試過程,對於軟件測試效率的提升具有重要意義。
(1)冒煙測試是對軟件質量的總體檢驗。
通過冒煙測試,能夠快速確認軟件是否具備測試准入條件,避免出現正式測試階段全面開展後甚至到測試中後期才發現阻塞型缺陷等嚴重影響測試進度浪費人力物力的情況。
(2)冒煙測試是測試人員對測試流程的熟悉。
通過冒煙測試,測試人員可以迅速熟悉測試總體流程,這一方面有助於測試人員準確制定測試時間計劃,合理安排工作進度;另一方面也有助於測試人員提前做好相關設備、數據的準備,為正式測試的開展奠定基礎。 [3] 

冒煙測試注意事項

冒煙測試執行,與正式測試的區別在於二者側重點不同,冒煙測試關注的是阻塞型缺陷,包括但不限於流程不通、主要功能未實現等,而正式測試則屬於全面、細緻的測試,需要儘可能的發現全部缺陷並按其嚴重性進行區分。冒煙測試過程中,需要注意的是:
1、開發協同
冒煙測試階段有幾個特點,一是該階段軟件可能存在較多缺陷,特別是阻塞型缺陷,測試工作隨時可能陷入停滯狀態;二是該階段測試人員對軟件的流程、功能等熟悉程度較低,難免會出現找不到合適的測試方法甚至是找不到功能模塊的情況從而延遲測試進度;三是該階段的時間一般僅佔整個軟件生命週期的極小部分,這就需要開發人員實時響應,儘快解決各類問題。因此,在冒煙測試階段,測試人員與開發人員的協同工作十分重要。
2、注重效率
冒煙測試應以效率為先,儘量縮短測試時間提高測試效率。要在關注主流程、重點功能的前提下,抓關鍵缺陷數據準備,對於諸如頁面不美觀、用户體驗不佳等缺陷可在冒煙階段有選擇的予以過濾。例如:測試系統登錄,關注點應針對用户名、密碼、校驗碼的輸入及提交完成,對於非法字符的校驗、登錄框是否美觀、錯誤提示是否準確等均屬於次要關注點,不納入冒煙測試範圍。
3、評估用例
冒煙測試過程同時也是對測試用例進行評估的一個過程,要充分利用這一階段,對前期形成的測試案例進行檢驗,及時對案例進行補充、刪減和修訂,使案例更貼合實際,更具有可執行。 [3] 
參考資料
  • 1.    姜文,劉立康.基於持續集成的冒煙測試[J].計算機技術與發展,2018,28(8):53-57. DOI:10.3969/j.issn.1673-629X.2018.08.011.
  • 2.    易敏捷.軟件測試國內外發展現狀及趨勢研究[J].電腦知識與技術,2013,(26):6020-6022.
  • 3.    閆峯,宋向暉.冒煙測試淺談[J].信息技術與信息化,2018,(10):158-159. DOI:10.3969/j.issn.1672-9528.2018.10.049.
  • 4.    趙保華,柯堯.協議一致性冒煙測試系統的設計[J].小型微型計算機系統,2006,27(11):2146-2149