1.3 是否能實現OOA中定義的服務。
1.4 是否對應著一個含義明確的數據抽象。
1.5 是否盡可能少的依賴其他類。
1.6 類中的方法(C++:類的成員函數)是否單用途。
2 對構造的類層次結構的測試
為能充分發揮面向對象的繼承共享特性,OOD的類層次結構,通;贠OA中產生的分類結構的原則來組織,著重體現父類和子類間一般性和特殊性。兩者概念上的差異。在當前的問題空間,對類層次結構的主要要求是能在解空間構造實現全部功能的結構框架。為此,測試如下方面:
2.1 類層次結構是否含蓋了所有定義的類。
2.2 是否能體現OOA中所定義的實例關聯。
2.3 是否能實現OOA中所定義的消息關聯。
2.4 子類是否具有父類沒有的新特性。
2.5 子類間的共同特性是否完全在父類中得以體現。
3 對類庫支持的測試
對類庫的支持雖然也屬于類層次結構的組織問題,但其強調的重點是再次軟件開發的重用。由于它并不直接影響當前軟件的開發和功能實現,因此,將其單獨提出來測試,也可作為對高質量類層次結構的評估。擬訂測試點如下:
3.1 一組子類中關于某種含義相同或基本相同的操作,是否有相同的接口(包括名字和參數表)。
3.2 類中方法(C++:類的成員函數)功能是否較單純,相應的代碼行是否較少。
3.3 類的層次結構是否是深度大,寬度小。
五 面向對象編程的測試(OOP Test)
典型的面向對象程序具有繼承、封裝和多態的新特性,這使得傳統的測試策略必須有所改變。封裝是對數據的隱藏,外界只能通過被提供的操作來訪問或修改數據,這樣降低了數據被任意修改和讀寫的可能性,降低了傳統程序中對數據非法操作的測試。繼承是面向對象程序的重要特點,繼承使得代碼的重用率提高,同時也使錯誤傳播的概率提高。繼承使得傳統測試遇見了這樣一個難題:對繼承的代碼究竟應該怎樣測試?(參見面向對象單元測試)。多態使得面向對象程序對外呈現出強大的處理能力,但同時卻使得程序內"同一"函數的行為復雜化,測試時不得不考慮不同類型具體執行的代碼和產生的行為。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/