你真的了解什麼是冒煙測試么?

你真的了解什麼是冒煙測試么?

21 人贊了文章

近期在和一些研發團隊溝通時,發現許多同學對於冒煙測試有一些理解的誤區,CC先生就想來捋一捋這個概念。

誤區一:開發不知道冒煙測試是幹嘛的。

通常一提到冒煙測試,大家都習慣性的把關注點放在後面兩個字:測試 。開發的同學一聽這個活動,很開心,這不是我們的活兒,應該是測試人員來完成的。真的是這樣么?

先來看看維基百科上對冒煙測試的解釋:

smoke testing is preliminary testing to reveal simple failures severe enough to, for example, reject a prospective software release. Smoke tests are a subset of [test cases] that cover the most important functionality of a component or system, used to aid assessment if main functions of the software appear to work correctly.[1][2] When used to determine if a computer program should be subjected to further, more fine-grained testing, a smoke test may be called an intake test.[1] Alternately, it is a set of tests run on each new build of a product to verify that the build is testable before the build is released into the hands of the test team.[5] In the DevOps paradigm, use of a BVT step is one hallmark of the continuous integration maturity stage.

冒煙測試這個名稱的來歷,最初是從電路板測試得來的。因為當電路板做好以後,首先會加電測試,如果板子沒有冒煙再進行其它測試,否則就必須重新來過。

冒煙的電路板.JPG,圖片來源:視覺中國

而在軟體研發中,冒煙測試其實是微軟首先提出來的一個概念,和微軟一直提倡的每日build(構建版本)有很密切的聯繫。具體說,冒煙測試就是在每日build(構建版本)建立後,對系統的基本功能進行簡單的測試。這種測試強調程序的主要功能進行的驗證,而不會對具體功能進行更深入的測試。

冒煙只是這類測試活動更形象化一些的叫法,直接叫做BVT(Build Verification Testing)其實CC先生個人覺得更為貼切。

誤區二:冒煙測試為一個測試階段。

有些團隊在定製流程時會有一個階段叫冒煙測試,但是就算不通過也會繼續做後面其它部分的測試。就像平時進機場的時候機場口都會有個小哥哥或者小姐姐拿一個不知名的物體對你掃一次,大多數情況下旅客們都是面無表情的走過他們身邊,掃就掃唄,又不少兩斤肉。

實際上什麼打火機啊,充電寶啊會在之後的安檢過程才會被一一挑出來。

安檢中.JPG,圖片來自網路

我們反過頭來看當時微軟提出來的這個概念,它的重點其實在於 daily build ,也就是說冒煙測試是隨著每一次構建而走的,它應該是一個開關而不是一個研發流程中的測試階段。

過,你可以繼續後面的測試。不過,直接返工等待下一次的構建。這才是冒煙測試應有的態度。

誤區三:冒煙測試需要把此次需求的主流程都走一遍。

一些團隊通常為了督促開發人員提高研發質量而把冒煙通過率作為一個衡量指標。CC先生認為出發點是極好的,實現手段上經常會有一點點小偏差。

冒煙測試主要是測試系統的主流程是否可用,如果這次的需求不涉及到太多主流程上面的更改,那真的有必要把這些案例都加入到冒煙測試中么?

最後,冒煙測試的最佳實踐還是最好被自動化,在CI中每一個Build都自動的去執行主流程的測試,確保其是一個基本可用的版本。手工測試這事兒吧,西部世界都第二季完結了,你們還沒醒悟么?

註:本文由蝸牛學院測試導師 CC老師 首發自個人簡書jianshu.com/p/46a2fc4a1。希望繼續在IT行業突破提升自己的各位朋友,也歡迎加群594154674,不管你自我感覺牛不牛B。


推薦閱讀:

介面自動化測試大牛養成記
半年從轉行軟體測試到產品經理
想學軟體測試?想找軟體測試培訓?
成功的自動化測試實施
軟體測試工程師人手必備的一隻:TOM貓,可以帶你裝逼帶你飛!

TAG:軟體測試 | 軟體測試培訓 | 軟體測試工程師 |