版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、面向?qū)ο鬁y(cè)試概述1.傳統(tǒng)的軟件開(kāi)發(fā)存在的問(wèn)題(1)軟件重用性差(2)軟件可維護(hù)性差(3)開(kāi)發(fā)出的軟件不易滿足用戶需求第一頁(yè)第二頁(yè),共59頁(yè)。一、面向?qū)ο鬁y(cè)試概述2、面向?qū)ο蠹夹g(shù)基本概念(1)對(duì)象(2)對(duì)象的狀態(tài)和行為(3)類(lèi)(4)類(lèi)的結(jié)構(gòu)(類(lèi)間關(guān)系)(5)消息和方法第二頁(yè)第三頁(yè),共59頁(yè)。一、面向?qū)ο鬁y(cè)試概述
我們生活在一個(gè)對(duì)象的世界里,每個(gè)對(duì)象有一定的屬性,把屬性相同的對(duì)象進(jìn)行歸納就形成類(lèi)例如:家具就可以看作類(lèi),其主要的屬性有價(jià)格、尺寸、重量、位置和顏色等無(wú)論我們談?wù)撟雷印⒁巫舆€是沙發(fā)、衣櫥,這些屬性總是可用的,因?yàn)樗鼈兌际羌揖叨^承了為類(lèi)定義的所有屬性。除了屬性之外,每個(gè)對(duì)象可以被一系列不同的方式操縱,它可以被買(mǎi)賣(mài)、移動(dòng)、修改(如漆上不同的顏色)。這些操作或方法將改變對(duì)象的一個(gè)或多個(gè)屬性。類(lèi)的合法操作可以和對(duì)象的定義聯(lián)系在一起,并且被類(lèi)的所有實(shí)例繼承。第三頁(yè)第四頁(yè),共59頁(yè)。一、面向?qū)ο鬁y(cè)試概述面向?qū)ο筇卣鳎?)對(duì)象唯一性(2)分類(lèi)性(3)繼承性(4)多態(tài)性第四頁(yè)第五頁(yè),共59頁(yè)。一、面向?qū)ο鬁y(cè)試概述面向?qū)ο笠兀?)抽象(2)封裝(3)共享第五頁(yè)第六頁(yè),共59頁(yè)。面向?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)。第六頁(yè)第七頁(yè),共59頁(yè)。面向?qū)ο筌浖_(kāi)發(fā)過(guò)程面向?qū)ο蟮拈_(kāi)發(fā)模型突破了傳統(tǒng)的瀑布模型,將開(kāi)發(fā)分為面向?qū)ο蠓治觯∣OA),面向?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è)試。第七頁(yè)第八頁(yè),共59頁(yè)。面向?qū)ο鬁y(cè)試在傳統(tǒng)的面向過(guò)程程序中,對(duì)于函數(shù) y=Function(x);只需要考慮一個(gè)函數(shù)(Function())的行為特點(diǎn),在面向?qū)ο蟪绦蛑校悴坏貌煌瑫r(shí)考慮基類(lèi)函數(shù)(Base::Function())的行為和繼承類(lèi)函數(shù)(Derived::Function())的行為。面向?qū)ο蟪绦虻慕Y(jié)構(gòu)不再是傳統(tǒng)的功能模塊結(jié)構(gòu),作為一個(gè)整體,原有集成測(cè)試所要求的逐步將開(kāi)發(fā)的模塊搭建在一起進(jìn)行測(cè)試的方法已不可能。第八頁(yè)第九頁(yè),共59頁(yè)。面向?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è)試模型。第九頁(yè)第十頁(yè),共59頁(yè)。二、面向?qū)ο竽P?/p>
OOAOODOOPOOATestOODTestOOPTestOOUnitTestOOIntegrateTestOOSystemTestOOATest:面向?qū)ο蠓治龅臏y(cè)試,OODTest:面向?qū)ο笤O(shè)計(jì)的測(cè)試,OOPTest:面向?qū)ο缶幊痰臏y(cè)試;OOUnitTest:面向?qū)ο髥卧獪y(cè)試,OOIntegrateTest:面向?qū)ο蠹蓽y(cè)試,OOSystemTest:面向?qū)ο笙到y(tǒng)測(cè)試。第十頁(yè)第十一頁(yè),共59頁(yè)。二、面向?qū)ο竽P蚈OATest和OODTest:是對(duì)分析和設(shè)計(jì)結(jié)果的測(cè)試,主要是對(duì)分析設(shè)計(jì)生成的文檔進(jìn)行,是軟件開(kāi)發(fā)前期的關(guān)鍵性測(cè)試;OOPTest:主要針對(duì)編程風(fēng)格和程序代碼實(shí)現(xiàn)進(jìn)行測(cè)試看,其測(cè)試內(nèi)容主要在面向?qū)ο髥卧兔嫦驅(qū)ο蠹蓽y(cè)試中體現(xiàn);OOUnitTest:對(duì)程序內(nèi)部具體單一的功能模塊的測(cè)試。主要是對(duì)類(lèi)的測(cè)試。
OOIntegrateTest:主要對(duì)系統(tǒng)內(nèi)部相互服務(wù)進(jìn)行測(cè)試,如方法間的相互作用,類(lèi)間的消息傳遞等。OOSystemTest:是面向?qū)ο鬁y(cè)試的最后階段的測(cè)試,主要以用戶需求為測(cè)試標(biāo)準(zhǔn),借鑒OOA及其測(cè)試結(jié)果。第十一頁(yè)第十二頁(yè),共59頁(yè)。二、面向?qū)ο竽P蚈OA:將問(wèn)題空間中實(shí)現(xiàn)的功能進(jìn)行抽象,問(wèn)題空間中的實(shí)例抽象為對(duì)象,用對(duì)象的結(jié)構(gòu)反映問(wèn)題空間的復(fù)雜關(guān)系,用屬性和服務(wù)表示實(shí)例的特殊性和行為OOD:建立類(lèi)結(jié)構(gòu)或進(jìn)一步構(gòu)造類(lèi)庫(kù),實(shí)現(xiàn)分析結(jié)果對(duì)問(wèn)題空間的抽象。OOP:軟件的計(jì)算機(jī)實(shí)現(xiàn)。第十二頁(yè)第十三頁(yè),共59頁(yè)。三、面向?qū)ο蠓治龊驮O(shè)計(jì)的測(cè)試OOATest和OODTest:是對(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)系第十三頁(yè)第十四頁(yè),共59頁(yè)。三、面向?qū)ο蠓治龊驮O(shè)計(jì)的測(cè)試面向?qū)ο笤O(shè)計(jì)(OOD)采用“造型的觀點(diǎn)”,以O(shè)OA為基礎(chǔ)歸納出類(lèi),并建立類(lèi)結(jié)構(gòu)或進(jìn)一步構(gòu)造成類(lèi)庫(kù),實(shí)現(xiàn)分析結(jié)果對(duì)問(wèn)題空間的抽象。OOD歸納的類(lèi),可以是對(duì)象簡(jiǎn)單的延續(xù),可以是不同對(duì)象的相同或相似的服務(wù)。由此可見(jiàn),OOD不是在OOA上的另一思維方式的大動(dòng)干戈,而是OOA的進(jìn)一步細(xì)化和更高層的抽象。面向?qū)ο笤O(shè)計(jì)(OOD)是以O(shè)OA歸納出的類(lèi)為基礎(chǔ),建立類(lèi)結(jié)構(gòu)甚至進(jìn)一步構(gòu)造成類(lèi)庫(kù),實(shí)現(xiàn)分析結(jié)果對(duì)問(wèn)題空間的抽象。第十四頁(yè)第十五頁(yè),共59頁(yè)。三、面向?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ì)象是否全面,其名稱(chēng)應(yīng)該盡量準(zhǔn)確、適用,是否問(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ú)必要。第十五頁(yè)第十六頁(yè),共59頁(yè)。三、面向?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)定的分類(lèi)結(jié)構(gòu)測(cè)試要點(diǎn):處于高層的對(duì)象,是否在問(wèn)題空間中含有不同于下一層對(duì)象的特殊可能性,即是否能派生出下一層對(duì)象。處于同一低層的對(duì)象,是否能抽象出在現(xiàn)實(shí)中有意義的更一般的上層對(duì)象。對(duì)所有認(rèn)定的對(duì)象,是否能在問(wèn)題空間內(nèi)向上層抽象出在現(xiàn)實(shí)中有意義的對(duì)象。高層的對(duì)象的特性是否完全體現(xiàn)下層的共性,低層的對(duì)象是否有高層特性基礎(chǔ)上的特殊性。第十六頁(yè)第十七頁(yè),共59頁(yè)。三、面向?qū)ο蠓治龊驮O(shè)計(jì)的測(cè)試對(duì)構(gòu)造的類(lèi)層次結(jié)構(gòu)的測(cè)試
為了能充分發(fā)揮面向?qū)ο罄^承共享特性,OOD(面向?qū)ο笤O(shè)計(jì))的類(lèi)層次結(jié)構(gòu)通常基于OOA中產(chǎn)生的分類(lèi)結(jié)構(gòu)的原則來(lái)組織,著重體現(xiàn)父類(lèi)和子類(lèi)間的一般性和特殊性。在當(dāng)前的問(wèn)題空間,對(duì)類(lèi)層次結(jié)構(gòu)的主要要求是能在解空間構(gòu)造實(shí)現(xiàn)全部功能的結(jié)構(gòu)框架。為此測(cè)試要注意如下幾個(gè)方面:類(lèi)層次結(jié)構(gòu)是否涵蓋了所有定義的類(lèi);是否能體現(xiàn)OOA中所定義的實(shí)例關(guān)聯(lián)、消息關(guān)聯(lián);子類(lèi)是否具有父類(lèi)沒(méi)有的新特性;子類(lèi)間的共同特性是否完全在父類(lèi)中得以體現(xiàn)。第十七頁(yè)第十八頁(yè),共59頁(yè)。五、面向?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ò)誤傳播的概率提高。第十八頁(yè)第十九頁(yè),共59頁(yè)。五、面向?qū)ο缶幊痰臏y(cè)試?yán)^承使得傳統(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í)不得不考慮不同類(lèi)型具體執(zhí)行的代碼和產(chǎn)生的行為。第十九頁(yè)第二十頁(yè),共59頁(yè)。面向?qū)ο蟪绦蚴前压δ艿膶?shí)現(xiàn)分布在類(lèi)中。能正確實(shí)現(xiàn)功能的類(lèi),通過(guò)消息傳遞來(lái)協(xié)同實(shí)現(xiàn)設(shè)計(jì)要求的功能。正是這種面向?qū)ο蟪绦蝻L(fēng)格,將出現(xiàn)的錯(cuò)誤能精確的確定在某一具體的類(lèi)。因此,在面向?qū)ο缶幊蹋∣OP)階段,忽略類(lèi)功能實(shí)現(xiàn)的細(xì)則,將測(cè)試的目光集中在類(lèi)功能的實(shí)現(xiàn)和相應(yīng)的面向?qū)ο蟪绦蝻L(fēng)格,主要體現(xiàn)為以下兩個(gè)方面(假設(shè)編程使用C++語(yǔ)言):
☆數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求
☆類(lèi)是否實(shí)現(xiàn)了要求的功能第二十頁(yè)第二十一頁(yè),共59頁(yè)。六、面向?qū)ο蟮膯卧獪y(cè)試傳統(tǒng)的單元測(cè)試是針對(duì)程序的函數(shù)、過(guò)程或完成某一定功能的程序塊。沿用單元測(cè)試的概念,實(shí)際測(cè)試類(lèi)成員函數(shù)。一些傳統(tǒng)的測(cè)試方法在面向?qū)ο蟮膯卧獪y(cè)試中都可以使用。如等價(jià)類(lèi)劃分法,因果圖法,邊值分析法,邏輯覆蓋法,路徑分析法,等等,單元測(cè)試一般建議由程序員完成。第二十一頁(yè)第二十二頁(yè),共59頁(yè)。六、面向?qū)ο蟮膯卧獪y(cè)試面向?qū)ο蟮膯卧獪y(cè)試的對(duì)象是軟件設(shè)計(jì)的最小單位—類(lèi)。單元測(cè)試的依據(jù)是詳細(xì)設(shè)計(jì),單元測(cè)試應(yīng)對(duì)類(lèi)中所有重要的屬性和方法設(shè)計(jì)測(cè)試用例,以發(fā)現(xiàn)類(lèi)內(nèi)部的錯(cuò)誤。單元測(cè)試多采用白盒測(cè)試技術(shù),系統(tǒng)內(nèi)多個(gè)類(lèi)都可以并行進(jìn)行測(cè)試。沿用單元測(cè)試概念,實(shí)際測(cè)試類(lèi)成員函數(shù)。一些傳統(tǒng)的測(cè)試方法在面向?qū)ο蟮膯卧獪y(cè)試中都可以使用,如等價(jià)類(lèi)劃分、邊界值分析、因果圖、邏輯覆蓋、路徑分析法等。第二十二頁(yè)第二十三頁(yè),共59頁(yè)。1、單元測(cè)試的內(nèi)容面向?qū)ο蟮膯卧褪穷?lèi),單元測(cè)試實(shí)際測(cè)試的就是對(duì)類(lèi)的測(cè)試。類(lèi)測(cè)試的目的主要確保一個(gè)類(lèi)的代碼能夠完全滿足類(lèi)的說(shuō)明所描述的要求。第二十三頁(yè)第二十四頁(yè),共59頁(yè)。2、單元測(cè)試開(kāi)始的時(shí)間單元測(cè)試開(kāi)始的時(shí)間一般在完全說(shuō)明了這個(gè)類(lèi),并且準(zhǔn)備對(duì)其編碼后不久。單元測(cè)試開(kāi)始時(shí)要制定一個(gè)測(cè)試計(jì)劃。在反復(fù)迭代的過(guò)程中,類(lèi)的實(shí)現(xiàn)和說(shuō)明在進(jìn)程中可能會(huì)發(fā)生變化,所以應(yīng)該在軟件的其他部件使用該類(lèi)之前對(duì)類(lèi)進(jìn)行測(cè)試,同時(shí)還有必要執(zhí)行回歸測(cè)試。第二十四頁(yè)第二十五頁(yè),共59頁(yè)。3、單元測(cè)試的人員由另一個(gè)類(lèi)的開(kāi)發(fā)人員編寫(xiě)測(cè)試計(jì)劃,由該類(lèi)的開(kāi)發(fā)人員完成測(cè)試,避免對(duì)類(lèi)說(shuō)明的錯(cuò)誤理解第二十五頁(yè)第二十六頁(yè),共59頁(yè)。4、單元測(cè)試方法單元測(cè)試的方法有代碼檢查和執(zhí)行測(cè)試用例。在某些情況下,用代碼檢查代替基于執(zhí)行的測(cè)試方法是可行的,但是,代碼檢查也存在以下兩個(gè)不利之處:代碼檢查容易受人為因素影響代碼檢查在回歸測(cè)試方面明顯需要更多的工作量第二十六頁(yè)第二十七頁(yè),共59頁(yè)。類(lèi)測(cè)試按順序分為以下三部分:基于屬性的測(cè)試:類(lèi)中所有屬性的設(shè)置和訪問(wèn)的測(cè)試。基于服務(wù)的測(cè)試:測(cè)試類(lèi)中的每個(gè)方法?;跔顟B(tài)的測(cè)試:除了類(lèi)的每個(gè)操作要進(jìn)行測(cè)試,類(lèi)的行為也要進(jìn)行測(cè)試,所有能引起狀態(tài)變化的事件都要模擬到。類(lèi)的行為通常可用狀態(tài)圖來(lái)描述,在利用狀態(tài)圖進(jìn)行類(lèi)測(cè)試時(shí),可考慮覆蓋所有狀態(tài)、狀態(tài)遷移等覆蓋標(biāo)準(zhǔn),也可考慮從初始狀態(tài)到終止?fàn)顟B(tài)的所有遷移路徑的覆蓋。第二十七頁(yè)第二十八頁(yè),共59頁(yè)。5、方法的測(cè)試在測(cè)試類(lèi)的功能實(shí)現(xiàn)時(shí),應(yīng)該首先保證類(lèi)成員函數(shù)的正確性。測(cè)試時(shí)主要考慮封裝在類(lèi)中的一個(gè)方法對(duì)數(shù)據(jù)進(jìn)行的操作,可以采用傳統(tǒng)的模塊測(cè)試方法,通過(guò)向所在對(duì)象發(fā)消息來(lái)執(zhí)行,它的執(zhí)行與狀態(tài)有關(guān)。傳統(tǒng)的針對(duì)模塊的設(shè)計(jì)測(cè)試用例的技術(shù),如等價(jià)劃分、邊界值分析、因果圖、邏輯覆蓋、路徑覆蓋等方法,仍然可以作為測(cè)試類(lèi)中每個(gè)方法的主要技術(shù)。第二十八頁(yè)第二十九頁(yè),共59頁(yè)。在面向?qū)ο蟮南到y(tǒng)中的方法,是通過(guò)消息來(lái)驅(qū)動(dòng)執(zhí)行的,要測(cè)試類(lèi)中的方法,必須用一個(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í)行單元。第二十九頁(yè)第三十頁(yè),共59頁(yè)。在面向?qū)ο筌浖?,在保證單個(gè)方法功能正確的基礎(chǔ)上,還應(yīng)該處理好測(cè)試方法之間的協(xié)助關(guān)系。為了提高方法的重用性,設(shè)計(jì)方法的一個(gè)準(zhǔn)則是提高方法的內(nèi)聚,即在一個(gè)方法中只完成單個(gè)功能。對(duì)于繼承過(guò)來(lái)的方法,也要加以測(cè)試。運(yùn)行測(cè)試用例的時(shí)候,必須提供能夠?qū)嵗臉额?lèi),以及起驅(qū)動(dòng)器作用的“主程序”類(lèi),來(lái)提供和分析測(cè)試用例。第三十頁(yè)第三十一頁(yè),共59頁(yè)。6、測(cè)試程度可以根據(jù)已經(jīng)測(cè)試了多少類(lèi)的實(shí)現(xiàn)和多少類(lèi)的說(shuō)明來(lái)衡量測(cè)試的充分性。通常需要將這兩者都考慮到,希望測(cè)試到操作和狀態(tài)轉(zhuǎn)換的各種組合情況。一個(gè)對(duì)象能維持自己的狀態(tài),而狀態(tài)一般來(lái)說(shuō)也會(huì)影響操作的含義。第三十一頁(yè)第三十二頁(yè),共59頁(yè)。類(lèi)層次的分割測(cè)試這種測(cè)試可以減少用完全相同的方式檢查類(lèi)測(cè)試用例的數(shù)目。這很像傳統(tǒng)軟件測(cè)試中的等價(jià)類(lèi)劃分測(cè)試。分割測(cè)試又可分三種:基于狀態(tài)的分割,按類(lèi)操作是否改變類(lèi)的狀態(tài)來(lái)分割(歸類(lèi));基于屬性的分割,按類(lèi)操作所用到的屬性來(lái)分割(歸類(lèi));基于類(lèi)型的分割,按完成的功能分割(歸類(lèi))。第三十二頁(yè)第三十三頁(yè),共59頁(yè)。舉例一個(gè)銀行類(lèi)Account:屬性:balance(賬戶余額)和creditLimit(透支額)其操作有:open()打開(kāi)賬戶、setup()建立、deposit()存款、withdraw()取錢(qián)、balance()查詢(xún)余額、summarize()操作清單、creaditLimit()透支限額close()關(guān)閉賬戶第三十三頁(yè)第三十四頁(yè),共59頁(yè)。舉例基于狀態(tài)劃分就是根據(jù)它們改變類(lèi)狀態(tài)的能力對(duì)類(lèi)操作進(jìn)行劃分。考慮Account類(lèi),狀態(tài)操作包括deposit()、withdraw(),非狀態(tài)操作包括balance()、summarize()、creaditLimit()。將給不狀態(tài)的操作和不改變狀態(tài)的操作分別進(jìn)行測(cè)試。因此:測(cè)試用例a:open→setup→deposit→deposit→withdraw→withdraw→close測(cè)試用例b:open→setup→deposit→summrize→creaditLimit→balance→withdraw→close第三十四頁(yè)第三十五頁(yè),共59頁(yè)。舉例基于屬性劃分就是根據(jù)它們所使用的屬性進(jìn)行劃分。對(duì)于類(lèi)Account,屬性balance和creaditLimit用于定義劃分。操作可分為三類(lèi)(1)使用creditLimit的操作;(2)修改creditLimit的操作;(3)既不使用也不修改creditLimit的操作。然后為每個(gè)劃分設(shè)計(jì)測(cè)試用例?;陬?lèi)別的劃分就是根據(jù)每個(gè)操作所完成一般功能進(jìn)行劃分類(lèi)操作。例如Account類(lèi)操作可以劃分初始化操作——open()、setup(),計(jì)算操作——deposit()、withdraw(),查詢(xún)操作——balance()、summarize()、creadLimit()及關(guān)閉操作close()。第三十五頁(yè)第三十六頁(yè),共59頁(yè)。七、面向?qū)ο蟮募蓽y(cè)試對(duì)于面向?qū)ο蟪绦颍嗷フ{(diào)用的功能是散布在程序的不同類(lèi)中,類(lèi)通過(guò)消息相互作用申請(qǐng)和提供服務(wù)。把一組相互有影響的類(lèi)看作一個(gè)整體稱(chēng)為類(lèi)簇。類(lèi)簇的測(cè)試主要依據(jù)系統(tǒng)中相關(guān)類(lèi)的層次關(guān)系,檢查類(lèi)之間相互作用的正確性,即檢查各相關(guān)類(lèi)之間消息連接的合法性、子類(lèi)的繼承性與父類(lèi)的一致性、動(dòng)態(tài)綁定執(zhí)行的正確性、類(lèi)簇協(xié)同完成系統(tǒng)功能的正確性等。面向?qū)ο蟮募蓽y(cè)試能夠檢測(cè)出相對(duì)獨(dú)立的單元測(cè)試無(wú)法檢測(cè)出的那些類(lèi)相互作用時(shí)才會(huì)產(chǎn)生的錯(cuò)誤。第三十六頁(yè)第三十七頁(yè),共59頁(yè)?;趩卧獪y(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è)試第三十七頁(yè)第三十八頁(yè),共59頁(yè)。靜態(tài)測(cè)試主要針對(duì)程序的結(jié)構(gòu)進(jìn)行,檢測(cè)程序結(jié)構(gòu)是否符合設(shè)計(jì)要求?,F(xiàn)在流行的一些測(cè)試軟件都能提供一種稱(chēng)為“可逆性工程”的功能,即通過(guò)原程序得到類(lèi)關(guān)系圖和函數(shù)功能調(diào)用關(guān)系圖。通過(guò)“可逆性工程”得到的結(jié)果與OOD的結(jié)果相互比較,檢測(cè)程序結(jié)構(gòu)和實(shí)現(xiàn)上是否有缺陷,通過(guò)這種方法檢測(cè)OOP是否達(dá)到了OOD的要求。第三十八頁(yè)第三十九頁(yè),共59頁(yè)。動(dòng)態(tài)測(cè)試設(shè)計(jì)測(cè)試用例時(shí),通常需要功能調(diào)用結(jié)構(gòu)圖、類(lèi)關(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á)到類(lèi)所有的服務(wù)要求或服務(wù)提供的一定覆蓋率;依據(jù)類(lèi)間傳遞的消息,達(dá)到對(duì)所有執(zhí)行線程的一定覆蓋率;達(dá)到類(lèi)的所有狀態(tài)的一定覆蓋率等。同時(shí)也可以考慮使用現(xiàn)有的一些測(cè)試工具來(lái)得到程序代碼執(zhí)行的覆蓋率。第三十九頁(yè)第四十頁(yè),共59頁(yè)。面向?qū)ο蠹蓽y(cè)試的測(cè)試策略其測(cè)試有兩種不同策略:基于類(lèi)間協(xié)作關(guān)系的橫向測(cè)試基于類(lèi)間繼承關(guān)系的縱向測(cè)試。第四十頁(yè)第四十一頁(yè),共59頁(yè)。1、基于類(lèi)間協(xié)作關(guān)系的橫向測(cè)試由系統(tǒng)的一個(gè)輸入事件為起點(diǎn),對(duì)其觸發(fā)的一組類(lèi)進(jìn)行測(cè)試,執(zhí)行相應(yīng)的操作/消息處理路徑,最后終止于某一輸出事件。應(yīng)用回歸測(cè)試對(duì)以測(cè)試過(guò)的類(lèi)集再重新執(zhí)行一次,以保證加入新類(lèi)時(shí)不會(huì)產(chǎn)生意外的結(jié)果第四十一頁(yè)第四十二頁(yè),共59頁(yè)。第四十二頁(yè)第四十三頁(yè),共59頁(yè)。第四十三頁(yè)第四十四頁(yè),共59頁(yè)。2、基于類(lèi)間繼承關(guān)系的縱向測(cè)試首先通過(guò)測(cè)試獨(dú)立的類(lèi)來(lái)開(kāi)始構(gòu)造系統(tǒng),在獨(dú)立類(lèi)測(cè)試完成后,進(jìn)行下一層繼承獨(dú)立類(lèi)的類(lèi)的測(cè)試,這個(gè)依賴(lài)類(lèi)層次的測(cè)試序列一直循環(huán)執(zhí)行到構(gòu)造完整個(gè)系統(tǒng)為止。集成測(cè)試在面向?qū)ο笙到y(tǒng)中屬于應(yīng)用生命周期的一個(gè)階段,可在兩個(gè)層次上進(jìn)行:對(duì)一個(gè)新類(lèi)進(jìn)行測(cè)試,并測(cè)試在定義中所涉及的那些類(lèi)的集成。將各部件集合在一起組成完整的系統(tǒng)進(jìn)行測(cè)試。第四十四頁(yè)第四十五頁(yè),共59頁(yè)。類(lèi)與子類(lèi)的測(cè)試假設(shè)類(lèi)D是類(lèi)C的子類(lèi),類(lèi)C已進(jìn)行了充分的測(cè)試第四十五頁(yè)第四十六頁(yè),共59頁(yè)。分層與增量
派生類(lèi)D是C的子類(lèi),那么所有的用于C的基于規(guī)范的測(cè)試用例也都適用于D。術(shù)語(yǔ)“繼承的測(cè)試用例”來(lái)代表從父類(lèi)測(cè)試用例中選取出來(lái)的、用于子類(lèi)的測(cè)試用例。可以通過(guò)增量變化分析來(lái)確定繼承的測(cè)試用例中哪些在測(cè)試子類(lèi)時(shí)必須執(zhí)行、哪些可以不執(zhí)行。
合理的分析,有利于找出更有價(jià)值的測(cè)試用例。第四十六頁(yè)第四十七頁(yè),共59頁(yè)。分層與增量
-測(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è)操作并且被D繼承了的方法,可以復(fù)用于該方法的所有繼承來(lái)的基于規(guī)范的測(cè)試用例。在D中添加新的實(shí)例變量來(lái)實(shí)現(xiàn)更多的狀態(tài)和/或?qū)傩裕钣锌赡芘c新的操作和/或重載方法中代碼有關(guān),而且關(guān)系到對(duì)測(cè)試的處理。在D中改變類(lèi)常量。類(lèi)常量累計(jì)成每個(gè)測(cè)試用例的附加的后置條件。第四十七頁(yè)第四十八頁(yè),共59頁(yè)。注:設(shè)計(jì)測(cè)試用例時(shí),不但要設(shè)計(jì)確認(rèn)類(lèi)功能滿足的輸入,還應(yīng)該有意識(shí)的設(shè)計(jì)一些被禁止的例子,確認(rèn)類(lèi)是否有不合法的行為產(chǎn)生,如發(fā)送與類(lèi)狀態(tài)不相適應(yīng)的消息,要求不相適應(yīng)的服務(wù)等。根據(jù)具體情況,動(dòng)態(tài)的集成測(cè)試,有時(shí)也可以通過(guò)系統(tǒng)測(cè)試完成。第四十八頁(yè)第四十九頁(yè),共59頁(yè)。八、面向?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)有的系統(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)。第四十九頁(yè)第五十頁(yè),共59頁(yè)。具體測(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/uninstalltest)等等。第
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升客戶忠誠(chéng)度的策略研究
- 現(xiàn)代企業(yè)園區(qū)內(nèi)的智能餐飲服務(wù)系統(tǒng)構(gòu)建探討
- 2025年香甜瓜項(xiàng)目可行性研究報(bào)告
- 2025年陶瓷萬(wàn)圣節(jié)禮品項(xiàng)目可行性研究報(bào)告
- 2025年紅棗蓮子速溶藕粉項(xiàng)目可行性研究報(bào)告
- 2025年濃縮菠蘿汁飲品項(xiàng)目可行性研究報(bào)告
- 2025年步進(jìn)回轉(zhuǎn)式清洗機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年感應(yīng)密碼鍵盤(pán)項(xiàng)目可行性研究報(bào)告
- 2025年女童皮鞋項(xiàng)目可行性研究報(bào)告
- 2025年動(dòng)態(tài)提取罐項(xiàng)目可行性研究報(bào)告
- 課題申報(bào)參考:流視角下社區(qū)生活圈的適老化評(píng)價(jià)與空間優(yōu)化研究-以沈陽(yáng)市為例
- 《openEuler操作系統(tǒng)》考試復(fù)習(xí)題庫(kù)(含答案)
- 項(xiàng)目重點(diǎn)難點(diǎn)分析及解決措施
- 挑戰(zhàn)杯-申報(bào)書(shū)范本
- 北師大版五年級(jí)上冊(cè)數(shù)學(xué)期末測(cè)試卷及答案共5套
- 2024-2025學(xué)年人教版生物八年級(jí)上冊(cè)期末綜合測(cè)試卷
- 2025年九省聯(lián)考新高考 語(yǔ)文試卷(含答案解析)
- 第1課《春》公開(kāi)課一等獎(jiǎng)創(chuàng)新教案設(shè)計(jì) 統(tǒng)編版語(yǔ)文七年級(jí)上冊(cè)
- 探索者三維建筑結(jié)構(gòu)建模設(shè)計(jì)軟件說(shuō)明書(shū)
- 社會(huì)治安視頻監(jiān)控系統(tǒng)項(xiàng)目技術(shù)及設(shè)計(jì)方案
- GB/T 709-2019熱軋鋼板和鋼帶的尺寸、外形、重量及允許偏差
評(píng)論
0/150
提交評(píng)論