清華大學(xué)殷仁昆教授講授《軟件工程》講義-08_第1頁
清華大學(xué)殷仁昆教授講授《軟件工程》講義-08_第2頁
清華大學(xué)殷仁昆教授講授《軟件工程》講義-08_第3頁
清華大學(xué)殷仁昆教授講授《軟件工程》講義-08_第4頁
清華大學(xué)殷仁昆教授講授《軟件工程》講義-08_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程 第八章 面向?qū)ο蟮臏y試8.1 面向?qū)ο鬁y試的概念8.2 開發(fā)前期的面向?qū)ο鬁y試8.3 開發(fā)后期的面向?qū)ο鬁y試8.4 分布式系統(tǒng)的測試1軟件工程8.1面向?qū)ο笙鬁y試的的概念面向?qū)ο笙笙到y(tǒng)的的測試與與傳統(tǒng)的的基于功功能的系系統(tǒng)的測測試之間間存在很很大差別別:對象作為為一個單單獨的構(gòu)構(gòu)件一般般比一個個功能模模塊大。由對象到到子系統(tǒng)統(tǒng)的集成成通常是是松散耦耦合的,沒有一一個明顯顯的“頂頂層”。如果對象象被復(fù)用用,測試試者無權(quán)權(quán)進入構(gòu)構(gòu)件內(nèi)部部來分析析其代碼碼。2軟件工程程面向?qū)ο笙蟮拈_發(fā)發(fā)模型將將系統(tǒng)開開發(fā)分為為面向?qū)ο蠓治鑫觯∣OA),面向向?qū)ο笤O(shè)設(shè)計(OOD)和面向向?qū)ο缶幘幊蹋∣OP

2、)三個階階段。分析階段段產(chǎn)生整整個問題題領(lǐng)域的的抽象描描述,在在此基礎(chǔ)礎(chǔ)上,進進一步歸歸納出適適用于面面向?qū)ο笙缶幊陶Z語言的類類和類結(jié)結(jié)構(gòu),最最后形成成代碼。針對這種種開發(fā)模模型,結(jié)結(jié)合傳統(tǒng)統(tǒng)測試步步驟的劃劃分,本本著在整整個開發(fā)發(fā)過程中中不斷測測試的原原則,應(yīng)應(yīng)將開發(fā)發(fā)階段的的測試與與編碼完完成后的的單元測測試、集集成測試試、系統(tǒng)統(tǒng)測試用用一個測測試模型型描述。3軟件工程程面向?qū)ο笙鬁y試模模型OO System TestOO Integration TestOO Unit TestOOA TestOOD TestOOP TestOOAOODOOP4軟件工程程OOATest和OODTest是對

3、分析析結(jié)果和和設(shè)計結(jié)結(jié)果的測測試,主主要是對對分析設(shè)設(shè)計產(chǎn)生生的文本本進行,是軟件件開發(fā)前前期的關(guān)關(guān)鍵性測測試。OOPTest主要針對對編程風(fēng)風(fēng)格和程程序代碼碼實現(xiàn)進進行測試試,其主主要的測測試內(nèi)容容在面向向?qū)ο髥螁卧獪y試試和面向向?qū)ο蠹蓽y試試中體現(xiàn)現(xiàn)。面向?qū)ο笙髥卧獪y測試是對對程序內(nèi)內(nèi)部具體體單一的的功能模模塊的測測試,如如果程序序是用C+語言實現(xiàn),主主要就是是對類成成員函數(shù)數(shù)的測試試。面向向?qū)ο髥螁卧獪y試試是進行行面向?qū)ο蠹沙蓽y試的的基礎(chǔ)。5軟件工程程面向?qū)ο笙蠹蓽y測試主要要對系統(tǒng)統(tǒng)內(nèi)部的的相互服服務(wù)進行行測試,如成員員函數(shù)間間的相互互作用,類間的的消息傳傳遞等。面向?qū)ο笙蠹蓽y

4、測試不但但要基于于面向?qū)ο髥卧獪y試,更要參參見OOD或OODTest結(jié)果。面向?qū)ο笙笙到y(tǒng)測測試是基基于面向向?qū)ο蠹蓽y試試的最后后階段的的測試,主要以以用戶需需求為測測試標準準,也需需要借鑒鑒OOA或OOATest結(jié)果。6軟件工程程8.2開發(fā)前期期的面向向?qū)ο鬁y測試面向?qū)ο笙蟮南到y(tǒng)統(tǒng)開發(fā)經(jīng)經(jīng)歷面向?qū)ο笙蠓治觯∣OA)面向?qū)ο笙笤O(shè)計(OOD)面向?qū)ο笙缶幊蹋∣OP)等三個階階段。在在這個時時期的測測試工作作主要是是靜態(tài)測測試。通通過各種種評審和和質(zhì)量分分析活動動,完成成必須的的測試工工作,及時檢檢測和克克服各種種缺陷。7軟件工程程8.2.1面向?qū)ο笙蠓治龅牡臏y試傳統(tǒng)的面面向過程程分析是是一

5、個功功能分解解的過程程,是把把一個系系統(tǒng)看成成可以分分解的功功能的集集合。這這種傳統(tǒng)統(tǒng)的功能能分解分分析法的的著眼點點在于一個系統(tǒng)統(tǒng)需要什什么樣的的信息處處理方法法和過程程,以過過程的抽抽象來對對待系統(tǒng)統(tǒng)的需要要。面向?qū)ο笙蠓治觯∣OA)是“把ER圖和語義義網(wǎng)絡(luò)模模型,即即信息模模型中的的概念,與面向向?qū)ο蟪坛绦蛟O(shè)計計語言中中的重要要概念結(jié)結(jié)合在一一起而形形成的分分析方法法”,最后得到問題題領(lǐng)域的的可視的的形式描描述。OOA的結(jié)果是是為后續(xù)續(xù)階段中中類的選選定和實實現(xiàn),類類層8軟件工程程層次結(jié)構(gòu)構(gòu)的組織織和實現(xiàn)現(xiàn)提供平平臺。OOA對問題領(lǐng)領(lǐng)域分析析抽象的的不完整整,最終終會影響響軟件的的功能實

6、實現(xiàn),導(dǎo)導(dǎo)致軟件件開發(fā)后后期大量量可避免免的修補補工作;而一些些冗余的的對象或或結(jié)構(gòu)會會影響類類的選定定、程序序的整體體結(jié)構(gòu)或或增加程程序員不不必要的的工作量量。因此此,OOA測試的重重點在其其完整性性和冗余余性。根據(jù)Coad和Yourdon方法所提提出的OOA實現(xiàn)步驟驟,對OOA階段的測測試劃分分為以下下五個方方面:對認定的的類的測試對認定的的結(jié)構(gòu)的測試對認定的的主題的測試9軟件工程程對定義的的屬性和實例連接接的測試對定義的的服務(wù)和消息連接接的測試對認定的的類的測測試OOA中認定的的類是對對問題領(lǐng)領(lǐng)域中的的結(jié)構(gòu),其他相關(guān)關(guān)系統(tǒng),設(shè)備,被記憶的的事件,系統(tǒng)涉及及的人員員等實際對對象的抽抽象。對

7、對它的測測試可以以從如下下方面考考慮:認定的類類是否全面,是否問問題領(lǐng)域域中所有有涉及到到的對象象都反映映在認定定的類中中。認定的類類是否具具有多個屬性性。只有一一個屬性性的類通通常應(yīng)看看成其他他類的屬屬性,而而不是抽抽象10軟件工程程為獨立的的類。認定為同同一個類類的對象象是否有有共同的的,區(qū)別別于其他他類對象象的共同同屬性。對認定為為同一類類的對象象是否提供或需需要相同同的服務(wù)務(wù),如果服服務(wù)隨著著不同的的對象而而變化,認定的的對象就就需要分分解或利利用繼承承性來分分類表示示。如果系統(tǒng)統(tǒng)不需要要始終保保持類所所代表的的對象的的信息,認定的的類也無無必要存存在。認定的類類的名稱稱應(yīng)該盡盡量準確

8、確,適用用。對認定的的結(jié)構(gòu)的的測試11軟件工程程在Coad和Yourdon方法中,認定的的結(jié)構(gòu)分分為兩種種:泛化結(jié)構(gòu)構(gòu)和復(fù)合結(jié)構(gòu)構(gòu)。泛化結(jié)構(gòu)體現(xiàn)現(xiàn)了問題題領(lǐng)域中中對象的的一般與與特殊的的關(guān)系,復(fù)合結(jié)構(gòu)體現(xiàn)現(xiàn)了問題題領(lǐng)域中中對象的的整體與與局部的的關(guān)系。1)對泛化結(jié)構(gòu)的測試可可從如下下方面著著手:對于結(jié)構(gòu)構(gòu)中的一一個類,尤其是是處于高高層的類類,看是是否能在在問題領(lǐng)領(lǐng)域中派派生出其其下一層層的類。對于結(jié)構(gòu)構(gòu)中的一一個類,尤其是是處于同同一低層層的類,看是否否能抽象象出在現(xiàn)現(xiàn)實世界界中有意意義的更更一般的的上層的的類。12軟件工程程高層的類類的屬性性和服務(wù)務(wù)是否完完全體現(xiàn)現(xiàn)下層的的共性。低層的類類

9、是否基基于其上上層類的的屬性和和服務(wù)并并具有自自己的特特殊性。對復(fù)合結(jié)構(gòu)構(gòu)的測試從從如下方方面入手手:整體類和和局部類類的復(fù)合合(聚合合)關(guān)系系是否符符合現(xiàn)實實的關(guān)系系。整體類的的局部類類是否在在問題領(lǐng)領(lǐng)域中有有實際應(yīng)應(yīng)用。整體類中中是否遺遺漏了在在問題領(lǐng)領(lǐng)域中有有用的局局部類。13軟件工程程局部類是是否能夠夠在問題題領(lǐng)域中中組合出出新的有有現(xiàn)實意意義的整整體類。對認定的的主題的的測試主題是在在對象和和結(jié)構(gòu)的的基礎(chǔ)上上更高一一層的抽抽象,是是為了提提供OOA分析結(jié)果果的可見見性,如如同文章章對各部部分內(nèi)容容的概要要。對主題的的測試應(yīng)應(yīng)該考慮慮以下方方面:貫徹GeorgeMiller的“7+2”

10、原則,如如果主題題個數(shù)超超過7個,就要要求對有有較密切切屬性和和服務(wù)的的主題進進行歸并并。14軟件工程程主題所反反映的一一組類和和結(jié)構(gòu)是是否具有有相同和和相近的的屬性和和服務(wù)。認定的主主題是否否是類和和結(jié)構(gòu)更更高層的的抽象,是否便便于理解解OOA結(jié)果的概概貌(尤尤其是對對非技術(shù)術(shù)人員的的OOA結(jié)果讀者者)。主題間的的消息連連接(抽抽象)是是否代表表了主題題所反映映的類和和結(jié)構(gòu)之之間的所所有關(guān)聯(lián)聯(lián)。對定義的的屬性和和實例連連接的測測試屬性描述述類或結(jié)結(jié)構(gòu)中實實例(對對象)的的特性。而實例例連接則則反映實實例集合合之間的的映射關(guān)關(guān)系。15軟件工程程對屬性和和實例連連接的測測試從如如下方面面考慮:定

11、義的屬屬性是否否對相應(yīng)應(yīng)的類和和泛化結(jié)結(jié)構(gòu)的每每個實例例都適用用。定義的屬屬性在現(xiàn)現(xiàn)實世界界中是否否與這種種實例關(guān)關(guān)系密切切。定義的屬屬性在問問題領(lǐng)域域中是否否與這種種實例關(guān)關(guān)系密切切。定義的屬屬性是否否能夠不不依賴于于其他屬屬性被獨獨立理解解。定義的屬屬性在泛泛化結(jié)構(gòu)構(gòu)中的位位置是否否恰當(dāng),低層類類的共有有屬性是是否在其其上層類類的屬性性中16軟件工程程有定義。問題領(lǐng)域域中每個個類的屬屬性是否否定義完完整。定義的實實例連接接是否符符合實際際。在問題領(lǐng)領(lǐng)域中實實例連接接的定義義是否完完整,特特別需要要注意一一對多和和多對多多的實例例連接。對定義的的服務(wù)和和消息關(guān)關(guān)聯(lián)的測測試定義服務(wù)務(wù)就是定定義

12、每一一個類和和結(jié)構(gòu)在在問題領(lǐng)領(lǐng)域中的的行為。由于問問題領(lǐng)域域中的實實例之間間需要通通信,在在OOA中就需要要定義消消息的連連接。對服務(wù)和和消息連連接的測測試應(yīng)考考慮以下下幾方面面:17軟件工程程類和結(jié)構(gòu)構(gòu)在問題題領(lǐng)域中中的實例例具有不不同的狀狀態(tài),是是否為狀狀態(tài)轉(zhuǎn)換換定義了了相應(yīng)的的服務(wù)。類或結(jié)構(gòu)構(gòu)所需要要的服務(wù)務(wù)是否都都定義了了相應(yīng)的的消息連連接。定義的消消息連接接所調(diào)用用的服務(wù)務(wù)是否正正確。沿著消息息連接所所執(zhí)行的的線索(消息的的調(diào)用序序列)是是否合理理,是否否符合實實際。定義的服服務(wù)是否否有重復(fù)復(fù),是否否定義了了能夠得得到的服服務(wù)。18軟件工程程8.2.2面向?qū)ο笙笤O(shè)計的的測試面向?qū)ο笙?/p>

13、設(shè)計(OOD)從“建模的觀觀點”出發(fā),基基于OOA模型歸納納出類,并建立立類的層層次結(jié)構(gòu)構(gòu)或進一一步構(gòu)造造成類庫庫,實現(xiàn)現(xiàn)分析結(jié)結(jié)果對問問題領(lǐng)域域的抽象象。OOD歸納出的的類,可可以是OOA類的簡單延續(xù)續(xù),也可以以是基于于設(shè)計要要求新建立或從已有類類演化的類。因因此,OOD是OOA的進一步步細化和和更高層層的抽象象,OOD與OOA的界限通通常是難難以嚴格格區(qū)分的的。OOD確定類和和類結(jié)構(gòu)構(gòu)是想通通過重新新組合或或加以適適當(dāng)?shù)难a補充,可可方便地地實現(xiàn)功功能的復(fù)復(fù)用和擴擴充。19軟件工程程OOD的測試可可從如下下三方面面考慮:對認定的的類的測測試對構(gòu)造的的類層次次結(jié)構(gòu)的的測試對類庫的的支持的的測試

14、對認定的的類的測測試認定的類類的測試試應(yīng)考慮慮以下幾幾個方面面:是否涵蓋蓋了OOA中所有認認定的對對象。是否能體體現(xiàn)OOA中定義的的屬性。是否能實實現(xiàn)OOA中定義的的服務(wù)。是否對應(yīng)應(yīng)著一個個含義明明確的數(shù)數(shù)據(jù)抽象象。20軟件工程程是否盡可可能少地地依賴其其他類。類中的方方法(C+稱為類的的成員函函數(shù))是是否只有有單一用用途。對構(gòu)造的的類層次次結(jié)構(gòu)的的測試為能充分分發(fā)揮面面向?qū)ο笙蟮睦^承承共享特特性,OOD的類層次次結(jié)構(gòu),通常基基于OOA中產(chǎn)生的的泛化結(jié)結(jié)構(gòu)的原原則來組組織,著著重體現(xiàn)現(xiàn)父類和和子類之之間一般般性和特特殊性關(guān)關(guān)系。在當(dāng)前的的問題領(lǐng)領(lǐng)域,對對類層次次結(jié)構(gòu)的的主要要要求是能能在解空空

15、間構(gòu)造造實現(xiàn)全全部功能能的結(jié)構(gòu)構(gòu)框架。為此應(yīng)應(yīng)做如下下幾個方方面的檢檢查:21軟件工程程類層次結(jié)結(jié)構(gòu)中是是否涵蓋蓋了所有有定義的的類。是否能體體現(xiàn)OOA中所定義義的實例例連接。是否能實實現(xiàn)OOA中所定義義的消息息連接。子類是否否具有父父類沒有有的新特特性。子類之間間的共同同特性是是否完全全在父類類中得以以體現(xiàn)。對類庫支支持的測測試對類庫的的支持雖雖然也屬屬于類層層次結(jié)構(gòu)構(gòu)的組織織問題,但其強強調(diào)的重重點是軟軟件的復(fù)復(fù)用。由由于它并并不直接接影響當(dāng)當(dāng)前軟件件的開發(fā)發(fā)和功能能實現(xiàn),可以將將其單獨獨提出來來測試。22軟件工程程有關(guān)類庫庫支持的的測試可可從以下下幾個方方面入手手:一組子類類中有關(guān)關(guān)某種

16、含含義相同同或基本本相同的的操作,是否有有相同的的接口(包括名名字和參參數(shù)表)。類中方法法(C+稱為類的的成員函函數(shù))的的功能是是否比較較單一,相應(yīng)的的代碼行行是否較較少(建建議不超超過100行)。類的層次次結(jié)構(gòu)是是否是深深度大,寬度小小。23軟件工程程8.2.3面向?qū)ο笙缶幊痰牡臏y試典型的面面向?qū)ο笙蟪绦蚓呔哂欣^承、封裝和多態(tài)等新特性性,這使使得傳統(tǒng)統(tǒng)的測試試策略必必須有所所改變。封裝是對數(shù)據(jù)據(jù)的隱藏藏,外界界只能通通過接口口提供的的操作來來訪問或或修改數(shù)數(shù)據(jù),這這就降低低了直接接接觸數(shù)數(shù)據(jù)的可可能性,妨礙了了對非法法數(shù)據(jù)操操作的測測試。繼承提高了代代碼的復(fù)復(fù)用率,同時也也提高了了錯誤傳傳播

17、的概概率。繼繼承向測測試提出出了這樣樣一個難難題:對對繼承的的代碼究究竟如何何測試?多態(tài)令面向?qū)ο蟪绦蛐驅(qū)ν獗肀憩F(xiàn)出強強大的處處理能力力,24軟件工程程但同時卻卻使得程程序內(nèi)“同一”函數(shù)的的行為復(fù)復(fù)雜化,測試時時不得不不考慮不不同類型型的同名名操作具具體的實實現(xiàn)代碼碼和產(chǎn)生生的行為為。面向?qū)ο笙蟪绦蚴鞘前压δ苣艿膶崿F(xiàn)現(xiàn)分布在在類中。與某種種設(shè)計功功能相關(guān)關(guān)的一組組對象,通過對對象提供供的服務(wù)和對象之之間的消息傳遞遞,共同協(xié)協(xié)作來實現(xiàn)這個個功能。這種面面向?qū)ο笙蟪绦蝻L(fēng)風(fēng)格,可可將出現(xiàn)現(xiàn)的錯誤誤精確定定位在某某一個具具體的對對象。因此,在面向?qū)ο缶幊坛蹋∣OP)階段,將測試試的目光光集中在在類

18、功能的實實現(xiàn)和相相應(yīng)的面面向?qū)ο笙蟪绦蝻L(fēng)風(fēng)格上。25軟件工程程1.數(shù)據(jù)成員員是否滿滿足數(shù)據(jù)據(jù)封裝的的要求檢查數(shù)據(jù)據(jù)成員是是否滿足足數(shù)據(jù)封封裝的要要求,就就是檢查查其數(shù)據(jù)成員員是否能能被外界界(數(shù)據(jù)據(jù)成員所所屬的類類或子類類以外的的調(diào)用)直接調(diào)調(diào)用。更直觀觀的說,當(dāng)改變變數(shù)據(jù)成成員的結(jié)結(jié)構(gòu)時,看其是是否影響響了類的的對外接接口,是是否會導(dǎo)導(dǎo)致相應(yīng)應(yīng)外界必必須改動動。值得注意意,有時時強制的的類型轉(zhuǎn)轉(zhuǎn)換會破破壞數(shù)據(jù)據(jù)的封裝裝特性。例如:classHidenprivate:inta =1;26軟件工程程char *p =hiden;classVisible public:intb =2;char *

19、s =visible;.Hidenpp;Visible *qq= (Visible *)&pp;在上面的的程序段段中,pp的數(shù)據(jù)成成員可以以通過qq被隨意訪訪問。27軟件工程程2.類是否實實現(xiàn)了要要求的功功能類的功能能都是通通過類的的成員函函數(shù)實現(xiàn)現(xiàn)的。在在測試類類的功能能實現(xiàn)時時,應(yīng)該該首先保保證類成成員函數(shù)數(shù)執(zhí)行的的正確性性。單獨地看看類的成成員函數(shù)數(shù),與過過程性程程序中的的函數(shù)或或過程沒沒有本質(zhì)質(zhì)的區(qū)別別,幾乎乎所有傳傳統(tǒng)的單單元測試試中使用用的方法法,都可可在面向向?qū)ο蟮牡膯卧獪y測試中使使用。類函數(shù)成成員的正正確行為為只是類類能夠?qū)崒崿F(xiàn)要求求功能的的基礎(chǔ),而類成成員函數(shù)數(shù)之間的的交互和

20、和類之間間的服務(wù)務(wù)調(diào)用是是單元測測試無法法確定的的。因此此需要進進行面向向?qū)ο蟮牡募蓽y測試。28軟件工程程需要注意意的是,測試類類的功能能,不能能僅滿足足于被測測試代碼碼能無錯運行行或被測試試類提供供的功能無錯錯,還應(yīng)該該以O(shè)OD結(jié)果為依依據(jù),檢檢測類提提供的功功能是否否滿足設(shè)設(shè)計的要要求,是是否有缺缺陷。必要時(如通過過OOD結(jié)果仍不不清楚明明確的地地方)還還應(yīng)該參參照OOA的結(jié)果,并以其其為最終終標準。29軟件工程程編程完成成之后,需要經(jīng)經(jīng)歷三個個階段的的測試:單元測試試集成測試試系統(tǒng)測試試傳統(tǒng)的單單元測試試是針對對程序的的函數(shù)、過程或或完成某某一特定定功能的的程序塊塊所進行行的測試試。

21、8.3開發(fā)后期期的面向向?qū)ο鬁y測試8.3.1面向?qū)ο笙蟮膯卧獪y試(Unit Test)30軟件工程程面向?qū)ο笙蟮膯卧獪y試則則是針對對面向?qū)ο蟪绦蛐虻幕颈締卧獙ο箢?。為此需需要分兩兩步走:測試與對對象相關(guān)關(guān)聯(lián)的單單個操作作它們是一一些函數(shù)數(shù)或程序序,傳統(tǒng)統(tǒng)的白盒盒測試和和黑盒測測試方法法都可以以使用。測試單個個對象類類黑盒測試試的原理理不變,但等價價劃分的的概念要要擴展以以適合操操作序列列的情況況。在設(shè)計測測試用例例時,可可基于以以下兩個個假設(shè):1.對象操作作的測試試31軟件工程程如果操作作(成員員函數(shù))對某一一類輸入入中的一一個數(shù)據(jù)據(jù)正確執(zhí)執(zhí)行,對對同類中中的其他他輸入也也能正確確執(zhí)行

22、。如果操作作(成員員函數(shù))對某一一復(fù)雜度度的輸入入能夠正正確執(zhí)行行,則對對更高復(fù)復(fù)雜度的的輸入也也應(yīng)能正正確執(zhí)行行。例如需要要選擇字字符串作作為輸入入時,基基于本假假設(shè),就就無需計計較字符符串的長長度。除除非字符符串的長長度是固固定的,如IP地址字符符串。在面向?qū)ο蟪绦蛐蛑?,對對象的操操作(成成員函數(shù)數(shù))通常常都很小小,功能能單一,函數(shù)之之間調(diào)用用頻繁,容易出出現(xiàn)一些些不宜發(fā)發(fā)現(xiàn)的錯錯誤。例例如:32軟件工程程if(-1 =write(fid, buffer,amount)error_out();該語句沒沒有全面面檢查write()的返回值值,無意意中假設(shè)了只只有數(shù)據(jù)據(jù)被完全寫入入和沒有寫入

23、入兩種情況。此測測試還忽忽略了數(shù)數(shù)據(jù)部分寫入入的情況,就給程程序遺留留了隱患患。按程序的的設(shè)計,使用函函數(shù)strrchr()查找最后后的匹配配字符,但程序序中誤寫寫成了函函數(shù)strchr(),使程序序功能實實現(xiàn)時查查找的是是第一個個匹配字字符。程序中將將if( strncmp(str1,str2,strlen(str1)誤寫成了了if( strncmp(str1,str2,strlen(str2)。如果測測試用例例中使用用的數(shù)據(jù)據(jù)str1和str2長度相33軟件工程程同,就無無法檢測測出。因此,在在設(shè)計測測試用例例時,應(yīng)應(yīng)對以函數(shù)返返回值作作為條件件判斷,字符串操操作等情況特特別注意意。面向?qū)?/p>

24、象象編程的的特性使使得對成成員函數(shù)數(shù)的測試試,又不不完全等等同于傳傳統(tǒng)的函函數(shù)或過過程測試試。尤其其是繼承承特性和和多態(tài)特特性,BrianMarick提出了兩點:繼承的成成員函數(shù)數(shù)可能需需要重新新測試對父類中中已經(jīng)測測試過的的成員函函數(shù),兩兩種情況況需要在在子類中中重新測測試:繼承的成成員函數(shù)數(shù)在子類類中做了了改動;成員函數(shù)數(shù)調(diào)用了了改動過過的成員員函數(shù)。34軟件工程程例如:假假設(shè)父類類Bass有兩個成成員函數(shù)數(shù):Inherited()Redefined()若子類Derived對Redefined()做了改動動,Derived:Redefined()必需重新測測試。但但如果Derived:In

25、herited()包含有調(diào)調(diào)用Redefined()的語句(如:x =x/ Redefined()),就需需要重新新測試;反之,則不必必重新測測試。2)對父類的的測試用用例不能能照搬到到子類根據(jù)以上上的假設(shè)設(shè),Base:Redefined()和Derived:Redefined()是不同的的成員函函數(shù),它它們35軟件工程程有不同的的說明和和實現(xiàn)。對此,應(yīng)該對對Derived:Redefined()重新設(shè)計計測試用用例。由于面向向?qū)ο蟮牡睦^承性性,使得得兩個函函數(shù)還是是有相似似之處,故只需需在Base:Redefined()的測試用用例基礎(chǔ)礎(chǔ)上添加加對Derived:Redfined()的新測試

26、試用例。例如:Base:Redefined()含有如下下語句if( value 0) message(less);else if (value=0) message(equal);else message(more);Derived:Redfined()中定義為為36軟件工程程if( value 0) message(less);else if (value=0) message(“Itisequal);else message(more);if( value = 88 )message(luck);在原有的的測試上上,對Derived:Redfined()的測試只只需做如如下改動動:改動動v

27、alue=0的預(yù)期測測試結(jié)果果,并增增加value=88的測試。多態(tài)有幾幾種不同同的形式式,如參數(shù)多態(tài)態(tài),包含多態(tài)態(tài),重載多態(tài)態(tài)。包含多態(tài)態(tài)和重載多態(tài)態(tài)在面向?qū)ο笳Z言言程序中中通常37軟件工程程體現(xiàn)在子類與父父類的繼繼承關(guān)系系上,對這這兩種多多態(tài)的測測試可參參照對父父類成員員函數(shù)繼繼承和重重載的情情況處理理。在測試對對象時,完全的的覆蓋測測試應(yīng)當(dāng)當(dāng)包括:隔離對象象中所有有操作,進行獨獨立測試試。測試對象象中所有有屬性的設(shè)置和和訪問。測試對象象的所有有可能的的狀態(tài)轉(zhuǎn)換換。所有可可能引起起狀態(tài)改改變的事事件都要要模擬到到。2.對象類測測試38軟件工程程對象類,作為在在語法上上獨立的的構(gòu)件,應(yīng)當(dāng)允

28、允許在不不同應(yīng)用用中使用用。每個個類都應(yīng)應(yīng)是可靠靠的且不不需了解解任何實實現(xiàn)細節(jié)節(jié)就能復(fù)復(fù)用。因因此對象象類應(yīng)盡盡可能孤孤立地進進行測試試。設(shè)計操作作的測試試用例時時的要點點:首先定義義測試對對象各操作的測試用用例。對于一個個單獨的的操作,可通過過該操作作的前置條件件選擇測試試用例,產(chǎn)生輸輸出,讓讓測試者者能夠判判斷后置條件件是否能夠夠得到滿滿足。各個操作作的測試試與傳統(tǒng)統(tǒng)對函數(shù)數(shù)過程定定義的測測試基本本相同。39軟件工程程然后再把把測試用用例組擴擴充,針針對被測測操作調(diào)調(diào)用對象象類中其其他操作作的情況況,設(shè)計計操作序序列的測測試用例例組。測試可以以覆蓋每每個操作作的整個個輸入域域。但這這不夠

29、,還必須須測試這這些操作作的相互互作用,才能認認為測試試是充分分的。各個操作作間的相相互作用用包括類內(nèi)通信信和類間通信信。設(shè)計對象象類的規(guī)規(guī)格說明明測試時時的要點點:把對象類類當(dāng)做一一個黑盒盒,確認認類的實實現(xiàn)是否否遵照它它的定義義。40軟件工程程putReferencePoint(Point)moveTo(Point)ReferencePointarea( )draw( )erase( )getReferencePoint(Point)DisplayableShape(Point)DisplayableShape類內(nèi)消息類間消息DisplayableShape( )41軟件工程程例如,對對于

30、“棧?!钡臏y試應(yīng)應(yīng)當(dāng)確保保LIFO原則得以以實施。對于多數(shù)數(shù)對象類類,主要要檢驗在在類聲明明的public域中的那些些操作。對于子類類,要檢檢查繼承承父類的的public域和protected域的那些操操作。檢查所有有public域,protected域及private域中的操作作以完全全檢查對對象中定定義的操操作。等價劃分分的思想想也可用用到對象象類上。將使用對象象相同屬屬性的測試歸歸入同一一個等價價劃分集集合中。這樣可可以建立立對對象象類屬性性進行初初始化、42軟件工程程訪問、更更新等的的等價劃劃分。在設(shè)計對對象類的的行為測測試時需需要注意意:基于對象象的狀態(tài)模型型進行測試試時,首首先要識

31、識別需要要測試的的狀態(tài)的變變遷序列列,并定義義事件序序列來強強制執(zhí)行行這些變變遷。原則上應(yīng)應(yīng)當(dāng)測試試每一個個狀態(tài)變變遷序列列,當(dāng)然然這樣做做測試成成本很高高。完全的單單元應(yīng)當(dāng)當(dāng)保證類類的執(zhí)行行必須覆蓋它的的一個有有代表性性的狀態(tài)態(tài)集合。構(gòu)造函數(shù)數(shù)和消息息序列(線程)的參數(shù)數(shù)值的選選擇應(yīng)當(dāng)當(dāng)滿足這這個規(guī)則則。43軟件工程程8.3.2面向?qū)ο笙蟮募沙蓽y試(OOIntegrate Test)當(dāng)開發(fā)面面向?qū)ο笙笙到y(tǒng)時時,集成成的層次次并不明明顯。而而當(dāng)一組組對象類類通過組組合行為為提供一一組服務(wù)務(wù)時,則則需將它它們一起起測試,這就是是簇測試試。此時時不存在在自底向向上和自自頂向下下的集成成。面向?qū)ο?/p>

32、象程序相相互調(diào)用用的功能能是散布布在程序序的不同同類中,類通過過消息相相互作用用申請和和提供服服務(wù)。類類的行為為與它的的狀態(tài)密密切相關(guān)關(guān),狀態(tài)態(tài)不僅僅僅是體現(xiàn)現(xiàn)在類數(shù)數(shù)據(jù)成員員的值,也許還還包括其其他類中中的狀態(tài)態(tài)信息。44軟件工程程對象集成成測試又又稱交互測試試,目的是是確保對對象的消消息傳遞遞能夠正正確進行行。面向?qū)ο笙笙到y(tǒng)的的集成測測試有3種可用的的方法:用例或基基于場景景的測試試用例或場場景描述述了對系系統(tǒng)的使使用模式式。測試試可以根根據(jù)場景景描述和和對象簇簇來制定定。這種種測試著眼于系系統(tǒng)結(jié)構(gòu)構(gòu),首先先測試幾幾乎不使使用服務(wù)務(wù)器類的的獨立類類,再測測試那些些使用了了獨立類類的下一一層

33、次的的(依賴賴)類。這樣一一層一層層地持續(xù)續(xù)下去,直到整整個系統(tǒng)統(tǒng)構(gòu)造完完成?;诰€程程的測試試它把為響響應(yīng)某一一系統(tǒng)輸輸入或45軟件工程程事件所需需的一組組對象類類組裝在在一起。每一條條線程將將分別測測試和組組裝。因因為面向向?qū)ο笙迪到y(tǒng)通常常是事件件驅(qū)動的的,因此此這是一一個特別別合適的的測試形形式。對象交互互測試這個方法法提出了了集成測測試的中中間層概概念。中中間層給給出叫做做 “方方法-消息”路路徑的對對象交互互序列。所謂“原子系系統(tǒng)功能能”就是是指一些些輸入事事件加上上一條“方法-消息”路路徑,終終止于一一個輸出出事件。集成測試試能夠檢檢測出相相對獨立立的單元元測試無無法檢測測出的那那

34、些類相相互作用用時才會會產(chǎn)生的的錯誤。46軟件工程程集成測試試只關(guān)注注于系統(tǒng)統(tǒng)的結(jié)構(gòu)構(gòu)和內(nèi)部部的相互互作用。面向?qū)ο蟮募蓽y試試可以分分成兩步步進行:先進行行靜態(tài)測測試,再再進行動動態(tài)測試試。1)靜態(tài)測試試靜態(tài)測試試主要針針對程序序的結(jié)構(gòu)構(gòu)進行,檢測程程序結(jié)構(gòu)構(gòu)是否符符合設(shè)計計要求。現(xiàn)在流流行的一一些測試試軟件都都能提供供一種稱稱為“可逆性工工程”的功能,即通過源程程序得到到類關(guān)系系圖和函函數(shù)功能能調(diào)用關(guān)關(guān)系圖。如International Software Automation公司的Panorama-2 forWindows95、Rational公司的Rose C+Analyzer等。4

35、7軟件工程程將“可逆性工工程”得到的結(jié)結(jié)果與OOD的結(jié)果相相比較,檢測程程序結(jié)構(gòu)構(gòu)和實現(xiàn)現(xiàn)上是否否有缺陷陷。換句句話說,通過這這種方法法檢測OOP是否達到到了設(shè)計計要求。2)動態(tài)測試動態(tài)測試試在設(shè)計計測試用用例時,通常需需要上述述的功能能調(diào)用結(jié)結(jié)構(gòu)圖、類關(guān)系系圖或者者實體關(guān)關(guān)系圖為為參考,確定不不需要被被重復(fù)測測試的部部分,從從而優(yōu)化化測試用用例,減減少測試試工作量量,使得得進行的的測試能能夠達到到一定覆覆蓋標準準。測試所要要達到的的覆蓋標標準可以以是:48軟件工程程達到類所所有的服服務(wù)要求求或服務(wù)務(wù)提供的的一定覆覆蓋率;依據(jù)類間間傳遞的的消息,達到對對所有執(zhí)執(zhí)行線程程的一定定覆蓋率率;達到類

36、的的所有狀狀態(tài)的一一定覆蓋蓋率等。考慮使用用現(xiàn)有的的一些測測試工具具來得到到程序代代碼執(zhí)行行的覆蓋蓋率。具體設(shè)計計測試用用例,可可參考下下列步驟驟:先選定檢檢測的類類;參考考OOD分析結(jié)果果,仔細細列出類類的狀態(tài)態(tài)和相應(yīng)應(yīng)的行為為、類或或成員函函數(shù)間傳傳遞的消消息、輸輸入或輸輸出的界界定等。49軟件工程程確定覆蓋蓋標準。利用結(jié)構(gòu)構(gòu)關(guān)系圖圖確定待待測試類類的所有有關(guān)聯(lián)。根據(jù)程序序中類的的對象構(gòu)構(gòu)造測試試用例,確認使使用什么么輸入激激發(fā)類的的狀態(tài)、使用類類的服務(wù)務(wù)和期望望產(chǎn)生什什么行為為等。注意,設(shè)設(shè)計測試試用例時時,不但但要設(shè)計計確認類類功能能能夠成功功執(zhí)行的的輸入,還應(yīng)該該有意識識的設(shè)計計一些

37、會會導(dǎo)致異異常的輸輸入,確確認類是是否有不不合法的的行為產(chǎn)產(chǎn)生,如如發(fā)送與與類狀態(tài)態(tài)不相適適應(yīng)的消消息,要要求不相相適應(yīng)的的服務(wù)等等。根據(jù)據(jù)具體情情況,動動態(tài)的集集成測試試,有時時也可以以通過系系統(tǒng)測試試完成。50軟件工程程8.3.3面向?qū)ο笙蟮南到y(tǒng)統(tǒng)測試(OOSystem Test)通過單元元測試和和集成測測試,僅僅能保證證軟件開開發(fā)的功功能得以以實現(xiàn)。但不能能確認在在實際運運行時,它是否否滿足用用戶的需需要,是是否大量量存在實實際使用用條件下下會被誘誘發(fā)產(chǎn)生生錯誤的的隱患。為此,對完成成開發(fā)的的軟件必必須經(jīng)過過規(guī)范的的系統(tǒng)測測試。換個角度度說,開開發(fā)完成成的軟件件僅僅是是實際投投入使用用系

38、統(tǒng)的的一個組組成部分分,需要要測試它它與系統(tǒng)統(tǒng)其他部部分配套套運行的的表現(xiàn),以保證證在系統(tǒng)統(tǒng)各部分分協(xié)調(diào)工工作的環(huán)環(huán)境下也也能正常常工作。51軟件工程程在系統(tǒng)測測試的層層次上,不再考考慮對象象類間相相互連接接的細節(jié)節(jié)。主要要著眼于于用戶可可見的動動作和用用戶可識識別的系系統(tǒng)輸出出。為了幫助助系統(tǒng)測測試的執(zhí)執(zhí)行,測測試者需需要回到到分析時時的動態(tài)態(tài)模型和和描述系系統(tǒng)行為為的事件件序列(腳本)進行測測試??梢岳糜煤诤袦y測試的方方法來驅(qū)驅(qū)動系統(tǒng)統(tǒng)測試。測試檢測測軟件中中的故障障并確定定軟件是是否執(zhí)行行了預(yù)定定要開發(fā)發(fā)的功能能。系統(tǒng)測試試應(yīng)該盡盡量搭建建與用戶戶實際使使用環(huán)境境相同的的測試平平臺,應(yīng)

39、應(yīng)該保證證被測系系統(tǒng)的完完整性。對沒有的的52軟件工程程系統(tǒng)設(shè)備備部件,應(yīng)有相相應(yīng)的模模擬手段段。具體測試試內(nèi)容包包括:功能測試試:測試系統(tǒng)統(tǒng)是否滿滿足開發(fā)發(fā)要求,是否能能夠滿足足設(shè)計所所描述的的功能,是否用用戶的需需求都得得到滿足足。功能能測試是是系統(tǒng)測測試最常常用和必必須的測測試,通通常以正正式的軟軟件規(guī)格格說明為為測試標標準。強度測試試:測試系統(tǒng)統(tǒng)能力所所能達到到的最高高實際限限度,即即軟件在在一些超超負荷情情況下功功能實現(xiàn)現(xiàn)的情況況。如要要求軟件件某一行行為的大大量重復(fù)復(fù)、輸入入大量的的數(shù)據(jù)或或大數(shù)值值數(shù)據(jù)、對數(shù)據(jù)庫大大量查詢詢53軟件工程程等情況。性能測試試:測試軟件件的運行行績效。

40、這種測測試常常常與強度度測試結(jié)結(jié)合進行行,需要要事先對對被測軟軟件提出出性能指指標,如如傳輸連連接的最最長時限限、傳輸輸?shù)腻e誤誤率、計計算的精精度、記記錄的精精度、響響應(yīng)的時時限和恢恢復(fù)時限限等。安全測試試:驗證安裝裝在系統(tǒng)統(tǒng)內(nèi)的保保護機構(gòu)構(gòu)能否確確實對系系統(tǒng)進行行保護,使之不不受各種種非常的的干擾。安全測測試時需需要設(shè)計計一些測測試用例例試圖突突破系統(tǒng)統(tǒng)的安全全保密措措施,檢檢驗系統(tǒng)統(tǒng)是否有有安全保保密的漏漏洞。54軟件工程程恢復(fù)測試試:采用人工工的干擾擾使軟件件出錯,中斷使使用,檢檢測系統(tǒng)統(tǒng)的恢復(fù)復(fù)能力,特別是是通訊系系統(tǒng)的恢恢復(fù)能力力。設(shè)計計恢復(fù)測測試的測測試用例例時,應(yīng)應(yīng)該參考考性能測

41、測試的相相關(guān)測試試指標??捎眯詼y測試:測試用戶戶能否滿滿意地使使用。具具體體現(xiàn)現(xiàn)為操作作是否方方便,用用戶界面面是否友友好等。安裝/卸載測試試(install/uninstalltest),等。系統(tǒng)測試試需要對對被測的的軟件結(jié)結(jié)合需求求分析做做仔細的的測試分分析,建建立測試試用例。55軟件工程程8.3.4面向?qū)ο笙鬁y試用用例的設(shè)設(shè)計測試過程程包括了了一組測測試用例例的開發(fā)發(fā),每一一個測試試用例要要求能檢檢驗應(yīng)用用的一個個特定的的元素。還需要要分析用用各個測測試用例例執(zhí)行測測試的結(jié)結(jié)果來收收集有關(guān)關(guān)軟件的的信息。軟件測試試人員可可以參考考以下方方法:應(yīng)當(dāng)唯一一標識每每一個測測試用例例,并與與被測

42、試試的類顯顯式地建建立關(guān)聯(lián)聯(lián)。陳述測試試對象的的一組特特定狀態(tài)態(tài)。56軟件工程程對每一個個測試建建立一組組測試步步驟,要要思考和和確定的的問題包包括:被測試對對象的一一組特定定狀態(tài);一組消息息和操作作;考慮在對對象測試試時可能能產(chǎn)生的的一組異異常;一組外部部條件;輔助理解解和實現(xiàn)現(xiàn)測試時時的補充充信息。傳統(tǒng)的白白盒測試試方法可可用在類類定義的的操作測測試和類類級別測測試中,黑盒測測試方法法可用于于多類測測試。57軟件工程程8.4分布式系系統(tǒng)的測測試分布式處處理中涉涉及的最最基本單單位是線線程,線線程是操操作系統(tǒng)統(tǒng)進程內(nèi)內(nèi)部能夠夠獨立運運行的內(nèi)內(nèi)容,它它擁有自自己的程程序計數(shù)數(shù)器和本本地數(shù)據(jù)據(jù)。

43、線程程是能夠夠被調(diào)度度執(zhí)行的的最小單單位。分布式系系統(tǒng)測試試主要面面臨的問問題是并并發(fā)性、網(wǎng)絡(luò)化化和分布布式。并發(fā)性是是指多個個線程同同時發(fā)生生。針對對并發(fā)性性錯誤的的測試主主要著重重于兩個個線程的的交互。在實際際實施交交互機制制之前應(yīng)應(yīng)對相關(guān)關(guān)方法進進行測試試。58軟件工程程在網(wǎng)絡(luò)環(huán)環(huán)境中各各個獨立立的盒子子連接到到通信設(shè)設(shè)施上,如何實實現(xiàn)它們們物理上上的同步步是網(wǎng)絡(luò)絡(luò)計算的的問題。相關(guān)的的測試就就是在組組成一個個網(wǎng)絡(luò)系系統(tǒng)的各各個自治治機器之之間同步步問題的的測試。分布式系系統(tǒng)使用用多進程程來支持持系統(tǒng)的的靈活性性一個對對象既可可以在同同一臺機機器上分分布在多多個進程程中,還還可以分分布在

44、多多個物理理上的計計算機上上。所有有這些分分布式構(gòu)構(gòu)件都要要能夠識識別“命命名服務(wù)務(wù)”或“注冊”對象,能夠與與其他構(gòu)構(gòu)件交互互。所有有在配置置文件中中登記的的機器與與構(gòu)件構(gòu)構(gòu)成基礎(chǔ)礎(chǔ)結(jié)構(gòu)。59軟件工程程需要考慮慮與這些些分布式式構(gòu)件相相關(guān)的測測試。分布式系系統(tǒng)中的的路徑測測試一條路徑徑是一系系列邏輯輯上連續(xù)續(xù)的語句句,它只只有在特特定的輸輸入下才才執(zhí)行。路徑的的另一個個定義是是覆蓋變變量的定定義和使使用就形形成一條條完整的的路徑。在分布式式系統(tǒng)中中的路徑徑就是設(shè)設(shè)計測試試用例覆蓋一個個同步順順序。所謂同同步順序序是指同步事件件按照特特定次序序發(fā)生的的順序,而同步事件件是指一一個線程程產(chǎn)生另另一

45、個線線程。60軟件工程程測試應(yīng)跟跟蹤一個個事件到到另一個個事件的的路徑。如果從從一個同同步事件件到另一一個同步步事件有有多條可可能的控控制流路路徑,只只需覆蓋蓋其中一一條路徑徑。生存周期期測試在分布式式系統(tǒng)中中,生存存周期測測試是指指選擇一一系列測測試用例例,測試試任何處處于生存存期中的的對象。特別是是在整個個生存周周期過程程中存在在多條路路徑,測測試必須須選擇有有代表性性的路徑徑以保證證最大的的覆蓋范范圍。61軟件工程程對于一個個類來說說,生存存周期意意味著選選擇一系系列測試試,每個個測試構(gòu)構(gòu)造類的的一個實實例,并并通過一一系列消消息來使使用實例例,最后后再撤銷銷這個實實例。一個有效效的生存

46、存周期測測試應(yīng)能能證實對對象本身身是否正正確,還還應(yīng)能證證實被測測試項是是否能夠夠與它所所在的環(huán)環(huán)境正確確地交互互。對于于一個類類的實例例,在它它被撤銷銷后必須須檢查它它占用的的資源是是否已被被釋放掉掉。62軟件工程程分布式模模型下面討論論用在分分布式系系統(tǒng)中的的使用某某些標準準基礎(chǔ)結(jié)結(jié)構(gòu)的測測試過程程?;镜目涂蛻魴C服務(wù)器模模型客戶機服務(wù)器器模型是是最簡單單的分布布式模型型。在這這種模型型下,多多個客戶戶機都可可訪問服服務(wù)器。服務(wù)器器是單一一進程。由于所所有客戶戶機都與與同一個個服務(wù)器器交互,因此存存在單點失敗?。捶?wù)務(wù)器出現(xiàn)現(xiàn)問題將將影響所所有客戶戶機)。測試要要點:63軟件工程程在延時

47、期間間,面對對同時收收到的服服務(wù)請求求,服務(wù)務(wù)器能否否把正確確結(jié)果發(fā)發(fā)送給各各個相應(yīng)應(yīng)的客戶戶機?服務(wù)器能能否處理理快速增增長的負負載?當(dāng)當(dāng)負載增增加時,服務(wù)器器的性能能可能降降低,因因此可能能選擇放放棄一部部分負載載。標準分布布式模型型CORBACORBA是對象管管理組織織OMG開發(fā)的公公共對象象請求代代理體系系結(jié)構(gòu),并將它它作為分分布對象象系統(tǒng)的的標準體體系結(jié)構(gòu)構(gòu)。64軟件工程程這種結(jié)構(gòu)構(gòu)的核心心是對象象請求代代理(ORB),一個對象象通過ORB與系統(tǒng)中中的另一一個對象象通信。CORBA標準的特特點:與基礎(chǔ)結(jié)結(jié)構(gòu)相聯(lián)聯(lián)系的機機器可能能有不同同的操作作系統(tǒng)和和不同的的存儲設(shè)設(shè)計;構(gòu)成分布布式

48、系統(tǒng)統(tǒng)的構(gòu)件件可以用用不同的的語言編編寫;根據(jù)對象象的分布布性和網(wǎng)網(wǎng)絡(luò)中機機器的類類型,基基礎(chǔ)結(jié)構(gòu)構(gòu)可以改改變它自自身的配配置。測試要點點:65軟件工程程不考慮基基礎(chǔ)結(jié)構(gòu)構(gòu)的配置置,系統(tǒng)統(tǒng)能夠正正確的工工作?測測試用例例應(yīng)能產(chǎn)產(chǎn)生被測測試基礎(chǔ)礎(chǔ)結(jié)構(gòu)的的各種預(yù)預(yù)期的配配置。在標準基基礎(chǔ)結(jié)構(gòu)構(gòu)的服務(wù)務(wù)基礎(chǔ)上上,構(gòu)造造新的測測試用例例能否被被重復(fù)使使用?測測試用例例的設(shè)計計應(yīng)盡可可能地使使用基礎(chǔ)礎(chǔ)結(jié)構(gòu)。新發(fā)布的的特定基基礎(chǔ)結(jié)構(gòu)構(gòu)能否與與已有的的應(yīng)有有有效地結(jié)結(jié)合起來來?應(yīng)有有一系列列的回歸歸測試,使得新新發(fā)布的的基礎(chǔ)結(jié)結(jié)構(gòu)能夠夠在被集集成到產(chǎn)產(chǎn)品中之之前得到到測試。66軟件工程程標準分布布式模型型D

49、COMDCOM是Microsoft開發(fā)并鼓鼓勵的一一種標準準的分布布式構(gòu)件件對象模模型。DCOM “標準”被被描述述為包含含特定方方法的標標準接口口,每個個標準接接口都提提供了一一套特定定的服務(wù)務(wù)。單個個構(gòu)件可可以完成成幾個接接口的服服務(wù),或或若干構(gòu)構(gòu)件中的的每一個個都能完完成統(tǒng)一一接口的的服務(wù),只是方方式不同同。DCOM是低層次次的技術(shù)術(shù),支持持構(gòu)件間間最原始始的聯(lián)系系,它不不作為應(yīng)應(yīng)用開發(fā)發(fā)的部分分。67軟件工程程測試要點點:在對各種種構(gòu)件做做任意配配置時測測試者能能否正確確編排唯唯一的標標識?測測試用例例應(yīng)能利利用各種種構(gòu)件確確保所有有必要的的連接能能夠成功功。每個構(gòu)件件能否實實現(xiàn)必要要的接口口?測試試用例應(yīng)應(yīng)能利用用各種構(gòu)構(gòu)件確保保所有服服務(wù)是可可利用的的并能實實現(xiàn)期望望的功能能。標準接口口的實現(xiàn)現(xiàn)能否提提供正確確的行為為?應(yīng)針針對每一一種標準準接口有有一套測測試。標準分布式式模型RMI68軟件工程程RMI是Java中的遠程程方法調(diào)調(diào)用包,它提供供一種簡簡化的分分布式環(huán)環(huán)境,該該環(huán)境假假定不論論連接的的是什么么樣的或或什么類類型的機機器,它它們都能能運行Java虛擬機。RMI提供一個個注冊對對象,參參與分布布式系統(tǒng)統(tǒng)的所有有對象必必須知道道該注冊冊對象監(jiān)監(jiān)聽到哪哪個端口口的消息息。RMI的最新版

溫馨提示

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

評論

0/150

提交評論