軟件測(cè)試面向?qū)ο鬁y(cè)試技術(shù).ppt_第1頁(yè)
軟件測(cè)試面向?qū)ο鬁y(cè)試技術(shù).ppt_第2頁(yè)
軟件測(cè)試面向?qū)ο鬁y(cè)試技術(shù).ppt_第3頁(yè)
軟件測(cè)試面向?qū)ο鬁y(cè)試技術(shù).ppt_第4頁(yè)
軟件測(cè)試面向?qū)ο鬁y(cè)試技術(shù).ppt_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第八章 面向?qū)ο筌浖y(cè)試,一、面向?qū)ο鬁y(cè)試概述,1. 傳統(tǒng)的軟件開(kāi)發(fā)存在的問(wèn)題 (1)軟件重用性差 (2)軟件可維護(hù)性差 (3)開(kāi)發(fā)出的軟件不易滿足用戶需求,一、面向?qū)ο鬁y(cè)試概述,2、面向?qū)ο蠹夹g(shù) 基本概念 (1)對(duì)象 (2)對(duì)象的狀態(tài)和行為 (3)類 (4)類的結(jié)構(gòu)(類間關(guān)系) (5)消息和方法,一、面向?qū)ο鬁y(cè)試概述,我們生活在一個(gè)對(duì)象的世界里,每個(gè)對(duì)象有一定的屬性,把屬性相同的對(duì)象進(jìn)行歸納就形成類 例如:家具就可以看作類, 其主要的屬性有價(jià)格、尺寸、重量、位置和顏色等 無(wú)論我們談?wù)撟雷?、椅子還是沙發(fā)、衣櫥,這些屬性總是可用的,因?yàn)樗鼈兌际羌揖叨^承了為類定義的所有屬性。,除了屬性之外,每個(gè)

2、對(duì)象可以被一系列不同的方式操縱,它可以被買(mǎi)賣(mài)、移動(dòng)、修改(如漆上不同的顏色)。 這些操作或方法將改變對(duì)象的一個(gè)或多個(gè)屬性。 類的合法操作可以和對(duì)象的定義聯(lián)系在一起,并且被類的所有實(shí)例繼承。,一、面向?qū)ο鬁y(cè)試概述,面向?qū)ο筇卣?(1)對(duì)象唯一性 (2)分類性 (3)繼承性 (4)多態(tài)性,一、面向?qū)ο鬁y(cè)試概述,面向?qū)ο笠?(1)抽象 (2)封裝 (3)共享,面向?qū)ο筌浖_(kāi)發(fā)方法與傳統(tǒng)的軟件開(kāi)發(fā)方法的區(qū)別:,(1)調(diào)查、分析系統(tǒng)需求,建立一個(gè)全面、合理、統(tǒng)一的模型。 (2)對(duì)象設(shè)計(jì)。 (3)程序?qū)崿F(xiàn)。,面向?qū)ο筌浖_(kāi)發(fā)過(guò)程,面向?qū)ο蟮拈_(kāi)發(fā)模型突破了傳統(tǒng)的瀑布模型,將開(kāi)發(fā)分為面向?qū)ο蠓治觯∣OA),

3、面向?qū)ο笤O(shè)計(jì)(OOD),和面向?qū)ο缶幊蹋∣OP)三個(gè)階段。 針對(duì)這種開(kāi)發(fā)模型,結(jié)合傳統(tǒng)的測(cè)試步驟的劃分,我們把面向?qū)ο蟮能浖y(cè)試分為: 面向?qū)ο蠓治龅臏y(cè)試,面向?qū)ο笤O(shè)計(jì)的測(cè)試,面向?qū)ο缶幊痰臏y(cè)試; 面向?qū)ο髥卧獪y(cè)試,面向?qū)ο蠹蓽y(cè)試,面向?qū)ο笙到y(tǒng)測(cè)試。,面向?qū)ο鬁y(cè)試,在傳統(tǒng)的面向過(guò)程程序中,對(duì)于函數(shù) y=Function(x); 只需要考慮一個(gè)函數(shù)(Function())的行為特點(diǎn),在面向?qū)ο蟪绦蛑校悴坏貌煌瑫r(shí)考慮基類函數(shù)(Base:Function())的行為和繼承類函數(shù)(Derived:Function())的行為。 面向?qū)ο蟪绦虻慕Y(jié)構(gòu)不再是傳統(tǒng)的功能模塊結(jié)構(gòu),作為一個(gè)整體,原有集成測(cè)試

4、所要求的逐步將開(kāi)發(fā)的模塊搭建在一起進(jìn)行測(cè)試的方法已不可能。,面向?qū)ο鬁y(cè)試,面向?qū)ο筌浖?duì)每個(gè)開(kāi)發(fā)階段都有不同以往的要求和結(jié)果,已經(jīng)不可能用功能細(xì)化的觀點(diǎn)來(lái)檢測(cè)面向?qū)ο蠓治龊驮O(shè)計(jì)的結(jié)果。針對(duì)面向?qū)ο筌浖拈_(kāi)發(fā)特點(diǎn),應(yīng)該有一種新的測(cè)試模型。,二、面向?qū)ο竽P?OOA Test:面向?qū)ο蠓治龅臏y(cè)試, OOD Test:面向?qū)ο笤O(shè)計(jì)的測(cè)試, OOP Test:面向?qū)ο缶幊痰臏y(cè)試; OO Unit Test:面向?qū)ο髥卧獪y(cè)試, OO Integrate Test:面向?qū)ο蠹蓽y(cè)試, OO System Test:面向?qū)ο笙到y(tǒng)測(cè)試。,二、面向?qū)ο竽P?OOA Test和OOD Test:是對(duì)分析和設(shè)計(jì)結(jié)果

5、的測(cè)試,主要是對(duì)分析設(shè)計(jì)生成的文檔進(jìn)行,是軟件開(kāi)發(fā)前期的關(guān)鍵性測(cè)試; OOP Test:主要針對(duì)編程風(fēng)格和程序代碼實(shí)現(xiàn)進(jìn)行測(cè)試看,其測(cè)試內(nèi)容主要在面向?qū)ο髥卧兔嫦驅(qū)ο蠹蓽y(cè)試中體現(xiàn); OO Unit Test:對(duì)程序內(nèi)部具體單一的功能模塊的測(cè)試。主要是對(duì)類的測(cè)試。OO Integrate Test:主要對(duì)系統(tǒng)內(nèi)部相互服務(wù)進(jìn)行測(cè)試,如方法間的相互作用,類間的消息傳遞等。 OO System Test:是面向?qū)ο鬁y(cè)試的最后階段的測(cè)試,主要以用戶需求為測(cè)試標(biāo)準(zhǔn),借鑒OOA及其測(cè)試結(jié)果。,二、面向?qū)ο竽P?OOA:將問(wèn)題空間中實(shí)現(xiàn)的功能進(jìn)行抽象,問(wèn)題空間中的實(shí)例抽象為對(duì)象,用對(duì)象的結(jié)構(gòu)反映問(wèn)題空間的

6、復(fù)雜關(guān)系,用屬性和服務(wù)表示實(shí)例的特殊性和行為 OOD:建立類結(jié)構(gòu)或進(jìn)一步構(gòu)造類庫(kù),實(shí)現(xiàn)分析結(jié)果對(duì)問(wèn)題空間的抽象。 OOP:軟件的計(jì)算機(jī)實(shí)現(xiàn)。,三、面向?qū)ο蠓治龊驮O(shè)計(jì)的測(cè)試,OOA Test和OOD Test:是對(duì)分析和設(shè)計(jì)結(jié)果的測(cè)試,主要是對(duì)分析設(shè)計(jì)生成的文檔進(jìn)行,是軟件開(kāi)發(fā)前期的關(guān)鍵性測(cè)試; OOA直接映射問(wèn)題空間,全面地在問(wèn)題空間中實(shí)現(xiàn)功能的現(xiàn)實(shí)抽象化。OOA必須回答: (1)為完成用戶要求,系統(tǒng)應(yīng)提供哪些功能 (2)系統(tǒng)應(yīng)由哪些對(duì)象構(gòu)成 (3)每個(gè)對(duì)象應(yīng)有哪些屬性和服務(wù) (4)對(duì)象間應(yīng)有怎樣的聯(lián)系,三、面向?qū)ο蠓治龊驮O(shè)計(jì)的測(cè)試,面向?qū)ο笤O(shè)計(jì)(OOD)采用“造型的觀點(diǎn)”,以O(shè)OA為基礎(chǔ)歸納

7、出類,并建立類結(jié)構(gòu)或進(jìn)一步構(gòu)造成類庫(kù),實(shí)現(xiàn)分析結(jié)果對(duì)問(wèn)題空間的抽象。OOD 歸納的類,可以是對(duì)象簡(jiǎn)單的延續(xù),可以是不同對(duì)象的相同或相似的服務(wù)。由此可見(jiàn),OOD不是在OOA上的另一思維方式的大動(dòng)干戈,而是OOA的進(jìn)一步細(xì)化和更高層的抽象。 面向?qū)ο笤O(shè)計(jì)(OOD)是以O(shè)OA歸納出的類為基礎(chǔ),建立類結(jié)構(gòu)甚至進(jìn)一步構(gòu)造成類庫(kù),實(shí)現(xiàn)分析結(jié)果對(duì)問(wèn)題空間的抽象。,三、面向?qū)ο蠓治龊驮O(shè)計(jì)的測(cè)試,對(duì)認(rèn)定的對(duì)象的測(cè)試,OOA(面向?qū)ο蠓治觯┲姓J(rèn)定的對(duì)象是對(duì)問(wèn)題空間中的結(jié)構(gòu)、其他系統(tǒng)、設(shè)備、被記憶的事件、系統(tǒng)涉及的人員等實(shí)際實(shí)例的抽象。對(duì)它的測(cè)試可以從如下方面考慮: 認(rèn)定的對(duì)象是否全面,其名稱應(yīng)該盡量準(zhǔn)確、適用,是

8、否問(wèn)題空間中所涉及到的實(shí)例都反映在認(rèn)定的抽象對(duì)象中。 認(rèn)定的對(duì)象是否具有多個(gè)屬性。只有一個(gè)屬性的對(duì)象通常應(yīng)看作其他對(duì)象的屬性而不是抽象為獨(dú)立的對(duì)象 對(duì)認(rèn)定為同一對(duì)象的實(shí)例是否有共同的、區(qū)別于其他實(shí)例的共同屬性,是否提供或需要相同的服務(wù) 如果系統(tǒng)沒(méi)有必要始終保持對(duì)象代表的實(shí)例信息,提供或者得到關(guān)于它的服務(wù),認(rèn)定的對(duì)象也無(wú)必要。,三、面向?qū)ο蠓治龊驮O(shè)計(jì)的測(cè)試,對(duì)認(rèn)定的結(jié)構(gòu)的測(cè)試,認(rèn)定的結(jié)構(gòu)指的是多種對(duì)象的組織方式,用來(lái)反映問(wèn)題空間中的復(fù)雜實(shí)例和復(fù)雜關(guān)系。認(rèn)定的分類結(jié)構(gòu)測(cè)試要點(diǎn): 處于高層的對(duì)象,是否在問(wèn)題空間中含有不同于下一層對(duì)象的特殊可能性,即是否能派生出下一層對(duì)象。 處于同一低層的對(duì)象,是否能

9、抽象出在現(xiàn)實(shí)中有意義的更一般的上層對(duì)象。 對(duì)所有認(rèn)定的對(duì)象,是否能在問(wèn)題空間內(nèi)向上層抽象出在現(xiàn)實(shí)中有意義的對(duì)象。 高層的對(duì)象的特性是否完全體現(xiàn)下層的共性,低層的對(duì)象是否有高層特性基礎(chǔ)上的特殊性。,三、面向?qū)ο蠓治龊驮O(shè)計(jì)的測(cè)試,對(duì)構(gòu)造的類層次結(jié)構(gòu)的測(cè)試,為了能充分發(fā)揮面向?qū)ο罄^承共享特性,OOD(面向?qū)ο笤O(shè)計(jì))的類層次結(jié)構(gòu)通?;贠OA中產(chǎn)生的分類結(jié)構(gòu)的原則來(lái)組織,著重體現(xiàn)父類和子類間的一般性和特殊性。在當(dāng)前的問(wèn)題空間,對(duì)類層次結(jié)構(gòu)的主要要求是能在解空間構(gòu)造實(shí)現(xiàn)全部功能的結(jié)構(gòu)框架。為此測(cè)試要注意如下幾個(gè)方面: 類層次結(jié)構(gòu)是否涵蓋了所有定義的類; 是否能體現(xiàn)OOA中所定義的實(shí)例關(guān)聯(lián)、消息關(guān)聯(lián); 子

10、類是否具有父類沒(méi)有的新特性; 子類間的共同特性是否完全在父類中得以體現(xiàn)。,五、面向?qū)ο缶幊痰臏y(cè)試,典型的面向?qū)ο蟪绦蚓哂欣^承、封裝和多態(tài)的新特性,這使得傳統(tǒng)的測(cè)試策略必須有所改變。封裝是對(duì)數(shù)據(jù)的隱藏,外界只能通過(guò)被提供的操作來(lái)訪問(wèn)或修改數(shù)據(jù),這樣降低了數(shù)據(jù)被任意修改和讀寫(xiě)的可能性,降低了傳統(tǒng)程序中對(duì)數(shù)據(jù)非法操作的測(cè)試。繼承是面向?qū)ο蟪绦虻闹匾攸c(diǎn),繼承使得代碼的重用率提高,同時(shí)也使錯(cuò)誤傳播的概率提高。,五、面向?qū)ο缶幊痰臏y(cè)試,繼承使得傳統(tǒng)測(cè)試遇見(jiàn)了這樣一個(gè)難題:對(duì)繼承的代碼究竟應(yīng)該怎樣測(cè)試?多態(tài)使得面向?qū)ο蟪绦驅(qū)ν獬尸F(xiàn)出強(qiáng)大的處理能力,但同時(shí)卻使得程序內(nèi)“同一”函數(shù)的行為復(fù)雜化,測(cè)試時(shí)不得不考

11、慮不同類型具體執(zhí)行的代碼和產(chǎn)生的行為。,面向?qū)ο蟪绦蚴前压δ艿膶?shí)現(xiàn)分布在類中。能正確實(shí)現(xiàn)功能的類,通過(guò)消息傳遞來(lái)協(xié)同實(shí)現(xiàn)設(shè)計(jì)要求的功能。正是這種面向?qū)ο蟪绦蝻L(fēng)格,將出現(xiàn)的錯(cuò)誤能精確的確定在某一具體的類。因此,在面向?qū)ο缶幊蹋∣OP)階段,忽略類功能實(shí)現(xiàn)的細(xì)則,將測(cè)試的目光集中在類功能的實(shí)現(xiàn)和相應(yīng)的面向?qū)ο蟪绦蝻L(fēng)格,主要體現(xiàn)為以下兩個(gè)方面(假設(shè)編程使用C+語(yǔ)言): 數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求 類是否實(shí)現(xiàn)了要求的功能,六 、面向?qū)ο蟮膯卧獪y(cè)試,傳統(tǒng)的單元測(cè)試是針對(duì)程序的函數(shù)、過(guò)程或完成某一定功能的程序塊。沿用單元測(cè)試的概念,實(shí)際測(cè)試類成員函數(shù)。一些傳統(tǒng)的測(cè)試方法在面向?qū)ο蟮膯卧獪y(cè)試中都可以使用

12、。如等價(jià)類劃分法,因果圖法,邊值分析法,邏輯覆蓋法,路徑分析法,等等,單元測(cè)試一般建議由程序員完成。,六 、面向?qū)ο蟮膯卧獪y(cè)試,面向?qū)ο蟮膯卧獪y(cè)試的對(duì)象是軟件設(shè)計(jì)的最小單位類。 單元測(cè)試的依據(jù)是詳細(xì)設(shè)計(jì),單元測(cè)試應(yīng)對(duì)類中所有重要的屬性和方法設(shè)計(jì)測(cè)試用例,以發(fā)現(xiàn)類內(nèi)部的錯(cuò)誤。 單元測(cè)試多采用白盒測(cè)試技術(shù),系統(tǒng)內(nèi)多個(gè)類都可以并行進(jìn)行測(cè)試。沿用單元測(cè)試概念,實(shí)際測(cè)試類成員函數(shù)。一些傳統(tǒng)的測(cè)試方法在面向?qū)ο蟮膯卧獪y(cè)試中都可以使用,如等價(jià)類劃分、邊界值分析、因果圖、邏輯覆蓋、路徑分析法等。,1、單元測(cè)試的內(nèi)容 面向?qū)ο蟮膯卧褪穷?,單元測(cè)試實(shí)際測(cè)試的就是對(duì)類的測(cè)試。類測(cè)試的目的主要確保一個(gè)類的代碼能夠完

13、全滿足類的說(shuō)明所描述的要求。,2、單元測(cè)試開(kāi)始的時(shí)間 單元測(cè)試開(kāi)始的時(shí)間一般在完全說(shuō)明了這個(gè)類,并且準(zhǔn)備對(duì)其編碼后不久。單元測(cè)試開(kāi)始時(shí)要制定一個(gè)測(cè)試計(jì)劃。 在反復(fù)迭代的過(guò)程中,類的實(shí)現(xiàn)和說(shuō)明在進(jìn)程中可能會(huì)發(fā)生變化,所以應(yīng)該在軟件的其他部件使用該類之前對(duì)類進(jìn)行測(cè)試,同時(shí)還有必要執(zhí)行回歸測(cè)試。,3、單元測(cè)試的人員 由另一個(gè)類的開(kāi)發(fā)人員編寫(xiě)測(cè)試計(jì)劃,由該類的開(kāi)發(fā)人員完成測(cè)試,避免對(duì)類說(shuō)明的錯(cuò)誤理解,4、單元測(cè)試方法 單元測(cè)試的方法有代碼檢查和執(zhí)行測(cè)試用例。在某些情況下,用代碼檢查代替基于執(zhí)行的測(cè)試方法是可行的,但是,代碼檢查也存在以下兩個(gè)不利之處: 代碼檢查容易受人為因素影響 代碼檢查在回歸測(cè)試方面

14、明顯需要更多的工作量,類測(cè)試按順序分為以下三部分: 基于屬性的測(cè)試:類中所有屬性的設(shè)置和訪問(wèn)的測(cè)試。 基于服務(wù)的測(cè)試:測(cè)試類中的每個(gè)方法。 基于狀態(tài)的測(cè)試:除了類的每個(gè)操作要進(jìn)行測(cè)試,類的行為也要進(jìn)行測(cè)試,所有能引起狀態(tài)變化的事件都要模擬到。類的行為通??捎脿顟B(tài)圖來(lái)描述,在利用狀態(tài)圖進(jìn)行類測(cè)試時(shí),可考慮覆蓋所有狀態(tài)、狀態(tài)遷移等覆蓋標(biāo)準(zhǔn),也可考慮從初始狀態(tài)到終止?fàn)顟B(tài)的所有遷移路徑的覆蓋。,5、方法的測(cè)試 在測(cè)試類的功能實(shí)現(xiàn)時(shí),應(yīng)該首先保證類成員函數(shù)的正確性。 測(cè)試時(shí)主要考慮封裝在類中的一個(gè)方法對(duì)數(shù)據(jù)進(jìn)行的操作,可以采用傳統(tǒng)的模塊測(cè)試方法,通過(guò)向所在對(duì)象發(fā)消息來(lái)執(zhí)行,它的執(zhí)行與狀態(tài)有關(guān)。 傳統(tǒng)的針

15、對(duì)模塊的設(shè)計(jì)測(cè)試用例的技術(shù),如等價(jià)劃分、邊界值分析、因果圖、邏輯覆蓋、路徑覆蓋等方法,仍然可以作為測(cè)試類中每個(gè)方法的主要技術(shù)。,在面向?qū)ο蟮南到y(tǒng)中的方法,是通過(guò)消息來(lái)驅(qū)動(dòng)執(zhí)行的,要測(cè)試類中的方法,必須用一個(gè)驅(qū)動(dòng)程序?qū)Ρ粶y(cè)方法發(fā)送一條消息以驅(qū)動(dòng)其執(zhí)行,如果被測(cè)模塊或方法中調(diào)用了其他模塊或方法,則需要設(shè)計(jì)一個(gè)模擬被調(diào)子程序功能的存根程序,驅(qū)動(dòng)程序、存根程序及被測(cè)模塊或方法組成一個(gè)獨(dú)立的可執(zhí)行單元。,在面向?qū)ο筌浖?,在保證單個(gè)方法功能正確的基礎(chǔ)上,還應(yīng)該處理好測(cè)試方法之間的協(xié)助關(guān)系。 為了提高方法的重用性,設(shè)計(jì)方法的一個(gè)準(zhǔn)則是提高方法的內(nèi)聚,即在一個(gè)方法中只完成單個(gè)功能。 對(duì)于繼承過(guò)來(lái)的方法,也要

16、加以測(cè)試。 運(yùn)行測(cè)試用例的時(shí)候,必須提供能夠?qū)嵗臉额悾约捌痱?qū)動(dòng)器作用的“主程序”類,來(lái)提供和分析測(cè)試用例。,6、測(cè)試程度 可以根據(jù)已經(jīng)測(cè)試了多少類的實(shí)現(xiàn)和多少類的說(shuō)明來(lái)衡量測(cè)試的充分性。通常需要將這兩者都考慮到,希望測(cè)試到操作和狀態(tài)轉(zhuǎn)換的各種組合情況。一個(gè)對(duì)象能維持自己的狀態(tài),而狀態(tài)一般來(lái)說(shuō)也會(huì)影響操作的含義。,類層次的分割測(cè)試 這種測(cè)試可以減少用完全相同的方式檢查類測(cè)試用例的數(shù)目。這很像傳統(tǒng)軟件測(cè)試中的等價(jià)類劃分測(cè)試。分割測(cè)試又可分三種: 基于狀態(tài)的分割,按類操作是否改變類的狀態(tài)來(lái)分割(歸類); 基于屬性的分割,按類操作所用到的屬性來(lái)分割(歸類); 基于類型的分割,按完成的功能分割(歸

17、類)。,舉例,一個(gè)銀行類Account: 屬性:balance(賬戶余額)和creditLimit(透支額) 其操作有: open()打開(kāi)賬戶、 setup()建立、 deposit()存款、 withdraw()取錢(qián)、 balance()查詢余額、 summarize()操作清單、 creaditLimit()透支限額 close()關(guān)閉賬戶,舉例,基于狀態(tài)劃分就是根據(jù)它們改變類狀態(tài)的能力對(duì)類操作進(jìn)行劃分。 考慮Account類,狀態(tài)操作包括deposit()、withdraw(),非狀態(tài)操作包括balance()、summarize()、creaditLimit()。 將給不狀態(tài)的操作和不

18、改變狀態(tài)的操作分別進(jìn)行測(cè)試。因此: 測(cè)試用例a:opensetupdepositdepositwithdrawwithdrawclose 測(cè)試用例b:opensetupdepositsummrizecreaditLimitbalancewithdrawclose,舉例,基于屬性劃分就是根據(jù)它們所使用的屬性進(jìn)行劃分。 對(duì)于類Account,屬性balance和creaditLimit用于定義劃分。 操作可分為三類(1)使用creditLimit的操作;(2)修改creditLimit的操作;(3)既不使用也不修改creditLimit的操作。然后為每個(gè)劃分設(shè)計(jì)測(cè)試用例。 基于類別的劃分就是根據(jù)每

19、個(gè)操作所完成一般功能進(jìn)行劃分類操作。 例如Account類操作可以劃分初始化操作open()、setup(),計(jì)算操作deposit()、withdraw(),查詢操作balance()、summarize()、creadLimit()及關(guān)閉操作close()。,七 、面向?qū)ο蟮募蓽y(cè)試,對(duì)于面向?qū)ο蟪绦?,相互調(diào)用的功能是散布在程序的不同類中,類通過(guò)消息相互作用申請(qǐng)和提供服務(wù)。 把一組相互有影響的類看作一個(gè)整體稱為類簇。 類簇的測(cè)試主要依據(jù)系統(tǒng)中相關(guān)類的層次關(guān)系,檢查類之間相互作用的正確性,即檢查各相關(guān)類之間消息連接的合法性、子類的繼承性與父類的一致性、動(dòng)態(tài)綁定執(zhí)行的正確性、類簇協(xié)同完成系統(tǒng)功

20、能的正確性等。 面向?qū)ο蟮募蓽y(cè)試能夠檢測(cè)出相對(duì)獨(dú)立的單元測(cè)試無(wú)法檢測(cè)出的那些類相互作用時(shí)才會(huì)產(chǎn)生的錯(cuò)誤。,基于單元測(cè)試對(duì)成員函數(shù)行為正確性的保證,集成測(cè)試只關(guān)注于系統(tǒng)的結(jié)構(gòu)和內(nèi)部的相互作用。 面向?qū)ο蟮募蓽y(cè)試可以分成兩步進(jìn)行:先進(jìn)行靜態(tài)測(cè)試,再進(jìn)行動(dòng)態(tài)測(cè)試。,七 、面向?qū)ο蟮募蓽y(cè)試,靜態(tài)測(cè)試主要針對(duì)程序的結(jié)構(gòu)進(jìn)行,檢測(cè)程序結(jié)構(gòu)是否符合設(shè)計(jì)要求。 現(xiàn)在流行的一些測(cè)試軟件都能提供一種稱為“可逆性工程”的功能,即通過(guò)原程序得到類關(guān)系圖和函數(shù)功能調(diào)用關(guān)系圖。 通過(guò)“可逆性工程”得到的結(jié)果與OOD的結(jié)果相互比較,檢測(cè)程序結(jié)構(gòu)和實(shí)現(xiàn)上是否有缺陷,通過(guò)這種方法檢測(cè)OOP是否達(dá)到了OOD的要求。,動(dòng)態(tài)測(cè)

21、試設(shè)計(jì)測(cè)試用例時(shí),通常需要功能調(diào)用結(jié)構(gòu)圖、類關(guān)系圖或者實(shí)體關(guān)系圖為參考,確定不需要被重復(fù)測(cè)試的部分,從而優(yōu)化測(cè)試用例,減少測(cè)試工作量,使得進(jìn)行的測(cè)試能夠達(dá)到一定覆蓋標(biāo)準(zhǔn)。 測(cè)試所要達(dá)到的覆蓋標(biāo)準(zhǔn): 達(dá)到類所有的服務(wù)要求或服務(wù)提供的一定覆蓋率; 依據(jù)類間傳遞的消息,達(dá)到對(duì)所有執(zhí)行線程的一定覆蓋率; 達(dá)到類的所有狀態(tài)的一定覆蓋率等。 同時(shí)也可以考慮使用現(xiàn)有的一些測(cè)試工具 來(lái)得到程序代碼執(zhí)行的覆蓋率。,面向?qū)ο蠹蓽y(cè)試的測(cè)試策略,其測(cè)試有兩種不同策略: 基于類間協(xié)作關(guān)系的橫向測(cè)試 基于類間繼承關(guān)系的縱向測(cè)試。,1、基于類間協(xié)作關(guān)系的橫向測(cè)試 由系統(tǒng)的一個(gè)輸入事件為起點(diǎn),對(duì)其觸發(fā)的一組類進(jìn)行測(cè)試,執(zhí)行

22、相應(yīng)的操作/消息處理路徑,最后終止于某一輸出事件。 應(yīng)用回歸測(cè)試對(duì)以測(cè)試過(guò)的類集再重新執(zhí)行一次,以保證加入新類時(shí)不會(huì)產(chǎn)生意外的結(jié)果,2、基于類間繼承關(guān)系的縱向測(cè)試 首先通過(guò)測(cè)試獨(dú)立的類來(lái)開(kāi)始構(gòu)造系統(tǒng),在獨(dú)立類測(cè)試完成后,進(jìn)行下一層繼承獨(dú)立類的類的測(cè)試,這個(gè)依賴類層次的測(cè)試序列一直循環(huán)執(zhí)行到構(gòu)造完整個(gè)系統(tǒng)為止。 集成測(cè)試在面向?qū)ο笙到y(tǒng)中屬于應(yīng)用生命周期的一個(gè)階段,可在兩個(gè)層次上進(jìn)行: 對(duì)一個(gè)新類進(jìn)行測(cè)試,并測(cè)試在定義中所涉及的那些類的集成。 將各部件集合在一起組成完整的系統(tǒng)進(jìn)行測(cè)試。,類與子類的測(cè)試,假設(shè)類D是類C的子類,類C已進(jìn)行了充分的測(cè)試,分層與增量,派生類D是C的子類,那么所有的用于C的

23、基于規(guī)范的測(cè)試用例也都適用于D。 術(shù)語(yǔ)“繼承的測(cè)試用例”來(lái)代表從父類測(cè)試用例中選取出來(lái)的、用于子類的測(cè)試用例。 可以通過(guò)增量變化分析來(lái)確定繼承的測(cè)試用例中哪些在測(cè)試子類時(shí)必須執(zhí)行、哪些可以不執(zhí)行。,合理的分析,有利于找出更有價(jià)值的測(cè)試用例。,分層與增量 -測(cè)試用例選擇,D的接口中添加新的操作,并且有可能是D中的一個(gè)新方法實(shí)現(xiàn)的新操作。新操作引入了新的功能/代碼,這些都需要測(cè)試。 在D中改變那些在C中聲明的操作規(guī)范,需要為操作添加新的基于規(guī)范的測(cè)試用例。附加的測(cè)試用例提供了符合其前置條件的新輸入,并且對(duì)由任何加強(qiáng)了的后置條件導(dǎo)致的新的期望結(jié)果進(jìn)行檢查 。 在D中覆蓋那些在C中實(shí)現(xiàn)了某個(gè)操作并且被

24、D繼承了的方法,可以復(fù)用于該方法的所有繼承來(lái)的基于規(guī)范的測(cè)試用例 。 在D中添加新的實(shí)例變量來(lái)實(shí)現(xiàn)更多的狀態(tài)和/或?qū)傩?,最有可能與新的操作和/或重載方法中代碼有關(guān),而且關(guān)系到對(duì)測(cè)試的處理。 在D中改變類常量。類常量累計(jì)成每個(gè)測(cè)試用例的附加的后置條件。,注:設(shè)計(jì)測(cè)試用例時(shí),不但要設(shè)計(jì)確認(rèn)類功能滿足的輸入,還應(yīng)該有意識(shí)的設(shè)計(jì)一些被禁止的例子,確認(rèn)類是否有不合法的行為產(chǎn)生,如發(fā)送與類狀態(tài)不相適應(yīng)的消息,要求不相適應(yīng)的服務(wù)等。根據(jù)具體情況,動(dòng)態(tài)的集成測(cè)試,有時(shí)也可以通過(guò)系統(tǒng)測(cè)試完成。,八、 面向?qū)ο蟮南到y(tǒng)測(cè)試,系統(tǒng)測(cè)試應(yīng)該盡量搭建與用戶實(shí)際使用環(huán)境相同的測(cè)試平臺(tái),應(yīng)該保證被測(cè)系統(tǒng)的完整性,對(duì)臨時(shí)沒(méi)有的

25、系統(tǒng)設(shè)備部件,也應(yīng)有相應(yīng)的模擬手段。 系統(tǒng)測(cè)試時(shí),應(yīng)該參考OOA分析的結(jié)果,對(duì)應(yīng)描述的對(duì)象、屬性和各種服務(wù),檢測(cè)軟件是否能夠完全再現(xiàn)問(wèn)題空間。系統(tǒng)測(cè)試不僅是檢測(cè)軟件的整體行為表現(xiàn),從另一個(gè)側(cè)面看,也是對(duì)軟件開(kāi)發(fā)設(shè)計(jì)的再確認(rèn)。,具體測(cè)試內(nèi)容包括: 功能測(cè)試:測(cè)試是否滿足開(kāi)發(fā)要求,是否能夠提供設(shè)計(jì)所描述的功能,是否用戶的需求都得到滿足。 強(qiáng)度測(cè)試:測(cè)試系統(tǒng)的能力最高實(shí)際限度。 性能測(cè)試:測(cè)試軟件的運(yùn)行性能。 安全測(cè)試:驗(yàn)證安裝在系統(tǒng)內(nèi)的保護(hù)機(jī)構(gòu)確實(shí)能夠?qū)ο到y(tǒng)進(jìn)行保護(hù),使之不受各種非常的干擾。 容錯(cuò)性測(cè)試 可用性測(cè)試: 安裝/卸載測(cè)試(install/uninstall test)等等。,八、 面向?qū)ο蟮南到y(tǒng)測(cè)試,基于UML的系統(tǒng)測(cè)試 考察系統(tǒng)規(guī)格說(shuō)明、用例圖、GUI

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論