陽光互幫互助小組每日一帖-冒煙測試
發表于:2008-01-02來源:作者:點擊數:
標簽:冒煙測試
什么是冒煙測試 [摘要] 關于冒煙測試,應該是微軟首先提出來的一個概念,和微軟一直 提倡的每日build有很密切的聯系。具體說,冒煙測試就是在每日build建立后,對系統的基本功能進行簡單的測試。這種測試強調功能的覆蓋率,而不對 功能的正確性進行驗證。從這
什么是冒煙測試
[摘要] 關于冒煙測試,應該是微軟首先提出來的一個概念,和微軟一直 提倡的每日build有很密切的聯系。具體說,冒煙測試就是在每日build建立后,對系統的基本功能進行簡單的測試。這種測試強調功能的覆蓋率,而不對 功能的正確性進行驗證。從這一點看和所謂的“接受性(驗收)測試(A
clearcase/" target="_blank" >cceptance Test)”非常相似。不同之處就在于他們執行的頻率和被測的版本不同。
[關鍵字] 軟件測試 冒煙測試 驗收測試
關于冒煙測試,應該是微軟首先提出來的一個概念,和微軟一直提倡的每日build有很密切的聯系。具體說,冒煙測試就是在每日build建立后,對系統的 基本功能進行簡單的測試。這種測試強調功能的覆蓋率,而不對功能的正確性進行驗證。從這一點看和所謂的“接受性(驗收)測試(Acceptance Test)”非常相似。不同之處就在于他們執行的頻率和被測的版本不同。
至于冒煙測試這個名稱的來歷,大概是從電路板測試得來的。因為當電路板做好以后,首先會加電測試,如果板子沒有冒煙在進行其它測試,否則就必須重新來過。類似的如果冒煙測試沒有通過,那么這個build也會返回給開發隊伍進行修正,
測試人員測試的版本必須首先通過冒煙測試的考驗。
冒煙測試的說法據說是:
就象生產汽車一樣,汽車生產出來以后,首先發動汽車,看汽車能否冒煙,如果能,證明汽車最起碼可以開動了。說明完成了最基本的功能。
冒煙測試一般用于每日構建(Nightly build),構建
服務器首先從
CVS服務器上,
下載最新的源代碼,然后編譯
單元測試,運行單元測試通過后,編譯可執行文件,可執行文件若可運行,并能執 行最基本的功能,則認為通過了冒煙測試,這時,構建服務器會把程序打包成安裝文件,然后上傳到內部網站,第二天一早,測試人員來了以后,會收到構建服務器 發來的郵件提示昨晚是否構建成功。若構建成功,則測試人員進行相關的
功能測試。所有這些功能的完成,一般是靠編寫腳本完成的,目前比較常用的腳本有 TCL,Perl,Python及功能弱弱的批處理。用這些可以完成系統的每日構建。
簡單的說,就是先保證系統能跑的起來,不至于讓測試工作做到一半突然出現錯誤導致業務中斷。目的就是先通過最基本的測試,如果最基本的測試都有問題,就直接打回開發部了,減少測試部門時間的浪費
冒煙測試準則
在軟件中,“冒煙測試”這一術語描述的是在將代碼更改簽入到產品的源樹中之前對這些更改進行驗證的過程。在檢查了代碼后,冒煙測試是確定和修復軟件
缺陷的最經濟有效的方法。冒煙
測試設計用于確認代碼中的更改會按預期運行,且不會破壞整個版本的穩定性。
注意:“冒煙測試”這一術語源自硬件行業。該術語源于此做法:對一個硬件或硬件組件進行更改或修復后,直接給設備加電。如果沒有冒煙,則該組件就通過了測試。
下面的準則描述了冒煙測試的最佳做法。遵循準則的效果會有很大的不同,從增強團隊成員之間的交流,到形成特定的使用測試和調試工具的方式等。
與開發人員協同工作
由于冒煙測試特別關注更改過的代碼,因此必須與編寫代碼的開發人員協同工作。必須了解以下內容:
• 代碼中進行了什么更改。若要理解該更改,必須理解使用的技術;開發人員可以提供相關說明。
• 更改對功能有何影響。
• 更改對各組件的依存關系有何影響。
在進行冒煙測試前檢查代碼
在運行冒煙測試前,進行側重于代碼中的所有更改的代碼檢查。代碼檢查是驗證代碼質量并確保代碼無缺陷和錯誤的最有效、最經濟的方法。冒煙測試確保通過代碼檢查或風險評估標識的主要的關鍵區域或薄弱區域已通過驗證,因為如果失敗,測試就無法繼續。
在干凈的調試版本中安裝私有二進制文件
由于冒煙測試必須側重于僅對更新后的二進制文件中的功能更改進行驗證,所以必須通過使用被測試文件的調試二進制文件來使測試在干凈的
測試環境中運行。
注意
在冒煙測試中,使用不匹配的二進制文件進行測試是一個常見錯誤。為了避免此錯誤,當兩個或多個更新后的二進制文件之間存在依賴項時,請在測試版本中包括所有更新后的二進制文件。否則,測試的結果可能無效。
創建每日構建 (Daily Build)
每日構建要求團隊成員協同工作,并鼓勵開發人員彼此保持同步。如果新版本的迭代被延遲,則該延遲很容易導致具有多個依賴項的產品不同步。遵循每日構建和冒煙測試的過程,任何更改過的或新的二進制文件都可確保實現高質量。
有關設置重復版本的更多信息,請參見 在 Team Foundation Build 中運行生成。有關驗證產品版本的更多信息,請參見如何:配置和運行生成驗證測試 (BVT)。
注意
將高質量的每日構建作為團隊最重要的任務。如果由于簽入代碼未進行冒煙測試而導致版本中斷,則需要開發人員和測試人員停止所有其他工作,直到問題被解決為止。對導致中斷版本的人員的處罰不應該很重,但這個處罰一定要能強調這樣一個道理:正確的每日構建是團隊最重要的任務。
不需要執行窮舉測試。冒煙測試的目的不是確保二進制文件 100% 沒有錯誤。這樣需要花費太多的時間。執行冒煙測試是為了在高級別驗證版本。要確保二進制文件中的更改不會破壞常規版本的穩定性,也不會導致功能中出現嚴重錯誤。
Web 測試和
負載測試生成 Web 測試和負載測試時,在運行任何時間長、工作量大的測試之前運行冒煙測試是一種很好的做法。在 Web 測試和負載測試中,冒煙測試時間短,工作量也小。使用冒煙測試是為了在運行
性能測試或
壓力測試之前,確保一切都已正確配置并可按預期運行。
原文轉自:http://www.kjueaiud.com