3、 面向對象設計的測試
通常的結構化的設計方法,用的"是面向作業的設計方法,它把系統分解以后,提出一組作業,這些作業是以過程實現系統的基礎構造,把問題域的分析轉化為求解域的設計,分析的結果是設計階段的輸入"。而面向對象設計(OOD)采用"造型的觀點",以OOA為基礎歸納出類,并建立類結構或進一步構造成類庫,實現分析結果對問題空間的抽象。由此可見,OOD不是在OOA上的另一思維方式的大動干戈,而是OOA的進一步細化和更高層的抽象。所以,OOD與OOA 的界限通常是難以嚴格區分的。OOD確定類和類結構不僅是滿足當前需求分析的要求,更重要的是通過重新組合或加以適當的補充,能方便實現功能的重用和擴增,以不斷適應用戶的要求。因此,對OOD的測試,應從如下三方面考慮:
對認定的類的測試
對構造的類層次結構的測試
對類庫的支持的測試
4、 面向對象編程的測試
典型的面向對象程序具有繼承、封裝和多態的新特性,這使得傳統的測試策略必須有所改變。封裝是對數據的隱藏,外界只能通過被提供的操作來訪問或修改數據,這樣降低了數據被任意修改和讀寫的可能性,降低了傳統程序中對數據非法操作的測試。繼承是面向對象程序的重要特點,繼承使得代碼的重用率提高,同時也使錯誤傳播的概率提高。多態使得面向對象程序對外呈現出強大的處理能力,但同時卻使得程序內"同一"函數的行為復雜化,測試時不得不考慮不同類型具體執行的代碼和產生的行為。
面向對象程序是把功能的實現分布在類中。能正確實現功能的類,通過消息傳遞來協同實現設計要求的功能。因此,在面向對象編程(OOP)階段,忽略類功能實現的細則,將測試的目光集中在類功能的實現和相應的面向對象程序風格,主要體現為以下兩個方面。
數據成員是否滿足數據封裝的要求
類是否實現了要求的功能
5、 面向對象的單元測試
傳統的單元測試的對象是軟件設計的最小單位——模塊。單元測試的依據是詳細設描述,單元測試應對模塊內所有重要的控制路徑設計測試用例,以便發現模塊內部的錯誤。單元測試多采用白盒測試技術,系統內多個模塊可以并行地進行測試。
當考慮面向對象軟件時,單元的概念發生了變化。封裝驅動了類和對象的定義,這意味著每個類和類的實例(對象)包裝了屬性(數據)和操縱這些數據的操作。而不是個體的模塊。最小的可測試單位是封裝的類或對象,類包含一組不同的操作,并且某特殊操作可能作為一組不同類的一部分存在,因此,單元測試的意義發生了較大變化。我們不再孤立地測試單個操作,而是將操作作為類的一部分。
6、 面向對象的集成測試
傳統的集成測試,有兩種方式通過集成完成的功能模塊進行測。(一)自頂向下集成:自頂向下集成是構造程序結構的一種增量式方式,它從主控模塊開始,按照軟件的控制層次結構,以深度優先或廣度優先的策略,逐步把各個模塊集成在一起。(二)自底向上集成:自底向上測試是從“原子”模塊(即軟件結構最低層的模塊)開始組裝測試。
文章來源于領測軟件測試網 http://www.kjueaiud.com/