3.面向對象軟件的測試
面向對象的方法(Object-oriented method, OO)是軟件工程方法的一次飛躍。對象是一個具有一組狀態的實體,并封裝了附加于這些狀態的操作。狀態描述了對象的屬性或特征,操作描述了對象改變其狀態的方法以及該對象為其他對象所提供的服務。面向對象方法認為,人類生活在一個由對象組成的世界中。對象可以被歸類、描述、組織、組合、創建和操縱。面向對象方法是一種模型化世界的抽象方法,結構上具有良好的高內聚低耦合特性。采用面向對象技術設計和開發的軟件系統更易于維護,在對系統進行修改時,能夠產生較少的副作用。同時,面向對象技術提出了類、繼承、接口等概念,從而為對象的復用提供了良好的支持機制。因而采用面向對象技術對軟件產品進行設計與開發,能夠有效地提高軟件組織的開發效率。
隨著面向對象分析和面向對象設計技術的日漸成熟,面向對象的軟件開發技術得到了軟件界的普遍認可。但是,由于面向對象的程序設計語言提供了數據抽象、繼承、多態和動態綁定等機制,傳統的軟件測試方法以及測試工具已不能為面向對象的軟件提供良好的支持。
面向對象的程序中,對象是封裝了描述其屬性的數據及可以施加在這些數據上的操作的封裝體。屬性表示對象的狀態,操作表示對象的行為,消息描述了對象執行操作的規格說明。對象之間通過發送消息啟動相應的操作,通過修改對象的狀態,實現系統狀態間的相互轉換。類是對具有相同屬性和行為的一組相似對象的描述,它描述了該類對象所具有的共同特征。面向對象軟件的測試與傳統的軟件測試有所不同。從面向對象單元測試開始,要考慮類間的繼承測試?梢愿鶕愰g繼承關系的層次特性對類進行增量測試,即通過復用和增量更新父類的測試信息去指導子類的測試。有人根據類是抽象數據類型的實現這一原理,引入了一種和面向對象語言語法相似的代數規范描述語言LOBAS,作為類的測試模型。通過分析軟件的需求和功能規范來選擇和產生測試數據,重點測試一個作用于被測類對象的消息序列能否使該對象處于正確的狀態。也可以采用黑盒測試和白盒測試相結合的方法,用黑盒測試法選取測試用例,用白盒測試來檢測程序執行一個測試用例產生的兩個對象是否觀測等價(即處于相同的抽象狀態),并補充一些測試用例,對類進行測試。
對傳統軟件,測試人員普遍認為可以分為四個級別的測試:單元測試、集成測試、確認測試和系統測試。面向對象的程序測試應當分為幾個級別,目前尚未達成共識。一種意見認為,從面向對象程序的結構出發,面向對象的程序測試應當分為四個級別:
1). 行為級:測試類中定義的每個操作;
2). 類級:測試封裝在一個類中的操作和數據之間的相互作用;
3). 簇級:測試一組協同工作的類之間的相互作用;
4). 系統級:考察由所有類和主程序構成的整個系統。
而另一種意見則認為面向對象的程序執行實際上是執行一個由外部事件驅動的操作序列。根據這一特征,應將面向對象的測試分為五個層次:
1). 行為測試;
2). 消息路徑測試;
3). 系統基本功能測試;
4). 線程測試;
5). 線程間相互作用測試。
文章來源于領測軟件測試網 http://www.kjueaiud.com/