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