實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問題_第1頁(yè)
實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問題_第2頁(yè)
實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問題_第3頁(yè)
實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問題_第4頁(yè)
實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問題_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

./實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)序號(hào):04實(shí)驗(yàn)項(xiàng)目名稱:使用基本路徑測(cè)試法求解"自動(dòng)售貨機(jī)"問題學(xué)號(hào)122姓名專業(yè)、班實(shí)驗(yàn)地點(diǎn)實(shí)1-511指導(dǎo)教師實(shí)驗(yàn)時(shí)間2013/4/27一、實(shí)驗(yàn)?zāi)康募耙罄斫饣韭窂礁采w測(cè)試法的概念和方法;掌握使用Eclipse+JUnit+EclEmma進(jìn)行基本路徑覆蓋測(cè)試的方法。二、實(shí)驗(yàn)設(shè)備〔環(huán)境及要求開發(fā)環(huán)境:Eclipsev3.7及以上版本;JUnitv4.10及以上版本;文本編輯軟件。硬件要求:CPUPIV以上,256M存,1G硬盤空間。系統(tǒng)要求:Windows98/Me/XP/NT/2000,IE5以上。三、實(shí)驗(yàn)容步驟下載并安裝Eclipse+JUnit+EclEmma實(shí)驗(yàn)環(huán)境;通讀自動(dòng)售貨機(jī)程序,并在Eclipse環(huán)境下運(yùn)行該程序;使用基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例,完成以下表格;編號(hào)輸入值Type輸入值money狀態(tài)預(yù)期輸出實(shí)際情況001Beer5C各資源剩余InputInformationType:Beer;Money:5Cents;Change:0CurrentBeer:5OrangeJuice:65Cents:71Dollar:6002OrangeJuice5C各資源剩余InputInformationType:OrangeJuice;Money:5Cents;Change:0CurrentBeer:6OrangeJuice:55Cents:71Dollar:6003Beer1D沒有啤酒FailureInformationBeerShortage步驟:1、解壓eclemma軟件包,并放到eclipse安裝目錄的dropins文件夾下:2、重新啟動(dòng)eclipse軟件,菜單欄會(huì)出現(xiàn)新的圖標(biāo):3、查看Windows的Customizeperspective項(xiàng)中的CommandGroupsAvailabiity多了Coverage項(xiàng):4、編寫待測(cè)試類SaleMachine.java文件和測(cè)試JunitTestCase文件SaleMachineTest.java:5、先點(diǎn)擊運(yùn)行看看,覆蓋了33.1%:6、分析:紅色代表未執(zhí)行、黃色代表?xiàng)l件沒有全部執(zhí)行、綠色代表執(zhí)行過了:7、繼續(xù)修改測(cè)試代碼,直到覆蓋率達(dá)到100%:共編寫了12個(gè)測(cè)試用例,使待測(cè)試代碼100%被覆蓋,運(yùn)行如圖:四、實(shí)驗(yàn)結(jié)果與數(shù)據(jù)處理a、最終待測(cè)試代碼如下:publicclassSaleMachine{ privateintcountOfBeer,countOfOrangeJuice,countOfFiveCents,countOfOneDollar;privateString[]typeOfGoods={"Beer","OrangeJuice"};privateStringresultOfDeal; publicSaleMachine<> { initial<>; } publicvoidinitial<> {countOfBeer=6;countOfOrangeJuice=6;countOfFiveCents=6;countOfOneDollar=6; } publicSaleMachine<intfiveCents,intoneDollar,intnumOfBeer,intnumOfOrange> {//便于測(cè)試的初始化函數(shù)countOfFiveCents=fiveCents;countOfOneDollar=oneDollar;countOfBeer=numOfBeer;countOfOrangeJuice=numOfOrange; } publicStringcurrentState<> { Stringstate="CurrentState\n"+"Beer:"+countOfBeer+"\n"+"OrangeJuice:"+countOfOrangeJuice+"\n"+"5Cents:"+countOfFiveCents+"\n"+"1Dollar:"+countOfOneDollar;returnstate; }publicStringoperation<Stringtype,Stringmoney> {//type是用戶選擇的產(chǎn)品,money是用戶投幣種類if<money.equalsIgnoreCase<"5C">>//如果用戶投入5角錢 {if<type.equals<typeOfGoods[0]>>//如果用戶選擇啤酒 {if<countOfBeer>0>//如果還有啤酒 {countOfBeer--;countOfFiveCents++;resultOfDeal="InputInformation\n"+"Type:Beer;Money:5Cents;Change:0\n\n"+currentState<>;returnresultOfDeal; }else {resultOfDeal="FailureInformation\n"+"BeerShortage";returnresultOfDeal; } }elseif<type.equals<typeOfGoods[1]>>//用戶選擇橙汁 {if<countOfOrangeJuice>0> {countOfOrangeJuice--;countOfFiveCents++;resultOfDeal="InputInformation\n"+"Type:OrangeJuice;Money:5Cents;Change:0\n\n"+currentState<>;returnresultOfDeal; }else {resultOfDeal="FailureInformation\n"+"OrangeJuiceShortage";returnresultOfDeal; } }else {resultOfDeal="FailureInformation\n"+"TypeError";returnresultOfDeal; } }elseif<money.equalsIgnoreCase<"1D">>//如果用戶投入一元錢 {//if<countOfFiveCents>0>//如果用戶投入一元錢//{if<countOfFiveCents>0>//如果售貨機(jī)有零錢 {if<type.equals<typeOfGoods[0]>&&countOfBeer>0>//如果用戶選擇啤酒而且還有啤酒 {countOfBeer--;countOfFiveCents--;countOfOneDollar++;resultOfDeal="InputInformation\n"+"Type:Beer;Money:1Dollar;Change:5Cents\n\n"+currentState<>;returnresultOfDeal; }elseif<type.equals<typeOfGoods[1]>&&countOfOrangeJuice>0>//如果用戶選擇橙汁而且還有橙汁 {countOfOrangeJuice--;countOfFiveCents--;countOfOneDollar++;resultOfDeal="InputInformation:\n"+"Type:OrangeJuice;Money:1Dollar;Change:5Cents\n\n"+currentState<>;returnresultOfDeal; }else {if<type.equals<typeOfGoods[0]>&&countOfBeer<=0> {resultOfDeal="FailureInformation\n"+"BeerShortage";returnresultOfDeal; }elseif<type.equals<typeOfGoods[1]>&&countOfOrangeJuice<=0> {resultOfDeal="FailureInformation\n"+"OrangeJuiceShortage";returnresultOfDeal; }else {resultOfDeal="FailureInformation\n"+"TypeError";returnresultOfDeal; } } }else {resultOfDeal="FailureInformation\n"+"ChangeShortage";returnresultOfDeal; } }/*else { resultOfDeal="FailureInformation\n"+"MoneyError"; returnresultOfDeal; }*/resultOfDeal="FailureInformation\n"+"MoneyError";returnresultOfDeal; }}b、最終測(cè)試代碼如下:importstaticorg.junit.Assert.*;importorg.junit.After;importorg.junit.Before;importorg.junit.Test;publicclassSaleMachineTest{ SaleMachinesaleMachine=newSaleMachine<>;BeforepublicvoidsetUp<>throwsException{ }AfterpublicvoidtearDown<>throwsException{ }TestpublicvoidtestOperation1<>{ StringexpectedResult="InputInformation\n"+"Type:OrangeJuice;Money:5Cents;Change:0\n\n"+"CurrentState\n"+"Beer:6\n"+"OrangeJuice:5\n"+"5Cents:7\n"+"1Dollar:6";assertEquals<expectedResult,saleMachine.operation<"OrangeJuice","5C">>; }TestpublicvoidtestOperation2<>{ StringexpectedResult="InputInformation\n"+"Type:Beer;Money:5Cents;Change:0\n\n"+"CurrentState\n"+"Beer:5\n"+"OrangeJuice:6\n"+"5Cents:7\n"+"1Dollar:6";assertEquals<expectedResult,saleMachine.operation<"Beer","5C">>; }TestpublicvoidtestOperation3<>{ SaleMachinesaleMachine=newSaleMachine<6,6,0,6>; StringexpectedResult="FailureInformation\n"+"BeerShortage";assertEquals<expectedResult,saleMachine.operation<"Beer","5c">>; }TestpublicvoidtestOperation4<>{ SaleMachinesaleMachine=newSaleMachine<6,6,6,0>; StringexpectedResult="FailureInformation\n"+"OrangeJuiceShortage";assertEquals<expectedResult,saleMachine.operation<"OrangeJuice","5c">>; }TestpublicvoidtestOperation5<>{ SaleMachinesaleMachine=newSaleMachine<6,6,6,6>; StringexpectedResult="FailureInformation\n"+"TypeError";assertEquals<expectedResult,saleMachine.operation<"apple","5c">>; }TestpublicvoidtestOperation6<>{ StringexpectedResult="InputInformation\n"+"Type:Beer;Money:1Dollar;Change:5Cents\n\n"+"CurrentState\n"+"Beer:5\n"+"OrangeJuice:6\n"+"5Cents:5\n"+"1Dollar:7";assertEquals<expectedResult,saleMachine.operation<"Beer","1D">>; }TestpublicvoidtestOperation7<>{ StringexpectedResult="InputInformation:\n"+"Type:OrangeJuice;Money:1Dollar;Change:5Cents\n\n"+"CurrentState\n"+"Beer:6\n"+"OrangeJuice:5\n"+"5Cents:5\n"+"1Dollar:7";assertEquals<expectedResult,saleMachine.operation<"OrangeJuice","1D">>; }TestpublicvoidtestOperation8<>{ SaleMachinesaleMachine=newSaleMachine<6,6,0,6>; StringexpectedResult="FailureInformation\n"+"BeerShortage";assertEquals<expectedResult,saleMachine.operation<"Beer","1D">>; }TestpublicvoidtestOperation9<>{ SaleMachinesaleMachine=newSaleMachine<6,6,6,6>; StringexpectedResult="FailureInformation\n"+"TypeError";assertEquals<expectedResult,saleMachine.operation<"apple","1D">>;} TestpublicvoidtestOperation10<>{ SaleMachinesaleMachine=newSaleMachine<6,6,6,0>; StringexpectedResult="FailureInf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論