軟件測試組織與管理及測試系列方法(三) 軟件測試
(1)采用邏輯覆蓋的結構測試。邏輯覆蓋又包含以下五種:語句覆蓋 、判定覆蓋、條件覆蓋、判定與條件覆蓋、路徑覆蓋。
(2)域測試。這是一種基于程序結構的測試方法。這里的“域”是指程序的輸入空間。域測試正是在分析輸入空間的基礎上,選擇適當的測試點以后進行測試的。
(3)符號測試。符號測試是基于代數運算的一種結構測試方法。符號測試方法受分支問題、二義性問題和大程序問題的困擾,這些問題嚴重地影響著它的發展前景。
(4)數據流測試。數據流測試是指一個基于通過程序的控制流,從建立的數據目標狀態的序列中發現異常的結構測試方法。
(5)定義域測試。定義域測試的重點在分類方面,它還要判斷出定義域的正確性。定義域測試與集合理論密切相關。
(6)程序變異測試。這是一種基于程序錯誤的測試方法,它的目的是要說明程序中不含有某些特定的錯誤。
3.測試步驟
軟件測試過程一般按四個步驟進行,即單元測試、集成測試、確認測試和系統測試。
(1)單元測試
也稱模塊測試,這是針對軟件設計的最小單位-模塊進行正確性檢驗的測試工作,其目的在于發現各模塊內部可能存在的各種差錯。單元測試的依據是詳細設計描述,單元測試應對模塊內所有重要的控制路徑設計測試用例,以便發現模塊內部的錯誤。單元測試多采用結構測試(白盒測試)技術,系統內多個模塊可以并行地進行測試。
a.單元測試的任務
單元測試任務包括:(1)模塊接口測試;(2)模塊局部數據結構測試;(3)模塊邊界條件測試;(4)模塊中所有獨立執行通路測試;(5)模塊的各條錯誤處理通路測試。
模塊接口測試是單元測試的基礎。只有在數據能正確流入、流出模塊的前提下,其他測試才有意義。測試接口正確與否應該考慮下列因素:(1)輸入的實際參數與形式參數的個數是否相同;(2)輸入的實際參數與形式參數的屬性是否匹配;(3)輸入的實際參數與形式參數的量綱是否一致;(4)調用其他模塊時所給實際參數的個數是否與被調模塊的形參個數相同;(5)調用其他模塊時所給實際參數的屬性是否與被調模塊的形參屬性匹配;(6)調用其他模塊時所給實際參數的量綱是否與被調模塊的形參量綱一致;(7)調用預定義函數時所用參數的個數、屬性和次序是否正確;(8)是否存在與當前入口點無關的參數引用;(9)是否修改了只讀型參數;(10)各模塊對全程變量的定義是否一致;(11)是否把某些約束作為參數傳遞。
如果模塊內包括外部輸入輸出,還應該考慮下列因素:(1)文件屬性是否正確;(2)OPEN/CLOSE語句是否正確;(3)格式說明與輸入輸出語句是否匹配;(4)緩沖區大小與記錄長度是否匹配;(5)文件使用前是否已經打開;(6)是否處理了文件尾;(7)是否處理了輸入/輸出錯誤;(8)輸出信息中是否有文字性錯誤。
檢查局部數據結構是為了保證臨時存儲在模塊內的數據在程序執行過程中完整、正確。局部數據結構往往是錯誤的根源,應仔細設計測試用例,力求發現以下幾類錯誤:(1)不合適或不相容的類型說明;(2)變量無初值;(3)變量初始化或省缺值有錯;(4)不正確的變量名(拼錯或不正確地截斷);(5)出現上溢、下溢和地址異常。
除局部數據結構外,如果可能,單元測試時還應該查清全局數據對模塊的影響。
在模塊中應對每一條獨立執行路徑進行測試,單元測試的基本任務是保證模塊中每條語句至少執行一次。此時設計測試用例是為了發現因錯誤計算、不正確的比較和不適當的控制流造成的錯誤。此時基本路徑測試和循環測試是最常用且最有效的測試技術。計算中常見的錯誤包括:(1)誤解或用錯了算符優先級;(2)混合類型運算;(3)變量初值錯;(4)精度不夠;(5)表達式符號錯。
比較判斷與控制流緊密相關,測試用例還應致力于發現下列錯誤:(1)不同數據類型的對象之間進行比較;(2)錯誤地使用邏輯運算符或優先級;(3)因計算機表示的局限性,期望理論上相等而實際上不相等的兩個量相等;(4)比較運算或變量出錯;(5)循環終止條件不可能出現;(6)迭代發散時不能退出;(7)錯誤地修改了循環變量。
文章來源于領測軟件測試網 http://www.kjueaiud.com/