面向對象的軟件測試與傳統測試的比較 軟件測試
軟件危機是軟件界甚至整個計算機界最熱門的話題。為了解決這場危機,軟件從業人員、專家和學者做出了大量的努力,F在人們已經逐步認識到所謂的軟件危機實際上僅是一種狀況,那就是軟件中有錯誤,正是這些錯誤導致了軟件開發在成本、進度和質量上的失控。
軟件的質量不僅是體現在程序的正確性上,它和編碼以前所做的需求分析,軟件設計也密切相關。這時,對錯誤的糾正往往不能通過可能會誘發更多錯誤的簡單的修修補補,而必須追溯到軟件開發的最初階段。因此,為了保證軟件的質量,我們應該著眼于整個軟件生存期,特別是著眼于編碼以前的各開發階段的工作。于是,軟件測試的概念和實施范圍必須擴充,應該包括在整個開發各階段的復查、評估和檢測。由此,廣義的軟件測試實際是由確認、驗證、測試三個方面組成。
在整個軟件生存期,確認、驗證、測試分別有其側重的階段。確認主要體現在計劃階段、需求分析階段、也會出現在測試階段;驗證主要體現在設計階段和編碼階段;測試主要體現在編碼階段和測試階段。事實上,確認、驗證、測試是相輔相成的。確認無疑會產生驗證和測試的標準,而驗證和測試通常又會幫助完成一些確認,特別是在系統測試階段。
傳統的測試計算機軟件的策略是從“小型測試”開始,逐步走向“大型測試”。即我們從單元測試開始,然后逐步進入集成測試,最后是有效性和系統測試。在傳統應用中,單元測試集中在最小的可編譯程序單位——子程序(如,模塊、子例程、進程),一旦這些單元均被獨立測試后,它被集成在程序結構中,這時要進行一系列的回歸測試以發現由于模塊的接口所帶來的錯誤和新單元加入所導致的副作用,最后,系統被作為一個整體測試以保證發現在需求中的錯誤。
面向對象程序的結構不再是傳統的功能模塊結構,作為一個整體,原有集成測試所要求的逐步將開發的模塊搭建在一起進行測試的方法已成為不可能。而且,面向對象軟件拋棄了傳統的開發模式,對每個開發階段都有不同以往的要求和結果,已經不可能用功能細化的觀點來檢測面向對象分析和設計的結果。因此,傳統的測試模型對面向對象軟件已經不再適用。
1、 面向對象測試模型
面向對象的開發模型突破了傳統的瀑布模型,將開發分為面向對象分析(OOA),面向對象設計(OOD),和面向對象編程(OOP)三個階段。針對這種開發模型,結合傳統的測試步驟的劃分,我們把面向對象的軟件測試分為:面向對象分析的測試,面向對象設計的測試,面向對象編程的測試,面向對象單元測試,面向對象集成測試,面向對象系統測試。
2、 面向對象分析的測試
傳統的面向過程分析是一個功能分解的過程,是把一個系統看成可以分解的功能的集合。這種傳統的功能分解分析法的著眼點在于一個系統需要什么樣的信息處理方法和過程,以過程的抽象來對待系統的需要。而面向對象分析(OOA)是"把E-R圖和語義網絡模型,即信息造型中的概念,與面向對象程序設計語言中的重要概念結合在一起而形成的分析方法",最后通常是得到問題空間的圖表的形式描述。OOA直接映射問題空間,全面的將問題空間中實現功能的現實抽象化。將問題空間中的實例抽象為對象,用對象的結構反映問題空間的復雜實例和復雜關系,用屬性和操作表示實例的特性和行為。對一個系統而言,與傳統分析方法產生的結果相反,行為是相對穩定的,結構是相對不穩定的,這更充分反映了現實的特性。OOA的結果是為后面階段類的選定和實現,類層次結構的組織和實現提供平臺。因此,對OOA的測試,應從以下方面考慮:
對認定的對象的測試
對認定的結構的測試
對認定的主題的測試
對定義的屬性和實例關聯的測試
對定義的服務和消息關聯的測試
文章來源于領測軟件測試網 http://www.kjueaiud.com/