![實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問(wèn)題_第1頁(yè)](http://file4.renrendoc.com/view/971ad5a98adedfb195ae8e1198778e93/971ad5a98adedfb195ae8e1198778e931.gif)
![實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問(wèn)題_第2頁(yè)](http://file4.renrendoc.com/view/971ad5a98adedfb195ae8e1198778e93/971ad5a98adedfb195ae8e1198778e932.gif)
![實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問(wèn)題_第3頁(yè)](http://file4.renrendoc.com/view/971ad5a98adedfb195ae8e1198778e93/971ad5a98adedfb195ae8e1198778e933.gif)
![實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問(wèn)題_第4頁(yè)](http://file4.renrendoc.com/view/971ad5a98adedfb195ae8e1198778e93/971ad5a98adedfb195ae8e1198778e934.gif)
![實(shí)驗(yàn)04.使用基本路徑測(cè)試法求解“自動(dòng)售貨機(jī)”問(wèn)題_第5頁(yè)](http://file4.renrendoc.com/view/971ad5a98adedfb195ae8e1198778e93/971ad5a98adedfb195ae8e1198778e935.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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ī)"問(wèn)題學(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í)行過(guò)了: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. 本站所有資源如無(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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)計(jì)驅(qū)動(dòng)醫(yī)療技術(shù)的未來(lái)發(fā)展趨勢(shì)
- 校園內(nèi)公共區(qū)域的消防安全管理策略研究
- 2025年細(xì)胞轉(zhuǎn)瓶項(xiàng)目可行性研究報(bào)告
- 2025年智能報(bào)警控制儀項(xiàng)目可行性研究報(bào)告
- 2025年可調(diào)單夾項(xiàng)目可行性研究報(bào)告
- 2025至2030年中國(guó)無(wú)石棉無(wú)金屬剎車片數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年擺頁(yè)式遙控型暖風(fēng)機(jī)項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年不銹鋼氣動(dòng)球閥項(xiàng)目投資價(jià)值分析報(bào)告
- 2025年雪橇項(xiàng)目可行性研究報(bào)告
- 2025年浮球液位儀控制器項(xiàng)目可行性研究報(bào)告
- 城市基礎(chǔ)設(shè)施修繕工程的重點(diǎn)與應(yīng)對(duì)措施
- GB 12710-2024焦化安全規(guī)范
- 【牛客網(wǎng)】2024秋季校園招聘白皮書
- 2024-2025銀行對(duì)公業(yè)務(wù)場(chǎng)景金融創(chuàng)新報(bào)告
- 2025屆鄭州市高三一診考試英語(yǔ)試卷含解析
- 《我國(guó)個(gè)人所得稅制下稅收征管問(wèn)題研究》
- 腫瘤中醫(yī)治療及調(diào)養(yǎng)
- 組長(zhǎng)競(jìng)選課件教學(xué)課件
- 2022年公務(wù)員多省聯(lián)考《申論》真題(遼寧A卷)及答案解析
- 北師大版四年級(jí)下冊(cè)數(shù)學(xué)第一單元測(cè)試卷帶答案
- 術(shù)后肺炎預(yù)防和控制專家共識(shí)解讀課件
評(píng)論
0/150
提交評(píng)論