煙霧測試方針
更新:2007 年 11 月
在軟體中,「煙霧測試」(Smoke Testing) 一詞的意思,是指在將變更簽入至產品的原始碼結構樹之前,驗證程式碼變更的程序。在檢閱過程式碼之後,煙霧測試是用來識別和修正軟體缺失最符合經濟效益的方法,它是設計用來確認程式碼函式中的變更是否與預期相同,而且不會使整個組建不穩定。
注意事項: |
---|
「煙霧測試」這個詞彙源自於硬體業界的用語。它衍生自此措施:在硬體項目或硬體元件有所變更或經過修復之後,只開啟設備的電源。如果沒有冒煙 (基本功能沒有問題),元件便通過了測試。 |
下列方針說明進行煙霧測試的最佳作法,這些方針的效用範圍很廣,從改善小組成員之間的通訊,到開發用來測試和偵錯工具的特定方法等皆適用。
與開發人員一起合作
由於煙霧測試著重於已變更的程式碼,因此,您必須與撰寫程式碼的開發人員一起合作。您必須了解下列事項:
程式碼中的變更:若要了解其中的變更,您也必須了解所使用的技術,開發人員可以協助您了解這點
變更對功能的影響
變更對不同元件之相互依存性的影響
在煙霧測試之前進行程式碼檢閱
執行煙霧測試之前,請進行著重於程式碼任何變更的程式碼檢閱。程式碼檢閱是用來驗證程式碼品質,並且確保不會出現程式碼缺失以及任務錯誤的最有效方法。煙霧測試可確保由程式碼檢閱或風險評估所識別出的主要重大或具有弱點的區域,都能首先進行驗證,因為如果這項驗證失敗了,那麼測試也就無法繼續執行。
在初始狀態的偵錯組建上安裝私用二進位碼檔案
由於煙霧測試必須著重於只驗證已更新之二進位碼檔案中的功能變更,所以,測試必須利用所要測試之檔案的偵錯二進位碼檔案,在初始狀態的測試環境中執行。
注意事項: |
---|
利用不相符的二進位碼檔案進行測試,是煙霧測試中常見的錯誤。為了避免發生這個錯誤,當兩個或多個已更新的二進位碼檔案之間具有相依性時,請在測試組建中加入所有已更新的二進位碼檔案。否則,測試可能無法產生有效的結果。 |
建立每日組建
每日組建會需要小組成員一起工作,也會鼓勵開發人員保持同步。如果新組建的反覆運算發生延遲,則延遲可能輕易地造成具有多個相依性的產品發生未同步的情形。遵循程序,每日建置以及煙霧測試任何已變更或新的二進位碼檔案,可以確保得到更高的品質。
如需設定週期性組建的詳細資訊,請參閱 在 Team Foundation Build 中執行組建。如需驗證產品組建的詳細資訊,請參閱 HOW TO:設定和執行建置驗證測試 (BVT)。
注意事項: |
---|
請將每日組建設定為小組的最高優先順序。如果因為簽入的程式碼尚未經過煙霧測試,使得組建損毀了,開發人員和軟體測試人員就必須停止所有其他工作,直到問題解決為止。損毀組建應該不會受到太過嚴格的處罰,但是處罰會著重在要求小組將建置適當的每日組建做為第一優先任務。 |
您不需要執行詳盡的測試。執行煙霧測試的目的不在於,確保二進位檔案為 100% 無錯誤,這會需要相當多的時間。請執行煙霧測試,以較高的層級驗證組建。您可以確保二進位檔案中的變更不會使一般組建不穩定,或是造成功能上的嚴重錯誤。
Web 測試和負載測試
建置 Web 測試和負載測試時,建議在執行任何長時間且負載過重的測試之前,先執行煙霧測試。在 Web 測試和負載測試中,煙霧測試屬於簡短、負載較輕的測試。在針對測試進行效能或壓力測試 (Stress Testing) 之前,請使用煙霧測試,驗證每個設定都已正確地設定,並且如預期般正常運作。