版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
測試用例設(shè)計(jì)學(xué)習(xí)目標(biāo):了解測試用例(testcase)了解白盒測試用例方法對應(yīng)書中第3章p67白盒測試用例設(shè)計(jì)分析:測試如下程序該如何選擇測試數(shù)據(jù)/*Description:…………………首先,判斷A大于1而且B等于0,那么X縮小A倍;然后,判斷A等于2或者X大于1,那么X遞增;…*/floatfn_compare(floatA,float
B,floatX){if((A>1)&&(0==B)){ X=X/A;}if((2==A)||(X>1)){ X=X+1;}}白盒測試作為結(jié)構(gòu)測試方法按照程序內(nèi)部的結(jié)構(gòu)測試程序,對軟件的過程性細(xì)節(jié)做細(xì)致的檢查測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測試用例問題:常見的程序邏輯結(jié)構(gòu)有哪些?順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)常見的程序邏輯結(jié)構(gòu)白盒測試用例設(shè)計(jì)方法白盒法又稱為邏輯覆蓋法,其測試用例選擇,是按照不同覆蓋標(biāo)準(zhǔn)確定的。
語句覆蓋判定覆蓋條件覆蓋條件組合覆蓋弱強(qiáng)判定條件覆蓋路徑覆蓋白盒法舉例/*Description:……首先,判斷A大于1而且B等于0,那么X縮小A倍;然后,判斷A等于2或者X大于1,那么X遞增;*/
floatfn_compare(floatA,float
B,floatX){if((A>1)&&(0==B)){ X=X/A;}if((2==A)||(X>1)){ X=X+1;}}A>1&&0==BX=X/A2==A||X>1X=X+1YNYN邏輯結(jié)構(gòu)1、語句覆蓋使得程序中每個語句至少都能被執(zhí)行一次。A>1&&0==BX=X/A2==A||X>1X=X+1abcde滿足語句覆蓋的情況:執(zhí)行路徑:ace選擇用例:[(2,0,4),(2,0,3)]編碼出錯:X>1寫成X>0呢?用例格式:[輸入(A,B,X),輸出(A,B,X)]YNYN路徑標(biāo)識abcde選擇用例(2,0,4)A>1&&0==BX=X/A2==A||X>0X=X+1abcdeYNYN編碼出錯:X>1寫成X>0呢?/*Description:……首先,判斷A大于1而且B等于0,那么X縮小A倍;然后,判斷A等于2或者X大于1,那么X遞增;*/floatfn_compare(floatA,float
B,floatX){if((A>1)&&(0==B)){ X=X/A;}if((2==A)||(X>0)){ X=X+1;}}滿足語句覆蓋的情況:執(zhí)行路徑:aceA>1&&0==BX=X/A2==A||X>0X=X+1abcdeYNYN編碼出錯:X>1寫成X>0呢?選擇用例:[(2,0,4),(2,0,3)]編碼出錯:但是該用例成功。沒有找到錯誤。用例無效!!缺點(diǎn):沒有發(fā)現(xiàn)邏輯運(yùn)算中出現(xiàn)的錯誤、無法覆蓋所有的分支選擇用例(2,0,4)滿足語句覆蓋的情況:執(zhí)行路徑:aceA>1&&0==BX=X/A2==A||X>1X=X+1abcdeYNYN自己試著寫一個用例看看!用例格式:[輸入(A,B,X),輸出(A,B,X)]【缺點(diǎn)】
:由于這種測試方法僅僅針對程序邏輯中顯式存在的語句,但對于隱藏的條件是無法測試的。如在多分支的邏輯運(yùn)算中無法全面的考慮。語句覆蓋是最弱的邏輯覆蓋?!緝?yōu)點(diǎn)】
:可以很直觀地從源代碼得到測試用例,無須細(xì)分每條判定表達(dá)式。2、判定覆蓋使得程序中每個判定至少為TRUE或FALSE各一次。A>1&&0==BX=X/A2==A||X>1X=X+1abcde覆蓋情況:應(yīng)執(zhí)行路徑ace∧
abd 或:acd∧abe選擇用例(其一):[(2,1,1),(2,1,2)]abe[(3,0,3),(3,1,1)]acd如果X>1錯寫成X<1呢?YYNNA>1&&0==BX=X/A2==A||X<1X=X+1abcde覆蓋情況:應(yīng)執(zhí)行路徑ace∧
abd 或:acd∧abe選擇用例(其一):[(2,1,1),(2,1,2)]abe[(3,0,3),(3,1,1)]acd如果X>1錯寫成X<1呢?用例成功缺點(diǎn):無法確定判斷的內(nèi)部條件YYNN【缺點(diǎn)】:忽略每個條件的取值情況,必然會遺漏部分測試路徑。大部分的判定語句是由多個邏輯條件組合而成,僅僅判斷其整個最終結(jié)果,判定覆蓋仍是弱的邏輯覆蓋?!緝?yōu)點(diǎn)】:判定覆蓋具有比語句覆蓋更強(qiáng)的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細(xì)分每個判定就可以得到測試用例。A>1&&0==BX=X/A2==A||X>1X=X+1abcde應(yīng)滿足以下覆蓋情況:判定一:A>1,A≤1,0==B,B≠0判定二:2==A,A≠2,X>1,X≤1選擇用例
[(2,0,4),(2,0,3)
abe][(1,1,1),(1,1,1)
abd]NNYY2A≤1A≠200==B4X>11A>12==A1B≠01X≤13、條件覆蓋使得判定中的每個條件獲得各種可能的結(jié)果。A>1&&0==BX=X/A2==A||X>1X=X+1abcde滿足以下覆蓋情況:判定一:A>1,A≤1,0==B,B≠0判定二:2==A,A≠2,X>1,X≤1選擇用例:[(1,0,3),(1,0,3)]
abd[(2,1,1),(2,1,2)]abdNNYY1A≤1A≠200==B3X>12A>12==A1B≠01X≤1滿足條件覆蓋,但不滿足判斷覆蓋滿足判斷覆蓋,不一定包含條件覆蓋【缺點(diǎn)】:條件覆蓋不一定包含判定覆蓋。例如,我們剛才設(shè)計(jì)的用例就沒有覆蓋判斷。條件覆蓋只能保證每個條件至少有一次為真,而不考慮所有的判定結(jié)果。【優(yōu)點(diǎn)】:增加了對條件判定情況的測試,增加了測試路徑。4、判定/條件覆蓋同時滿足判斷覆蓋和條件覆蓋A>1&&0==BX=X/A2==A||X>1X=X+1abcde應(yīng)滿足以下覆蓋情況:條件:A>1,A≤1,0==B,B≠0 2==A,A≠2,X>1,X≤1應(yīng)執(zhí)行路徑ace∧
abd 或:acd∧abe選擇用例:[(2,0,4),(2,0,3)](ace)[(1,1,1),(1,1,1)](abd)YYNN條件的各種可能組合是否都考慮完整?比如A>1,B≠02A≤1A≠200==B4X>11A>12==A1B≠01X≤1【優(yōu)點(diǎn)】:能同時滿足判定、條件兩種覆蓋標(biāo)準(zhǔn)。【缺點(diǎn)】
:判定/條件覆蓋準(zhǔn)則的缺點(diǎn)是未考慮條件的組合情況。5、條件組合覆蓋使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。A>1X=X/A2==AX=X+1abcde0==BX>1YNYNYNYN滿足以下覆蓋情況:①A>1,B=0②A>1,B≠0③A≤1,B=0
④A≤1,B≠0⑤2==A,X>1
⑥2==A,X≤1
⑦A≠2,X>1
⑧A≠2,X≤1選擇用例:[(2,0,4),(2,0,3)]①⑤ace
[(2,1,1),(2,1,2)]②⑥
abd
[(1,0,3),(1,0,4)]③⑦
abd[(1,1,1),(1,1,1)]④⑧
abd滿足了條件組合覆蓋,但沒有路徑完全覆蓋【優(yōu)點(diǎn)】
:條件組合覆蓋準(zhǔn)則滿足判定覆蓋、條件覆蓋和判定/條件覆蓋準(zhǔn)則?!救秉c(diǎn)】
:線性地增加了測試用例的數(shù)量。6、路徑覆蓋覆蓋程序中所有可能的路徑A>1&&0==BX=X/A2==A||X>1X=X+1abcdeYYNNABX覆蓋路徑203101211301aceabdabeacd【優(yōu)點(diǎn)】
:這種測試方法可以對程序進(jìn)行徹底的測試,比前面五種的覆蓋面都廣?!救秉c(diǎn)】
:需要設(shè)計(jì)大量、復(fù)雜的測試用例,使得工作量呈指數(shù)級增長,不見得把所有的條件組合都覆蓋。1、語句覆蓋:選擇足夠的測試用例,使得程序中每個語句至少都能被執(zhí)行一次。2、判定覆蓋:執(zhí)行足夠的測試用例,使得程序中每個判定至少都獲得一次“真”值和“假”值。3、條件覆蓋:執(zhí)行足夠的測試用例,使得判定中的每個條件獲得各種可能的結(jié)果。小結(jié):白盒法常用的覆蓋標(biāo)準(zhǔn)4、判定/條件覆蓋:執(zhí)行足夠的測試用例,使得判定中每個條件取到各種可能的值,并使每個判定取到各種可能的結(jié)果。5、條件組合覆蓋:執(zhí)行足夠的例子,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。
6、路徑覆蓋:執(zhí)行足夠的例子,覆蓋程序中所有可能的路徑。白盒法常用的覆蓋標(biāo)準(zhǔn)白盒法步驟:1)選擇邏輯覆蓋標(biāo)準(zhǔn)。2)按照覆蓋標(biāo)準(zhǔn)列出所有情況。3)選擇確定測試用例。4)驗(yàn)證分析運(yùn)行結(jié)果與預(yù)期結(jié)果。邏輯結(jié)構(gòu)問題:實(shí)際應(yīng)用中采用何種邏輯覆蓋方式呢?根據(jù)實(shí)際項(xiàng)目中代碼邏輯的復(fù)雜性建議設(shè)計(jì)人員編碼時,考慮模塊或者方法功能的單一性、高內(nèi)聚性提高測試用例設(shè)計(jì)的容易度、覆蓋程度輔助工具(覆蓋率統(tǒng)計(jì))TrueCoverage(C/C++/JAVA/VB)SmartCheck(VB)PureCoverage(C/C++/JAVA)課堂練習(xí):請?jiān)O(shè)計(jì)測試用例分別實(shí)現(xiàn)語句覆蓋、條件覆蓋、分支覆蓋voidTestFunction(int
iSrcA,int
iSrcB,int
iSrcC){if((iSrcA<150)||(iSrcB<200)){ if(iSrcC>100)printf(“iSrcC”);}else{
printf(“iSrcA&iSrcB”);}}用例格式:[輸入(A,B,X),輸出(A,B,X)]實(shí)驗(yàn):
單元
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)民工勞動合同信息化管理規(guī)范合同范本
- 2025年度創(chuàng)業(yè)企業(yè)出納人員股權(quán)激勵聘用合同4篇
- 2025廠長任期市場拓展與戰(zhàn)略規(guī)劃聘用合同4篇
- 二零二五版機(jī)票代售及退改簽服務(wù)合同3篇
- 二零二五年度倉儲物流日常管理與咨詢服務(wù)合同3篇
- 2025年度林木采伐安全與碳排放管理合同4篇
- 2025年度廠房土地轉(zhuǎn)讓及環(huán)保達(dá)標(biāo)改造合同4篇
- 礦井瓦斯防治課件
- 二零二五年度大米產(chǎn)業(yè)鏈整合服務(wù)合同范本4篇
- 《市場定量預(yù)測方法》課件
- 2025年度版權(quán)授權(quán)協(xié)議:游戲角色形象設(shè)計(jì)與授權(quán)使用3篇
- 2024年08月云南省農(nóng)村信用社秋季校園招考750名工作人員筆試歷年參考題庫附帶答案詳解
- 防詐騙安全知識培訓(xùn)課件
- 心肺復(fù)蘇課件2024
- 2024年股東股權(quán)繼承轉(zhuǎn)讓協(xié)議3篇
- 2024-2025學(xué)年江蘇省南京市高二上冊期末數(shù)學(xué)檢測試卷(含解析)
- 四川省名校2025屆高三第二次模擬考試英語試卷含解析
- 《城鎮(zhèn)燃?xì)忸I(lǐng)域重大隱患判定指導(dǎo)手冊》專題培訓(xùn)
- 湖南財政經(jīng)濟(jì)學(xué)院專升本管理學(xué)真題
- 考研有機(jī)化學(xué)重點(diǎn)
- 全國身份證前六位、區(qū)號、郵編-編碼大全
評論
0/150
提交評論