




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
/例題2:應(yīng)用白盒測(cè)試法的具體步驟:按照某種覆蓋標(biāo)準(zhǔn),選擇一組需要覆蓋的路徑;確定上述路徑所需的輸入數(shù)據(jù);計(jì)算與輸入數(shù)據(jù)相應(yīng)的輸出。下面以工資管理程序?yàn)槔f(shuō)明白盒測(cè)試方法的運(yùn)用過(guò)程。(白盒測(cè)試方法有6種)工資管理程序BONUS的輸入數(shù)據(jù)是職員表(Employee(cuò)Table)和部門銷售表(DepartmentTable)(圖1).職員表由姓名(Name)、職務(wù)(Job)、部門(Dept。)和工資(Salary)四個(gè)屬性組成。部門銷售表由部門(Dept)和銷售量(Sales)組成.程序的功能是:“為銷售量最大的部門中每一個(gè)職工增加200元工資,但是,如果某個(gè)職員的原有工資已達(dá)15000元,或者他的職務(wù)是經(jīng)理,則只給他增加100元.如果程序能正常地完成,則輸出出錯(cuò)碼0;如果兩表格中沒(méi)有任何條目,則輸出出錯(cuò)碼1;如果沒(méi)有職員在部門銷售表中銷售量最大的部門中工作,則輸出出錯(cuò)碼2;”工資管理程序BONUS的兩個(gè)表如下:NameJobDeptSalaryDeptSales工資管理程序BONUS的源程序:參數(shù)表中EMPTAB、DEPTTAB分別是職員表和部門表,ESIZE、DSIZE分別是兩個(gè)表的長(zhǎng)度,ERRCODE是出錯(cuò)碼。這里略去了說(shuō)明部分和注釋.ProcedureBonus(EMPTAB,DEPTTAB:TABLE;ESIZE,DSIZE,ERRCODE:INTEGER);/*最大銷量和出錯(cuò)碼初始化*/1.BeginMAXSALES:=0;ERRCODE:=0;/*判斷表是否為空,空輸出1,并退出程序,否則繼續(xù)執(zhí)行*/2.IF(ESIZE〈=0)or(DSIZE<=0)3. THENERRCODE:=1;4.ELSE/*獲得最大銷量*/5。 Fori=1toDSIZE6. IfSales(i)>MAXSALES7. ?thenMAXSALES=Sales(i);/*找到銷量最大的每一個(gè)部門,并做進(jìn)一步處理*/8.?Forj=1toDSIZE9. ?IfSales(j)=MAXSALES10. ?Then11.???BeginFound:=False;/*找銷量最大的職員所屬部門對(duì)應(yīng)的職員表中的職員并處理*/12。???Fork:=1toESIZE13. ?If(EMPTAB.DEPT(k)=DEPTTAB.DEPT(J))14.? Then15.? ? BeginFound:=True;/*如果該職員工資超過(guò)15000或職務(wù)是經(jīng)理則加100工資,否則加200工資*/16。? ? If(SALARY(k)>=15000.0)or(JOB(k)=”M”)17.? ?? Then18.??????SALARY(k):=SALARY(k)+100。0;19. ? Else20。? ? SALARY(k):=SALARY(k)+200.0;21.? ? ?End;/*如果找不到對(duì)應(yīng)職員,則輸出出錯(cuò)碼2,否則出錯(cuò)碼默認(rèn)0*/22.???If(!Found)thenERRORCODE:=2;23.? End24。 End25.?End用白盒測(cè)試方法設(shè)計(jì)測(cè)試用例。1.首先列出程序中的判定,考慮所有的條件句和循環(huán)句。本例中只要輸入表格不空,循環(huán)語(yǔ)句總會(huì)經(jīng)歷進(jìn)入循環(huán)和跳過(guò)循環(huán)這兩種情況(因?yàn)檠h(huán)終值都大于等于循環(huán)初值),所以就不必專門考慮了。需要考慮的只是下面6個(gè)條件語(yǔ)句中的判定。If(ESIZE<=0)or(DSIZE<=0)IfSales(i)〉MAXSALESIfSales(j)=MAXSALESIf(EMPTAB。DEPT(k)=DEPTTAB.DEPT(J))If(SALARY(k)>=15000.0)or(JOB(k)=”經(jīng)理”)22.If(!Found)thenERRORCODE:=2;2.設(shè)計(jì)測(cè)試用例。(1)采用“判定覆蓋"標(biāo)準(zhǔn),使得上述6個(gè)判定都取到兩種結(jié)果,這就需要使下表列出的12種情況都執(zhí)行到.判定結(jié)果為“真”結(jié)果為“假”2ESIZE或DSIZE等于0ESIZE和DSIZE都大于06總會(huì)出現(xiàn)部門表中,將銷售量較小的某個(gè)部門放在后面9總會(huì)出現(xiàn)部門表中,各部門的銷售量不全相等13職員表中,有職員在銷售量最大的部門工作職員表中,有職員不在銷售量最大的部門工作16銷售量最大的部門中,有個(gè)職員的工資大于等于15000,或者是“經(jīng)理"銷售量最大的部門中,有個(gè)職員的工資小于15000,而且不是“經(jīng)理"22銷售量最大的部門中沒(méi)有職員銷售量最大的部門中有職員下面的測(cè)試用例可以滿足這一要求,按照原則,每個(gè)測(cè)試用例要說(shuō)明輸入數(shù)據(jù)和期望的輸出結(jié)果(圖中“職務(wù)”一欄,“E”表示是一般職員,“M"表示經(jīng)理.)。例子輸入數(shù)據(jù)期望的輸出結(jié)果1ESIZE=0ERRCODE=1EMPTAB,DEPTTAB,ESIZE,DSIZE不變2ESIZE=DSIZE=3EMPTABDEPTABNameJobDeptSalaryDeptSalesJonesED4216000.0D4210000.0SmithED3210000.0D328000.0LorinED4214000.0D9510000.0ERRORCODE=2DEPTTAB,ESIZE,DSIZE不變EMPTAB變?yōu)椋蝍meJobDeptSalaryJonesED4216100.0SmithED3210000。0LorinED4214200.0雖然這兩個(gè)例子滿足“判定覆蓋”標(biāo)準(zhǔn),但是它們不能發(fā)現(xiàn)程序中許多其他可能的錯(cuò)誤,例如沒(méi)有檢查ERRORCODE為0、職員是經(jīng)理、部門表為“空”等情況。(2).采用“條件覆蓋”標(biāo)準(zhǔn),即使判定中的每一個(gè)條件的兩種可能取值都執(zhí)行到,這就要使下表的16中情況出現(xiàn).判定條件真假2ESIZE〈=0ESIZE<=0ESIZE>02DSIZE<=0DSIZE〈=0DSIZE>06Sales(i)>MAXSALES總會(huì)出現(xiàn)部門表中,將銷售量較小的某個(gè)部門放在后面9Sales(j)=MAXSALES總會(huì)出現(xiàn)部門表中,各部門的銷售量不全相等13EMPTAB.DEPT(k)=DEPTTAB.DEPT(J)職員表中,有職員在銷售量最大的部門工作職員表中,有職員不在銷售量最大的部門工作16SALARY(k)〉=15000。0銷售量最大的部門中,有個(gè)職員的工資大于等于15000銷售量最大的部門中,有個(gè)職員的工資小于1500016JOB(k)=”經(jīng)理”銷售量最大的部門中,有個(gè)職員是“經(jīng)理”銷售量最大的部門中,有個(gè)職員不是“經(jīng)理”22!Found銷售量最大的部門中沒(méi)有職員銷售量最大的部門中有職員下面的測(cè)試用例可以滿足這一要求。例子輸入數(shù)據(jù)期望的輸出結(jié)果1ESIZE=DSIZE=0ERRCODE=1EMPTAB,DEPTTAB,ESIZE,DSIZE不變2ESIZE=DSIZE=3EMPTABDEPTABNameJobDeptSalaryDeptSalesJonesED4216000.0D4210000.0SmithED3210000.0D328000.0LorinMD4214000.0D9510000.0ERRORCODE=2DEPTTAB,ESIZE,DSIZE不變EMPTAB變?yōu)椋蝍meJobDeptSalaryJonesED4216100.0SmithED3210000。0LorinMD4214100.0雖然這兩個(gè)例子滿足“條件覆蓋”標(biāo)準(zhǔn),但是它們可能比滿足“判定覆蓋”標(biāo)準(zhǔn)的測(cè)試用例還差,因?yàn)樗鼈儾荒軋?zhí)行每一個(gè)語(yǔ)句(如語(yǔ)句19),而且左右也不比“判定覆蓋”的多許多,也沒(méi)有檢查ERRORCODE為0,而且如果語(yǔ)句2誤寫成(ESIZE<=0)and(DSIZE<=0)這個(gè)錯(cuò)誤也不能發(fā)現(xiàn)。(3)采用“判定/條件覆蓋”標(biāo)準(zhǔn),就可克服上面例子的弱點(diǎn),我們需要提供足夠的測(cè)試使得所有判定和條件都取到兩個(gè)不同的值,這里只需要使上面的職員Jones為經(jīng)理,而Lorin改成不是經(jīng)理,則判定16就可以取到兩種結(jié)果,語(yǔ)句19因而得到執(zhí)行. 問(wèn)題:如果所用的編譯系統(tǒng)將含有“or”的表達(dá)式處理成:遇到第一項(xiàng)為“真”就不再檢查后面的項(xiàng)目,則這樣的兩個(gè)測(cè)試用例并不能檢查到JOB(k)=“M”這一部分。(4)考慮“條件組合覆蓋”標(biāo)準(zhǔn),它需要足夠的例子,使得每個(gè)判定中條件的各種組合情況都出現(xiàn)一次。本例中判定6、9、13和22各有兩種組合,判定2和16各有4種組合??梢韵冗x出一個(gè)測(cè)試用例使其包含盡可能多的組合情況。再選另一個(gè)測(cè)試用例使其包含盡可能多的剩余組合情況…,直到得到一組測(cè)試用例能包含所有的組合情況。下面給出滿足這一標(biāo)準(zhǔn)的測(cè)試用例,而且可以看到它比其他測(cè)試方法都全面,這也說(shuō)明了我們一開(kāi)始就應(yīng)該采用這個(gè)覆蓋標(biāo)準(zhǔn).極其重要的一點(diǎn)是:即使是滿足“條件組合覆蓋”標(biāo)準(zhǔn)的例子仍不能發(fā)現(xiàn)所有錯(cuò)誤,例如沒(méi)有檢查ERRORCODE=0的情況,所以語(yǔ)句1被遺漏了就查不出來(lái),又如語(yǔ)句16中15000.0誤寫成15000.01也是發(fā)現(xiàn)不了的,或者SALARY(k)>=15000.0誤寫成SALARY(k)>15000.0也是發(fā)現(xiàn)不了的;又如果BONUS程序沒(méi)有對(duì)部門表或職員表的最后一行進(jìn)行處理,這個(gè)錯(cuò)誤也不一定能夠發(fā)現(xiàn)。例子輸入數(shù)據(jù)期望的輸出結(jié)果1ESIZE=0DSIZE=0ERRCODE=1EMPTAB,DEPTTAB,ESIZE,DSIZE不變2ESIZE=0DSIZE>0同上3ESIZE〉0DSIZE=0同上4ESIZE=5DSIZE=4EMPTABDEPTABNameJobDeptSalaryDeptSalesJonesMD4216000.0D4210000。0WarnsMD9512000。0D328000.0LorinED4210000.0D9510000.0ToyED9518000.0D4410000。0SmithED3214000.0ERRORCODE=2DEPTTAB,ESIZE,DSIZE不變EMPTAB變?yōu)椋蝍meJobDeptSalaryJonesMD4216100.0WarnsMD9512100.0LorinED4210200。0ToyED9518100.0SmithED3214000.0通過(guò)對(duì)工資管理程序的討論,可以得到兩點(diǎn)結(jié)論:“條件組合覆蓋”標(biāo)準(zhǔn)比其他標(biāo)準(zhǔn)優(yōu)越。即使達(dá)到任何一種覆蓋標(biāo)準(zhǔn),其測(cè)試效果仍然是不徹底的,我們還需要用其他的測(cè)試方法(如黑盒法)作補(bǔ)充。劃分等價(jià)類加數(shù)數(shù)值加數(shù)數(shù)值非數(shù)值整數(shù)實(shí)數(shù)正數(shù)(1)0(2)負(fù)數(shù)(3)正實(shí)數(shù)(4)負(fù)實(shí)數(shù)(5)字母(6)特殊字符(7)空格(8)空白(9)小數(shù)點(diǎn)(10)其中,有效的等價(jià)類包括:1,2,3,4,5,10。無(wú)效的等價(jià)類包括:6,7,8,9。設(shè)計(jì)測(cè)試用例,一個(gè)測(cè)試用例盡可能包括多個(gè)有效的測(cè)試用例。一個(gè)測(cè)試用例只能包括唯一一個(gè)無(wú)效的測(cè)試用例。然后再考慮包括鍵盤和鼠標(biāo)兩種輸入。所有用例用鍵盤輸入一遍,然后再用鼠標(biāo)輸入一遍。根據(jù)這些設(shè)計(jì)測(cè)試用例如下:用例編號(hào)覆蓋等價(jià)類操作步驟輸入數(shù)據(jù)預(yù)期的輸出11、2通過(guò)鼠標(biāo)輸入數(shù)據(jù),點(diǎn)擊“=”“1”、“+”、“0”123、4通過(guò)鼠標(biāo)輸入數(shù)據(jù),點(diǎn)擊“=”“-1"、“+”、“0.1”—0.935、10通過(guò)鼠標(biāo)輸入數(shù)據(jù),點(diǎn)擊“=”“—0.1"、“+”、“.”-0.1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)一年級(jí)家長(zhǎng)會(huì)發(fā)言稿
- 發(fā)言稿一般多少字
- 銀行任職發(fā)言稿
- 2025年丙型肝炎抗原檢測(cè)試劑盒合作協(xié)議書
- 大朗工廠綠化養(yǎng)護(hù)施工方案
- 商河內(nèi)墻隔墻板施工方案
- 碩士課題答辯
- 新農(nóng)產(chǎn)品加工指導(dǎo)
- 畢業(yè)班老師發(fā)言稿
- 獎(jiǎng)學(xué)金發(fā)言稿
- 2022年安徽醫(yī)科大學(xué)第一附屬醫(yī)院臨床醫(yī)技、護(hù)理、管理崗位招聘187人筆試備考題庫(kù)及答案解析
- 弟子規(guī)42+用人物須明求+教案
- 微電網(wǎng)-儲(chǔ)能電池catl pet80ah電芯規(guī)格書
- GB/T 4209-2022工業(yè)硅酸鈉
- 2023年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫(kù)含答案解析
- GB/T 39242-2020無(wú)損檢測(cè)超聲檢測(cè)靈敏度和范圍設(shè)定
- GB/T 32271-2015電梯能量回饋裝置
- GB/T 18775-2009電梯、自動(dòng)扶梯和自動(dòng)人行道維修規(guī)范
- GB/T 1.2-2020標(biāo)準(zhǔn)化工作導(dǎo)則第2部分:以ISO/IEC標(biāo)準(zhǔn)化文件為基礎(chǔ)的標(biāo)準(zhǔn)化文件起草規(guī)則
- 《社會(huì)歷史的決定性基礎(chǔ)》課件2 【知識(shí)建構(gòu)+備課精研】統(tǒng)編版高中語(yǔ)文選擇性必修中冊(cè)
- 消毒供應(yīng)中心火災(zāi)應(yīng)急預(yù)案演練記錄
評(píng)論
0/150
提交評(píng)論