3. 測試用例開發
一個好的測試用例就是有一個合理的概率來找到Bug,不要冗余,要有針對性,一個測試只針對一件事情。特別是功能測試的時候,如果一個測試是測了兩項功能,那么如果測試結果失敗的話,就不知道到底是哪項功能出了問題。
測試用例開發中主要使用的技術有等價類劃分,邊界值的分析,Error Guessing Testing。
等價類劃分是根據輸入輸出條件,以及自身的一些特性分成兩個或更多個子集,來減少所需要測試的用例個數,并且能用很少的測試用例來覆蓋很多的情況,減少測試用例的冗余度。在等價類劃分中,最基本的劃分是一個為合法的類,一個為不合法的類。
邊界值的分析是利用了一個規律,即程序最容易發生錯誤的地方就是在邊界值的附近,它取決于變量的類型,以及變量的取值范圍。一般對于有n個變量時,會有6n 1個測試用例,取值分別是min-1, min, min 1, normal, max-1, max,max 1的組合。邊界值的分析的缺點,是對邏輯變量和布爾型變量不起作用,還有可能會忽略掉某些輸入的組合。
Error Guessing Testing完全靠的是經驗,所設計的測試用例就是常說的猜測。感覺到軟件在某個地方可能出錯,就去設計相應的測試用例,這主要是靠實際工作中所積累的經驗和知識。其優點是速度快,只要想得到,就能很快設計出測試用例。缺點就是沒有系統性,無法知道覆蓋率會有多少,很可能會遺漏一些測試領域。
實際上在微軟是采用一些專門的軟件或工具負責測試用例的管理,有一些測試信息可以被記錄下來,比如測試用例的簡單描述,在哪些平臺執行,是手工測試還是自動測試,運行的頻率是每天運行一次,還是每周運行一次。此外還有清晰的測試通過或失敗的標準,以及詳細記錄測試的每個步驟。
4. Bug跟蹤過程
在軟件開發項目中,測試人員的一項最重要使命就是對所有已知Bug進行有效的跟蹤和管理,保證產品中出現的所有問題都可以得到有效的解決。一般地,項目組發現、定位、處理和最終解決一個Bug的過程包括Bug報告、Bug評估和分配、Bug處理、Bug關閉等四個階段:
1)測試工程師在測試過程中發現新的Bug后,應向項目組報告該Bug的位置、表現、當前狀態等信息。項目組在Bug數據庫中添加該Bug的記錄。
2)開發經理對已發現的Bug進行集中討論,根據Bug對軟件產品的影響來評估Bug的優先級,制定Bug的修正策略。按照Bug的優先級順序和開發人員的工作安排,開發經理將所有需要立即處理的Bug分配給相應的開發工程師。
3)開發工程師根據安排對特定的Bug進行處理,找出代碼中的錯誤原因,修改代碼,重新生成產品版本。
4)開發工程師處理了Bug之后,測試人員需要對處理后的結果進行驗證,經過驗證確認已正確處理的Bug被標記為關閉(Close)狀態。測試工程師既需要驗證Bug是否已經被修正,也需要確定開發人員有沒有在修改代碼的同時引入新的Bug。
5. Bug的不同處理方式
在某些情況下,Bug已處理并不意味著Bug已經被修正。開發工程師可以推遲Bug的修正時間,也可以在分析之后告知測試工程師這實際上不是一個真正的Bug。也就是說,某特定的Bug經開發工程師處理之后,該Bug可能包括以下幾種狀態。
已修正:開發工程師已經修正了相應的程序代碼,該Bug不會出現了。
可推遲:該Bug的重要程度較低,不會影響當前應提交版本的主要功能,可安排在下一版本中再行處理。
設計問題:該Bug與程序實現無關,其所表現出來的行為完全符合設計要求,對此應提交給程序經理處理。
無需修正:該Bug的重要程度非常低,根本不會影響程序的功能,項目組沒有必要在這些Bug上浪費時間。
五、成為優秀測試工程師的要求
要成為一名優秀的測試工程師,首先對計算機的基本知識要有很好的了解,精通一門或多門的編程語言,具備一定的程序調試技能,掌握測試工具的開發和使用技術。同時要比較細心,會按照任務的輕重緩急來安排自己的工作,要有很好的溝通能力。此外,還要善于用非常規的方式思考問題,盡可能多的參加軟件測試項目,在實踐中學習技能,積累經驗,不斷分析和總結軟件開發過程中可能出錯的環節。這樣,一名優秀的測試工程師就從軟件測試的實踐中脫穎而出了。
posted on 2006-11-26 14:55
matthew 閱讀(223)
評論(0) 編輯 收藏 所屬分類:
軟件測試技術