軟件測試面向對象的軟件測試技術[3]
關鍵字:面向對象 軟件測試技術(2) 單元級測試的測試分析和測試用例,規模和難度均遠小于對整個系統的測試分析和測試用例,并且對語句應該有100%的代碼執行覆蓋率。
(3) 設計測試用例選擇輸入數據的兩個假設:
l 如果函數(程序)對某一類輸入中的一個數據正確執行,對同類中的基他輸入也能正確執行(等價類)
l 如果函數(程序)對某一復雜度的輸入正確執行,對更高復雜度的輸入也能正確執行
(4) 針對繼承性,Brian Marick兩方面的考慮
l 繼承的成員函數是否都不需要測試:當繼承的成員函數在子類中做了改動;成員函數調用了改動過的成員函數的部分這兩種情況需要對子類重新測試
l 對父類的測試是否能照搬到子類:可以重新測試或在父類原有的測試要求和測試用例上增加新的測試要求和測試用例,主要針對子類中變動的部分進行測試
5. 面向對象軟件的集成測試
(1) 傳統的自頂向下或自底向上的集成測試策略在面向對象軟件的集成測試中無意義,OO軟件的集成測試需要在整個程序編譯完成后進行,面向對象程序具有動態特性,程序的控制流無法確定,只能對編譯完成的程序做基于黑盒子的集成測試
(2) 面向對象軟件的集成測試兩種策略
l 基于線程的測試(Thread based testing):集成對響應系統的一個輸入或事件所需的一組類,每個線程分別進行集成和測試,應用回歸測試以保證沒有產生副作用。
l 基于使用的測試(Use based testing):通過測試那些幾乎不使用服務器類的的類(獨立類)而開始構造系統,在獨立類測試完成后,下一層中使用獨立類的類(依賴類)被測試,這個依賴類層次的測試序列一直持續到構造完整個系統。
(3) 測試目的
能夠檢測出相對獨立的,單元測試無法檢測出的,那些類相互作用時才會產生的錯誤,只關注于系統的結構和內部的相互作用
(4) 面向對象軟件的集成測試過程
第一步:靜態測試 針對程序的結構進行,檢測程序結構是否符合設計要求。通過使用測試軟件的‘可逆性工程’功能,得出源程序的類系統圖和函數功能調用關系圖,與OOD結果相比較,檢測程序結構和實現上是否有缺陷,檢測OOP是否達到了設計要求
第二步:動態測試 根據靜態測試得出的函數功能調用關系圖或類關系圖作為參考,按照如下步驟設計測試用例,達到如下測試覆蓋標準
設計測試用例步驟:選定檢測的類,參考OOD分析結果,確定出類的狀態和相應的行為;確定覆蓋標準;利用結構關系圖確定待測類的所有關聯;根據程序中類的對象構造測試用例,確認使用什么輸入激發類的狀態,使用類的服務和期望產生什么行為等,還要設計一些類禁止的例子,確認類是否有不合法的行為產生
覆蓋標準:達到類所有的服務要求或服務提供的一定覆蓋率;依據類間傳遞的消息,達到對所有執行線程的一定覆蓋率;達到類的所有狀態的一定覆蓋率等
六. 面向對象軟件的確認和系統測試
(1) 系統測試:需要測試它與系統其他部分配套運行的表現,以確保在系統各部分協調工作的環境下軟件也能正常運行
文章來源于領測軟件測試網 http://www.kjueaiud.com/