一個好的設計應能預見各種出錯條件,并預設各種出錯處理通路,出錯處理通路同樣需要認真測試,測試應著重檢查下列問題:(1)輸出的出錯信息難以理解;(2)記錄的錯誤與實際遇到的錯誤不相符;(3)在程序自定義的出錯處理段運行之前,系統已介入;(4)異常處理不當;(5)錯誤陳述中未能提供足夠的定位出錯信息。
邊界條件測試是單元測試中最后也是最重要的一項任務。眾所周知,軟件經常在邊界上失效。采用邊界值分析技術,針對邊界值及其左、右設計測試用例,很有可能發現新的錯誤。
b.單元測試過程
一般認為單元測試應緊接在編碼之后,當源程序編制完成并通過復審和編譯檢查,便可開始單元測試。測試用例的設計應與復審工作相結合,根據設計信息選取測試數據,將增大發現上述各類錯誤的可能性。在確定測試用例的同時,應給出期望結果。
提高模塊的內聚度可簡化單元測試,如果每個模塊只能完成一個,所需測試用例數目將顯著減少,模塊中的錯誤也更容易發現。
(2)集成測試
也稱組裝測試。在單元測試之后,需要按照設計時作出的結構圖,將它們聯結起來,進行集成測試。集成測試是組裝軟件的系統測試技術,按設計要求把通過單元測試的各個模塊組裝在一起之后,進行綜合測試以便發現與接口有關的各種錯誤。
把所有模塊按設計要求一次全部組裝起來,然后進行集成測試,這稱為非增量式集成。這種方法容易出現混亂。因為測試時可能發現一大堆錯誤,為每個錯誤定位和糾正非常困難,并且在改正一個錯誤的同時又可能引入新的錯誤。新舊錯誤混雜,更難斷定出錯的原因和位置。與之相反的是增量式集成方法,程序一段一段地擴展,測試的范圍一步一步地增大,錯誤易于定位和糾正,界面的測試亦可做到完全徹底。常用的有下面兩種增量式集成方法。
a.自頂向下集成
自頂向下集成是構造程序結構的一種增量式方式,它從主控模塊開始,按照軟件的控制層次結構,以深度優先或廣度優先的策略,逐步把各個模塊集成在一起。深度優先策略首先是把主控制路徑上的模塊集成在一起,至于選擇哪一條路徑作為主控制路徑,這多少帶有些隨意性,要根據問題的特性確定。
自頂向下集成測試的具體步驟為:(1)以主控模塊作為測試驅動模塊,把對主控模塊進行單元測試時引入的所有樁模塊用實際模塊替代;(2)依據所選的集成策略,每次只替代一個樁模塊;(3)每集成一個模塊立即測試一遍;(4)只有每組測試完成后,才著手替換下一個樁模塊;(5)為避免引入新錯誤,須不斷地進行回歸測試。從第(2)步開始,循環執行上述步驟,直至整個程序結構構造完畢。
自頂向下集成的優點在于能盡早地對程序的主要控制和決策機制進行檢驗,因此能較早地發現錯誤。缺點是在測試較高層模塊時,低層處理采用樁模塊替代,不能反映真實情況,重要數據也不能及時回送到上層模塊,因此測試并不充分。解決這個問題有幾種辦法,第一種是把某些測試推遲到用真實模塊替代樁模塊之后進行,第二種是開發能模擬真實模塊的樁模塊;第三種是自底向上集成模塊。第一種方法又回退為非增量式的集成方法,使錯誤難于定位和糾正,并失去了在組裝模塊時進行一些特定測試的可能性;第二種方法無疑要大大增加開銷;第三種方法更切實可行。
b.自底向上集成
自底向上測試是從軟件結構最低層的模塊開始組裝測試。因測試到較高層模塊時,所需的下層模塊功能均已具備,所以不再需要樁模塊。
文章來源于領測軟件測試網 http://www.kjueaiud.com/