面向?qū)ο笈c傳統(tǒng)軟件的測(cè)試技術(shù)_第1頁(yè)
面向?qū)ο笈c傳統(tǒng)軟件的測(cè)試技術(shù)_第2頁(yè)
面向?qū)ο笈c傳統(tǒng)軟件的測(cè)試技術(shù)_第3頁(yè)
面向?qū)ο笈c傳統(tǒng)軟件的測(cè)試技術(shù)_第4頁(yè)
面向?qū)ο笈c傳統(tǒng)軟件的測(cè)試技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、技術(shù)創(chuàng)新,變革未來(lái)面向?qū)ο笈c傳統(tǒng)軟件的測(cè)試技術(shù)面向?qū)ο蟮幕靖拍顚?duì)象類(lèi)消息接口封裝繼承多態(tài)面向?qū)ο蟮幕靖拍頟eter Coad 和 Edward Yourdon 提出下列等式認(rèn)識(shí)面向?qū)ο蠓椒ǎ?面向?qū)ο?對(duì)象(Object) 分類(lèi)(Classification) 繼承(Inheritance) 通過(guò)消息的通信 (Communication with message)采用這四個(gè)概念開(kāi)發(fā)的軟件系統(tǒng)是面向?qū)ο蟮摹C嫦驅(qū)ο蠹夹g(shù)面向?qū)ο蠓椒ǖ某霈F(xiàn),實(shí)際上是程序設(shè)計(jì)方法發(fā)展的-個(gè)返樸歸真過(guò)程。面向?qū)ο蟮膶?shí)質(zhì):從系統(tǒng)的組成上來(lái)進(jìn)行分解。對(duì)問(wèn)題自然分割,利用類(lèi)及對(duì)象作為基本構(gòu)造單元,以更接近人類(lèi)思維的方式建

2、立問(wèn)題域模型,從而使設(shè)計(jì)出的軟件盡可能直接地描述現(xiàn)實(shí)世界,構(gòu)造出模塊化的、可重用的、可維護(hù)性好的軟件,并能控制軟件的復(fù)雜性降低開(kāi)發(fā)維護(hù)費(fèi)用。對(duì)象對(duì)象是指包含了一組屬性以及對(duì)這些屬性的操作的封裝體。對(duì)象之間存在著一定的關(guān)系,對(duì)象之間的交互與合作構(gòu)成更高級(jí)的行為。王五由他的頭、胳膊、腿和身體組成汽車(chē)是一種交通工具對(duì)象間的由分解所構(gòu)成的關(guān)系,part of層次;具有代表一種一般特性的對(duì)象之間的聚合關(guān)系,is a層次;代表更一般的對(duì)象間在物理上或概念上有關(guān)的相關(guān)關(guān)系。人乘坐或駕駛汽車(chē)對(duì)象是軟件開(kāi)發(fā)期間測(cè)試的直接目標(biāo)。面向?qū)ο筌浖y(cè)試所關(guān)注的焦點(diǎn): (1)對(duì)象的行為是否符合它的規(guī)定說(shuō)明; (2)該對(duì)象與

3、和它相關(guān)的對(duì)象是否協(xié)同工作。2 面向?qū)ο笈c傳統(tǒng)軟件的測(cè)試面向?qū)ο蠹夹g(shù)所獨(dú)有的封裝、繼承、多態(tài)等新特點(diǎn)給測(cè)試帶來(lái)一系列新的問(wèn)題,增加了測(cè)試的難度。與傳統(tǒng)的面向過(guò)程的程序設(shè)計(jì)相比,面向?qū)ο蟪绦蛟O(shè)計(jì)產(chǎn)生錯(cuò)誤的可能性增大,或者使得傳統(tǒng)軟件測(cè)試中的重點(diǎn)不再那么突出,使原來(lái)測(cè)試經(jīng)驗(yàn)和實(shí)踐證明的次要方面成為了主要問(wèn)題。例如:函數(shù) y = Function(x) 如果該函數(shù)寫(xiě)在傳統(tǒng)的面向過(guò)程的程序中,通??紤]的是函數(shù)Function()本身的行為特點(diǎn)。但若寫(xiě)在面向?qū)ο蟮某绦蛑?,就不得不同時(shí)考慮基類(lèi)函數(shù)Base:Function() 的行為和派生類(lèi)函數(shù)Derived:Function()的行為。面向?qū)ο蠹夹g(shù)的特

4、點(diǎn)給測(cè)試帶來(lái)的新問(wèn)題具體表現(xiàn)為:(1)封裝把數(shù)據(jù)及對(duì)數(shù)據(jù)的操作封裝在一起,限制了對(duì)象屬性對(duì)外的透明性和外界對(duì)它的操作權(quán)限,在某種程度上避免了對(duì)數(shù)據(jù)的非法操作,有效防止了故障的擴(kuò)散。但同時(shí),封裝機(jī)制也給測(cè)試數(shù)據(jù)的生成、測(cè)試路徑的選取以及測(cè)試結(jié)構(gòu)的分析帶來(lái)了困難。(2)繼承實(shí)現(xiàn)了共享父類(lèi)中定義的數(shù)據(jù)和操作,同時(shí)也可定義新的特征。子類(lèi)是在新的環(huán)境中存在,所以父類(lèi)的正確性不能保證子類(lèi)的正確性。繼承使代碼的重用率得到了提高,但同時(shí)也使故障的傳播幾率增加。(3)多態(tài)和動(dòng)態(tài)綁定增加了系統(tǒng)運(yùn)行中可能的執(zhí)行路徑,而且給面向?qū)ο筌浖?lái)了嚴(yán)重的不確定性,給測(cè)試覆蓋率的活動(dòng)帶來(lái)新的困難。 面向?qū)ο笈c傳統(tǒng)軟件的測(cè)試(

5、續(xù))與傳統(tǒng)軟件相比,由于存在的諸如繼承、多態(tài)、動(dòng)態(tài)綁定等關(guān)系,面向?qū)ο筌浖哂懈鼜?fù)雜的依賴(lài)關(guān)系,一個(gè)類(lèi)將不可避免的依賴(lài)于其它的類(lèi),從而增加了面向?qū)ο筌浖y(cè)試的難度。傳統(tǒng)軟件中存在的依賴(lài)關(guān)系有:變量間的數(shù)據(jù)依賴(lài);模塊間的調(diào)用依賴(lài);變量與其類(lèi)型間的定義依賴(lài);模塊與其變量間的功能依賴(lài)。面向?qū)ο筌浖舜嬖谏鲜鲆蕾?lài)關(guān)系外,還存在以下的依賴(lài)關(guān)系:類(lèi)與類(lèi)間的依賴(lài);類(lèi)與操作間的依賴(lài);類(lèi)與消息間的依賴(lài);類(lèi)與變量間的依賴(lài);操作與變量間的依賴(lài);操作與消息間的依賴(lài);操作與操作間的依賴(lài)。面向?qū)ο笈c傳統(tǒng)軟件的測(cè)試(續(xù))3 面向?qū)ο筌浖y(cè)試模型面向?qū)ο蟮某绦蚪Y(jié)構(gòu)不再是傳統(tǒng)的功能模塊結(jié)構(gòu),作為一個(gè)整體,原有集成測(cè)試所要求的

6、逐步將開(kāi)發(fā)的模塊搭建在一起進(jìn)行測(cè)試的方法已變得不可行。而且,面向?qū)ο筌浖仐壛藗鹘y(tǒng)的開(kāi)發(fā)模式,已經(jīng)不可能用功能細(xì)化的觀(guān)點(diǎn)來(lái)檢測(cè)面向?qū)ο蠓治龊驮O(shè)計(jì)的結(jié)果。因此,傳統(tǒng)的測(cè)試模型對(duì)面向?qū)ο筌浖呀?jīng)不再適用。面向?qū)ο蟮能浖_(kāi)發(fā)模型將開(kāi)發(fā)過(guò)程定義為面向?qū)ο蠓治?OOA)、面向?qū)ο笤O(shè)計(jì)(OOD)和面向?qū)ο缶幊?OOP)三個(gè)階段。針對(duì)這種開(kāi)發(fā)模型,應(yīng)該建立一種新的測(cè)試模型。面向?qū)ο筌浖y(cè)試模型(續(xù))面向?qū)ο蟮臏y(cè)試模型OO System TestOO Integrate TestOOAOODOOPOOA TestOOD TestOOP TestOO Unit Test面向?qū)ο?分析的測(cè)試面向?qū)ο?設(shè)計(jì)的測(cè)試面

7、向?qū)ο?編程的測(cè)試面向?qū)ο笙到y(tǒng)測(cè)試面向?qū)ο髥卧獪y(cè)試面向?qū)ο蠹蓽y(cè)試面向?qū)ο筌浖y(cè)試模型(續(xù))OOA Test 和OOD Test 是對(duì)分析結(jié)果和設(shè)計(jì)結(jié)果的測(cè)試,主要是對(duì)分析設(shè)計(jì)產(chǎn)生的文檔進(jìn)行測(cè)試,是軟件開(kāi)發(fā)前期的關(guān)鍵性測(cè)試。OOP Test 主要針對(duì)編程風(fēng)格和程序代碼實(shí)現(xiàn)進(jìn)行測(cè)試,主要的測(cè)試內(nèi)容在面向?qū)ο髥卧獪y(cè)試和面向?qū)ο蠹蓽y(cè)試中體現(xiàn)。面向?qū)ο髥卧獪y(cè)試針對(duì)程序內(nèi)部具體單一功能的模塊進(jìn)行測(cè)試,比如在C+程序中主要就是對(duì)類(lèi)成員函數(shù)的測(cè)試。面向?qū)ο蠹蓽y(cè)試主要對(duì)系統(tǒng)內(nèi)部的相互服務(wù)進(jìn)行測(cè)試,如成員函數(shù)間的相互作用、類(lèi)間的消息傳遞等。面向?qū)ο笙到y(tǒng)測(cè)試是基于面向?qū)ο蠹蓽y(cè)試的最后階段的測(cè)試,主要以用戶(hù)需

8、求為測(cè)試標(biāo)準(zhǔn)。面向?qū)ο蠓治龅臏y(cè)試(OOA Test)OOA的測(cè)試重點(diǎn)在其完整性和冗余性。對(duì)OOA階段的測(cè)試劃分為五個(gè)方面:對(duì)認(rèn)定的對(duì)象的測(cè)試;對(duì)認(rèn)定的結(jié)構(gòu)的測(cè)試;對(duì)認(rèn)定的主題的測(cè)試;對(duì)定義的屬性和實(shí)例關(guān)聯(lián)的測(cè)試;對(duì)定義的服務(wù)和消息關(guān)聯(lián)的測(cè)試。 OOA中認(rèn)定的對(duì)象:是指對(duì)問(wèn)題空間中的結(jié)構(gòu)、其他系統(tǒng)、設(shè)備、被記憶的事件、系統(tǒng)涉及的人員等實(shí)際實(shí)例的抽象。面向?qū)ο笤O(shè)計(jì)的測(cè)試(OOD Test)OOD是OOA的進(jìn)一步細(xì)化和擴(kuò)充,重點(diǎn)在于說(shuō)明項(xiàng)目的實(shí)施方案,來(lái)確定類(lèi)和類(lèi)的結(jié)構(gòu)。對(duì)OOD的測(cè)試,應(yīng)針對(duì)功能的實(shí)現(xiàn)和重用以及對(duì)OOA結(jié)果的拓展進(jìn)行,從以下三方面考慮:(1)對(duì)認(rèn)定的類(lèi)的測(cè)試是否涵蓋了OOA中所有認(rèn)

9、定的對(duì)象;是否能體現(xiàn)OOA中定義的屬性;是否能實(shí)現(xiàn)OOA中定義的服務(wù);是否對(duì)應(yīng)著一個(gè)含義明確的數(shù)據(jù)抽象;是否盡可能少的依賴(lài)其他類(lèi);類(lèi)中的方法是否單用途。(2)對(duì)構(gòu)造的類(lèi)層次結(jié)構(gòu)的測(cè)試類(lèi)層次結(jié)構(gòu)是否涵蓋了所有定義的類(lèi);是否能體現(xiàn)OOA中定義的實(shí)例關(guān)聯(lián);是否能實(shí)現(xiàn)OOA中定義的消息關(guān)聯(lián);子類(lèi)是否具有父類(lèi)沒(méi)有的新特性;子類(lèi)間的共同特性是否完全在父類(lèi)中得以體現(xiàn)。(3)對(duì)類(lèi)庫(kù)支持的測(cè)試面向?qū)ο缶幊痰臏y(cè)試(OOP Test)面向?qū)ο蟪绦蚴前压δ艿膶?shí)現(xiàn)分布在類(lèi)中。能正確實(shí)現(xiàn)功能的類(lèi),通過(guò)消息傳遞來(lái)協(xié)同實(shí)現(xiàn)設(shè)計(jì)要求的功能。這種程序架構(gòu)能將出現(xiàn)的錯(cuò)誤精確的確定在某一具體的類(lèi)。 對(duì)OOP的測(cè)試重點(diǎn)集中在類(lèi)功能的實(shí)

10、現(xiàn)和相應(yīng)的面向?qū)ο蟪绦蚣軜?gòu),主要體現(xiàn)為以下兩個(gè)方面:(1)數(shù)據(jù)成員是否滿(mǎn)足數(shù)據(jù)封裝的要求基本原則是數(shù)據(jù)成員是否被外界直接調(diào)用。(2)類(lèi)是否實(shí)現(xiàn)了要求的功能測(cè)試類(lèi)的功能,不能僅滿(mǎn)足于代碼能無(wú)錯(cuò)運(yùn)行或被測(cè)試的類(lèi)能提供的功能正確,應(yīng)以所做的OOD結(jié)果為依據(jù),檢測(cè)類(lèi)提供的功能是否滿(mǎn)足了設(shè)計(jì)的要求,是否有缺陷。 取決于單元的構(gòu)成;四層:以單個(gè)操作或方法為單元:操作/方法測(cè)試:?jiǎn)卧獪y(cè)試;類(lèi)測(cè)試:類(lèi)內(nèi)的測(cè)試;集成測(cè)試:類(lèi)間測(cè)試;系統(tǒng)測(cè)試:端口事件層上測(cè)試;三層:以類(lèi)為單元面向?qū)ο鬁y(cè)試層次datedaymonthyear類(lèi)聚合例1:NextDate面向?qū)ο蟮膶?shí)現(xiàn)testItDateDay dMonth mYe

11、ar yDate(pDay,pMonth,pYear)Increment()printDate()CalendarUnit abstract classcurrentPos As IntegerCalendarUnit(pCurrentPos)setCurrentPos(pCurrentPos)Increment() booleanDayMonth mDay(pDay,Month,pMonth)setCurrentPos(pCurrentPos)getDay()Increment()YearYear(int pYear)setCurrentPos(pCurrentPos)getYear()In

12、crment()isLeap() booleanMonthprivate Year yprivate sizeIndex=Month(pcur,Year pYear)setCurrentPos(pCurrentPos)setMonth(pcur,Year pYear)getMonth()getMonthSize()Increment()O-oCalendar 中的類(lèi)例2:貨幣轉(zhuǎn)換應(yīng)用程序美圓金額等價(jià)于巴西加拿大歐共體日本計(jì)算清除退出貨幣轉(zhuǎn)換程序是事件驅(qū)動(dòng)的程序,強(qiáng)調(diào)與GUI關(guān)聯(lián)的代碼。將美元轉(zhuǎn)換為任意四種貨幣,貨幣選擇由單選按鈕控制,相互排斥。計(jì)算按鈕將美元金額轉(zhuǎn)換為所選貨幣的等量金額清除按鈕

13、重新設(shè)置貨幣選擇、美元金額、等量貨幣金額、相關(guān)標(biāo)簽。退出按鈕結(jié)束該應(yīng)用程序。輸入事件輸出事件ip1ip2ip2.1ip2.2ip2.3ip2.4ip3ip4ip5ip6輸入美元金額按下國(guó)家按鈕按下巴西按下加拿大按下歐共體按下日本按下計(jì)算按鈕按下清除按鈕按下退出按鈕在錯(cuò)誤消息中按下OKop1op2op2.5op3op4op5op6op7op8op9op10顯示美元金額顯示貨幣名稱(chēng)顯示省略號(hào)指示所選國(guó)家重新設(shè)置所選國(guó)家顯示外幣值錯(cuò)誤消息:必須選擇國(guó)家錯(cuò)誤消息:必須輸入美元金額錯(cuò)誤消息:必須選擇國(guó)家輸入美元金額重新設(shè)置美元金額重新設(shè)置等價(jià)貨幣金額貨幣轉(zhuǎn)換程序的輸入和輸出事件Ip3/op8Ip6空閑遺

14、漏國(guó)家和美圓消息國(guó)家已選擇遺漏美圓信息兩種輸入已完成美圓金額已輸入遺漏國(guó)家消息已顯示等價(jià)金額Ip4 or ip5Ip2/op2,op3Ip3/op7Ip6Ip4 or ip 5 Op2.5,op4 op9,and op 10Ip1/op1Ip3/op5Ip2/op2,op3Ip1/op1Ip6Ip3/op6圖16-7 高層有限狀態(tài)機(jī)沒(méi)有顯示在每個(gè)狀態(tài)會(huì)發(fā)生的所有事件,按下清除和退出按鈕,可以在任何狀態(tài)中發(fā)生??臻e巴西歐共體加拿大日本Ip2.1Op2.1Op3.1Ip2.2Op2.2Op3.2Ip2.3Op2.3Op3.3Op4.1Ip2.4Op2.4Op3.4Ip2.3Op2.3Op3.3Ip

15、2.1Op2.1Op3.1Op4.3Ip2.2Op2.2Op3.2Op4.1Ip2.1Op2.1Op3.1Op4.2Ip2.3Op2.3Op3.3Op4.4Ip2.4Op2.4Op3.4Op4.3Ip2.4Op2.4Op3.4Op4.2Ip2.2Op2.2Op3.2Op4.4圖16-8 選擇國(guó)家狀態(tài)詳細(xì)視圖在存儲(chǔ)器中空閑遺漏國(guó)家和美圓消息國(guó)家已選擇遺漏美圓信息兩種輸入已完成美圓金額已輸入遺漏國(guó)家消息已顯示等價(jià)金額Ip4Ip2/op2,op3Ip3/op8Ip6Ip3/op7Ip6Ip1/op1Ip2/op2,op3Ip3/op5Ip1/op1Ip3/op6Ip6Ip2/op2,op3Ip1/op1Ip5結(jié)束貨幣轉(zhuǎn)換應(yīng)用程序狀態(tài)圖執(zhí)行退出清除狀態(tài)轉(zhuǎn)移圖的面向?qū)ο筌浖y(cè)試面向?qū)ο笤O(shè)計(jì)方法通常采用狀態(tài)轉(zhuǎn)移圖建立對(duì)象的動(dòng)態(tài)行為

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論