詳細介紹一下 Smoke Testing(冒煙測試)

作者: 簡簡單單幸福  來源: 博客園  發布時間: 2010-08-29 20:06  閱讀: 8324 次  推薦: 0   原文鏈接   [收藏]  
摘要:該文作者根據自己搜集的一些資料,結合微軟的實際測試工作,將Smoke Testing為我們作了較為詳細的介紹。

  近來看到和聽到幾個關于 Smoke Testing 的說法,也曾幾次被顧問客戶問及 Smoke Testing,感覺大家似乎對 Smoke Testing 的概念都相當模糊。據說軟件測試中的 Smoke Testing 最早源于微軟,而在實踐中,我曾就此詢問過美國微軟的幾個開發人員,他們的說法也莫衷一是。根據我搜集的一些資料,結合微軟的實際測試工作,現將  Smoke Testing 綜合介紹一下。

  【誤區】

  先說說大家對 Smoke Testing 理解中的問題。查了一下網上有關 Smoke Testing 的資料,發現所有關于這方面的信息不外乎來源于兩個:

  1. 翻譯過來的定義——關于 Smoke Testing 的定義能查到不少,內容基本是一致的,但是定義很表觀且陳舊,和當前國際上大軟件企業中的 Smoke Testing 實踐并不十分相符。
  2. 以訛傳訛的理解——比如:
  • 完全沿用 Smoke Testing 的原始意義——這是在理解一些外來專用語上常犯的一種錯誤。
  • 想當然地理解為“用抽煙的功夫就能完成的測試”——這貌似有道理,但卻是最荒謬的,因為 Smoke Testing 并不見得比常規的測試花費更少的時間,而且在正式的軟件測試工作環境里是沒有人抽煙的。
  • 籠統地把所有粗淺的測試都作為 Smoke Testing;這顯然是因為對 Smoke Testing 定義中的簡單測試或者初級測試等等單詞斷章取義的理解。
  • 認為 Smoke Testing 就是 BVT——這是因為 Smoke Testing 定義的模糊與過時。

  那么真正的 Smoke Testing 是什么意思呢?

  【Smoke Testing 釋義】

  Smoke Testing 的概念最早源于制造業,用于測試管道。測試時,用鼓風機往管道里灌煙,看管壁外面是否有煙冒出來,以便檢驗管道是否有縫隙。這一測試顯然比較初級,更深層一點的測試至少要進行滲油測試、帶壓測試等等。Smoke Testing 只是一種初級、直觀的測試。

  軟件測試中的 Smoke Testing 實際上用的是其引申含義,而且是引申了不止一道的含義,在這里,Smoke Testing 其實是個俚語就跟很多其他源于美國軟件行業的名詞一樣。

  以前我并不知道 Smoke Testing 有適當的中文翻譯,最早聽到冒煙測試這個詞還是在我的顧問客戶那里。據我的理解,這個翻譯只是字面翻譯,顯然并不能代表 Smoke Testing 的真實含義,換句話說冒煙測試只是 Smoke Testing 的字譯而非意譯。

  Smoke Testing 在軟件測試中的意義,應該說取的是其原始概念中的目的而非手段。通過 Smoke Testing,在軟件代碼正式編譯并交付測試之前,先盡量消除其表面的錯誤,減少后期測試的負擔。因此可以說,Smoke Testing 是預測試。

  【Smoke Testing 的執行】

  按照現有定義的說法,Smoke Testing 的執行似乎是在每日構建(daily build)完成時進行的,從這一點來看似乎說的就是 BVT。因此國內有人更加引申一步理解,把研發后期所做的一些不全面的集成測試也認為是 Smoke Testing。

  實際上 Smoke Testing 的執行是在代碼評審(code review)之后、每日構建(daily build)之前完成的工作關于這一點,如果大家認真查閱國外同行關于 Smoke Testing 的介紹是不難找到敘述的。

  【軟件研發不同階段的 Smoke Testing】

  在實際的軟件測試工作中,Smoke Testing 在軟件研發的不同階段有所不同。大體可以分為三類:

  1. 形成集成測試版本以前Smoke Testing 是隨著代碼的不斷開發必做的一項工作,目的是驗證各個單元能夠成功執行,并保證測試版本能夠順利集成。

  2. 形成集成測試版本以后在代碼 check in 到 daily build 之前執行 Smoke Testing,以保證新的或者更改過的代碼不破壞集成版本的完成性和穩定性。

  3. 后期預測試 Bug 的修正后期 daily build 相對穩定時,針對每個 Bug 所做的 Bug Fix 都要先在干凈的 build 中進行 Smoke Testing,測試通過的 Bug Fix 才能 check in 到新的 daily build 中。

  【Smoke Testing 與 BVT】

  從 Smoke Testing 的定義上看,BVT 似乎可以看作是 Smoke Testing,但在實際當中 BVT 是與 Smoke Testing 完全獨立的一個概念,這是基于以下幾個方面:

  • Smoke Testing 與 BVT 的執行階段不一樣。
  • Smoke Testing 與 BVT 的內容不一樣。
  • Smoke Testing 與 BVT 結果對后續工作的影響不一樣。

  關于 BVT,我將另具文介紹。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()