軟件工程-白盒測(cè)試技術(shù)-課件_第1頁
軟件工程-白盒測(cè)試技術(shù)-課件_第2頁
軟件工程-白盒測(cè)試技術(shù)-課件_第3頁
軟件工程-白盒測(cè)試技術(shù)-課件_第4頁
軟件工程-白盒測(cè)試技術(shù)-課件_第5頁
已閱讀5頁,還剩142頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

7.6白盒測(cè)試技術(shù)7.6白盒測(cè)試技術(shù)白盒測(cè)試的原則對(duì)程序模塊的所有獨(dú)立執(zhí)行路徑至少測(cè)試一次對(duì)所有的邏輯判定取“真”與取“假”的兩種情況都至少測(cè)試一次。在循環(huán)的邊界和可操作范圍內(nèi)執(zhí)行循環(huán)體測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,完成邊界條件的測(cè)試。白盒測(cè)試對(duì)程序模塊的所有獨(dú)立對(duì)所有的邏輯判定取在循環(huán)的邊界和迪杰斯特拉定律:窮盡測(cè)試永遠(yuǎn)不可能執(zhí)行路徑:520個(gè)如果1ms完成一個(gè)測(cè)試近似為1014個(gè)需3170年迪杰斯特拉定律:窮盡測(cè)試永遠(yuǎn)不可能執(zhí)行路徑:520個(gè)如果1m一、邏輯覆蓋語句覆蓋判定覆蓋條件覆蓋判定-條件覆蓋條件組合覆蓋路徑覆蓋一、邏輯覆蓋語句覆蓋1.語句覆蓋設(shè)計(jì)測(cè)試用例,使被測(cè)程序中的每個(gè)可執(zhí)行語句至少被執(zhí)行一次1.語句覆蓋設(shè)計(jì)測(cè)試用例,使被測(cè)程序中的每個(gè)可執(zhí)行語句至inta,b;doublec;if(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1例題inta,b;doublec;c=b+cc=c/aMNM=.T.且N=.T.

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1MNM=.T.且N=.T.c=b+cc=c/ac=c+

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1Case1:a=2,b=0,c=3×此語句未覆蓋c=b+cc=c/ac=c+1TTFFa>0&&b

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1Case2輸入:a=2,b=1,c=3√×Case2輸出:c=3.5c=b+cc=c/ac=c+1TTFFa>0&&b思考:如果M為:a>0||b>0;N為:a>1&&c>1,測(cè)試用例與測(cè)試結(jié)果有設(shè)么變化?Case2:a=2,b=1,c=3Case2輸出:c=3.5語句覆蓋是弱覆蓋標(biāo)準(zhǔn)!MNBugBug

c=b+cc=c/ac=c+1TTFFa>0||b>0a>1&&c>1思考:如果M為:a>0||b>0;Case2:a=2.判定覆蓋準(zhǔn)則設(shè)計(jì)測(cè)試用例,使被測(cè)程序中的每個(gè)判斷的取真分支和取假分支都被測(cè)試用例至少執(zhí)行一次2.判定覆蓋準(zhǔn)則設(shè)計(jì)測(cè)試用例,使被測(cè)程序中的每個(gè)判斷的例題inta,b;doublecif(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;MN

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1例題inta,b;doublecMNc=b+cc=

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MNM=.T.且N=.T.M=.F.且N=.F.設(shè)計(jì)測(cè)試用例及預(yù)期結(jié)果c=b+cc=c/ac=c+1TTFFa>0&&b測(cè)試用例測(cè)試用例條件中的取值有被忽略的情況a=2,b=1,c=3a=-2,b=1,c=-3輸出:3.5-2判定覆蓋仍是弱覆蓋標(biāo)準(zhǔn)!

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c<1Bug條件中的取值有被忽略的情況a=2,b=1,c=3輸出:3.53.條件覆蓋準(zhǔn)則設(shè)計(jì)測(cè)試用例,使得每個(gè)判斷中每個(gè)條件的可能取值至少滿足一次。3.條件覆蓋準(zhǔn)則設(shè)計(jì)測(cè)試用例,使得每個(gè)判斷中每個(gè)條件的可例題inta,b;doublecif(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MNP1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5例題inta,b;doublecc=b+cc=c/測(cè)試用例集對(duì)于判定M:條件a>0:取值為真為T1,取值為假為F1條件b>0:取值為真為T2,取值為假為F2對(duì)于判定N:條件a>1:取值為真為T3,取值為假為F3條件c>1:取值為真為T4,取值為假為F4雖然覆蓋了所有條件,但不能保證多個(gè)判定分支均被覆蓋到測(cè)試用例集對(duì)于判定M:雖然覆蓋了所有條件,但不能保證多個(gè)判定4、

判定—條件覆蓋準(zhǔn)則設(shè)計(jì)足夠測(cè)試用例,使得判定中的所有條件可能取值至少執(zhí)行一次,同時(shí),所有判定的可能結(jié)果至少執(zhí)行一次。判定-條件覆蓋能同時(shí)滿足判定、條件兩種覆蓋標(biāo)準(zhǔn)。4、判定—條件覆蓋準(zhǔn)則設(shè)計(jì)足夠測(cè)試用例,使得判定中的所有條例題inta,b;doublecif(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MN例題inta,b;doublecc=b+cc=c/測(cè)試用例集為了使被測(cè)程序得到充分測(cè)試,不僅每個(gè)條件需要被覆蓋,而且每個(gè)條件的組合也應(yīng)該被覆蓋到。測(cè)試用例集為了使被測(cè)程序得到充分測(cè)試,不僅每個(gè)條件需要被覆蓋判定—條件覆蓋準(zhǔn)則的不足inta,b;doublec1if(a>0&&b>0){2c=c/a;3}4if(a>1||c<1){5c=c+1;6}7c=b+c;Buga=2,b=1,c=3a=-2,b=1,c=-3

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c<112345輸出:3.5-2判定—條件覆蓋準(zhǔn)則的不足inta,b;doublec5.條件組合覆蓋準(zhǔn)則設(shè)計(jì)足夠的測(cè)試用例,使得判定中每個(gè)條件的所有可能組合至少出現(xiàn)一次,并且每個(gè)判定結(jié)果也至少出現(xiàn)一次。與條件覆蓋準(zhǔn)則的區(qū)別不是簡(jiǎn)單的要求每個(gè)條件都出現(xiàn)“真”與“假”兩種結(jié)果,而是要求所有可能組合都至少被覆蓋一次5.條件組合覆蓋準(zhǔn)則設(shè)計(jì)足夠的測(cè)試用例,使得判定中每個(gè)條例題對(duì)于第一個(gè)判定:條件a>0:取值為真為T1,取值為假為F1條件b>0:取值為真為T2,取值為假為F2對(duì)于第二個(gè)判定條件:條件a>0:取值為真為T3,取值為假為F3條件c>1:取值為真為T4,取值為假為F4例題對(duì)于第一個(gè)判定:所有的組合條件所有的組合條件測(cè)試用例集不能保證所有路徑被覆蓋到測(cè)試用例集不能保證所有路徑被覆蓋到6.路徑覆蓋設(shè)計(jì)測(cè)試用例,來覆蓋被測(cè)程序中的所有可能的執(zhí)行路徑6.路徑覆蓋設(shè)計(jì)測(cè)試用例,來覆蓋被測(cè)程序中的所有可能的P1:1-2-4P2:1-2-5P3:1-3-4P4:1-3-5

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>112345MNc=b+cc=c/ac=c+1TTFFa>0&&b路徑覆蓋測(cè)試用例集不滿足條件組合覆蓋準(zhǔn)則路徑覆蓋測(cè)試用例集不滿足條件組合覆蓋準(zhǔn)則完全覆蓋測(cè)試用例集完全覆蓋測(cè)試用例集小結(jié)小結(jié)A^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTFA^BTF7、覆蓋準(zhǔn)則間的層次關(guān)系如果滿足準(zhǔn)則A的測(cè)試用例集一定滿足準(zhǔn)則B,那么我們就認(rèn)為準(zhǔn)則A包含準(zhǔn)則B。例如:判定覆蓋準(zhǔn)則包含語句覆蓋準(zhǔn)則7、覆蓋準(zhǔn)則間的層次關(guān)系如果滿足準(zhǔn)則A的測(cè)試用例集一定滿足準(zhǔn)語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋作業(yè):為以下流程圖所示的程序段設(shè)計(jì)一組測(cè)試用例,要求分別滿足語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋。X>8&&Y>5X>0||Y>0Z=1Z=2FTFTX>16||Y>10Z=3FT作業(yè):為以下流程圖所示的程序段設(shè)計(jì)一組測(cè)試用例,要求分別滿足四

基本路徑測(cè)試法基本路徑:保證被測(cè)程序的每個(gè)可執(zhí)行語句至少被執(zhí)行一次的最小路徑集四基本路徑測(cè)試法基本路徑:保證被測(cè)程序的每個(gè)可執(zhí)行語句基本路徑測(cè)試法通過以下4個(gè)步驟來實(shí)現(xiàn)繪制程序控制流圖分析環(huán)路復(fù)雜度導(dǎo)出基本可執(zhí)行路徑集設(shè)計(jì)測(cè)試用例基本路徑測(cè)試法通過以下4個(gè)步驟來實(shí)現(xiàn)39流程圖inta,b;doublec;if(a>0&&b>0){c=c/a;}if(a>1||c>1){c=c+1;}c=b+c;

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1步驟1:構(gòu)造程序的控制流圖39流程圖inta,b;doublec;c=b+c

c=b+cc=c/ac=c+1TTFFa>0&&b>0a>1||c>1c=b+cc=c/ac=c+1TTFFa>0&&b步驟2:計(jì)算程序環(huán)路復(fù)雜度環(huán)路復(fù)雜度又稱圈復(fù)雜度或復(fù)雜度程序邏輯復(fù)雜性的度量值環(huán)路復(fù)雜度=基本路徑數(shù)目經(jīng)驗(yàn)表明,程序的可能存在的BUG數(shù)與環(huán)路復(fù)雜度有著很大的相關(guān)性。步驟2:計(jì)算程序環(huán)路復(fù)雜度環(huán)路復(fù)雜度又稱圈復(fù)雜度或復(fù)雜度計(jì)算程序環(huán)路復(fù)雜度V(G)ACEDB123V(G)=區(qū)域數(shù)目V(G)=邊的數(shù)目-節(jié)點(diǎn)數(shù)目+2V(G)=判斷節(jié)點(diǎn)數(shù)目+1計(jì)算程序環(huán)路復(fù)雜度V(G)ACEDB123V(G)=區(qū)域數(shù)目步驟3:確定基本路徑集存在多個(gè)可行的基本路徑集其中一個(gè)可行的基本路徑集包含如下基本路徑A—C—EA—B—C—EA—B—C—D—E程序流程圖ACEDB步驟3:確定基本路徑集存在多個(gè)可行的基本路徑集程序流程圖AC步驟4:設(shè)計(jì)測(cè)試用例步驟4:設(shè)計(jì)測(cè)試用例例題1:確定圖示控制流流圖的基本路徑集。123456879環(huán)路復(fù)雜度:方法1:4方法2:11-9+2=4方法3:3+1=4基本路徑集:1->91->2->3->4->6->8->1->91->2->3->5->6->8->1->91->2->7->8->1->9例題1:確定圖示控制流流圖的基本路徑集。123456879環(huán)6354217環(huán)路復(fù)雜度:方法1:3方法2:8-7+2=3方法3:2+1=3基本路徑集:12712346271235627例題2:確定圖示控制流流圖的基本路徑集。6354217環(huán)路復(fù)雜度:基本路徑集:例題2:確定圖示控制流3EDBACFG9187654210R1R5R4R3R2例題3:確定圖示控制流流圖的基本路徑集。環(huán)路復(fù)雜度:方法1:5方法2:10-7+2=5方法3:4+1=3基本路徑集:ADFGADEFGABEFGABCBEFG3EDBACFG9187654210R1R5R4R3R2例題第六講黑盒測(cè)試技術(shù)第六講黑盒測(cè)試技術(shù)引言本章將開始講黑盒測(cè)試的基本概念與基本方法,介紹等價(jià)類劃分、邊界值分析、決策表法、因果圖法等方法,并通過實(shí)例來介紹測(cè)試技術(shù)的應(yīng)用。引言本章將開始講黑盒測(cè)試的基本概念與基本方法,介紹等價(jià)類劃分一、黑盒測(cè)試概述功能測(cè)試、基于規(guī)格說明的測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試依據(jù)設(shè)計(jì)規(guī)格書(Specification)需求文檔(Requirement)設(shè)計(jì)文檔(Design)一、黑盒測(cè)試概述功能測(cè)試、基于規(guī)格說明的測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試軟件輸入黑盒測(cè)試不深入代碼細(xì)節(jié)輸出軟件輸入黑盒測(cè)試不深入代碼細(xì)節(jié)輸出測(cè)試對(duì)象描述類比測(cè)試對(duì)象描述類比黑盒測(cè)試的內(nèi)容不正確或遺漏了的功能正確地接受輸入數(shù)據(jù)并產(chǎn)生正確地輸出界面出錯(cuò)和界面美觀問題安裝中的出現(xiàn)的問題初始化和終止錯(cuò)誤問題操作邏輯問題黑盒測(cè)試不正確或遺漏了的功能正確地接受輸入數(shù)據(jù)界面出錯(cuò)和界面通過測(cè)試(正面測(cè)試)確認(rèn)軟件能做什么?黑盒測(cè)試失敗測(cè)試(負(fù)面測(cè)試)迫使出錯(cuò)!黑盒測(cè)試的兩種基本思路通過測(cè)試黑盒測(cè)試失敗測(cè)試黑盒測(cè)試的兩種基本思路正面測(cè)試負(fù)面測(cè)試正面測(cè)試負(fù)面測(cè)試等價(jià)類(EquivalenceClassPartitioning,ECP)對(duì)于某個(gè)輸入域的集合,如果用集合中的一個(gè)輸入條件作為測(cè)試數(shù)據(jù)進(jìn)行測(cè)試不能發(fā)現(xiàn)程序中的錯(cuò)誤,那么使用集合中的其他輸入條件進(jìn)行測(cè)試也不可能發(fā)現(xiàn)錯(cuò)誤,對(duì)于檢測(cè)程序中的錯(cuò)誤來說,集合中每個(gè)輸入條件都是等價(jià)的,就稱該集合中的條件為等價(jià)類。1.概念二等價(jià)類劃分法等價(jià)類(EquivalenceClassPartitio有效等價(jià)類是合理的、有意義的輸入數(shù)據(jù)所構(gòu)成的集合驗(yàn)證預(yù)期的功能和性能的實(shí)現(xiàn)無效等價(jià)類是不合理的,沒有意義的輸入數(shù)據(jù)構(gòu)成的集合對(duì)無效數(shù)據(jù)的處理能力有效等價(jià)類①、如果輸入條件規(guī)定了取值范圍,則可以劃分一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。2.等價(jià)類的劃分規(guī)則例:輸入值是學(xué)生成績(jī),范圍是0~100有效等價(jià)類:①0≤成績(jī)≤100無效等價(jià)類:①成績(jī)<0,②成績(jī)>100①、如果輸入條件規(guī)定了取值范圍,則可以劃分一個(gè)有效等價(jià)類和兩②、如果輸入數(shù)據(jù)是給定值或布爾值,則可以劃分出一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。例:程序輸入條件x=10有效等價(jià)類:①x=10無效等價(jià)類:①x≠10程序輸入性別:男有效等價(jià)類:男無效等價(jià)類:女②、如果輸入數(shù)據(jù)是給定值或布爾值,則可以劃分出一個(gè)有效等價(jià)類③、如果輸入數(shù)據(jù)是一個(gè)數(shù)組(包括n個(gè)輸入),且程序?qū)Σ煌斎胫底霾煌幚?,則有n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。例:輸入條件說明學(xué)歷可為:??啤⒈究?、碩士、博士四種之一有效等價(jià)類:①專科、②本科、③碩士、④博士無效等價(jià)類:①其它任何學(xué)歷③、如果輸入數(shù)據(jù)是一個(gè)數(shù)組(包括n個(gè)輸入),且程序?qū)Σ煌斎擘?、如果輸入?shù)據(jù)必須遵循某種規(guī)則,可確定一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。例:校內(nèi)電話號(hào)碼撥外線為9開頭有效等價(jià)類:①

9+外線號(hào)碼無效等價(jià)類:①非9開頭+外線號(hào)碼 ②9+非外線號(hào)碼,…④、如果輸入數(shù)據(jù)必須遵循某種規(guī)則,可確定一個(gè)有效等價(jià)類(符合3.測(cè)試用例的設(shè)計(jì)步驟(1)對(duì)輸入或外部條件進(jìn)行等價(jià)類劃分,形成等價(jià)類表并編號(hào);(2)設(shè)計(jì)用例,盡可能多地覆蓋尚未覆蓋的有效等價(jià)類,重復(fù);(3)設(shè)計(jì)新用例,只覆蓋一個(gè)無效等價(jià)類,重復(fù)。思考:3的順序是否可以和2顛倒?3.測(cè)試用例的設(shè)計(jì)步驟(1)對(duì)輸入或外部條件進(jìn)行等價(jià)例1:報(bào)表日期

設(shè)某公司要打印2001~2005年的報(bào)表,其中報(bào)表日期為6位數(shù)字組成,其中,前4位為年份,后兩位為月份。例1:報(bào)表日期 設(shè)某公司要打印2001~2005年的報(bào)表,其第一步:劃分等價(jià)類、編號(hào)第一步:劃分等價(jià)類、編號(hào)第二步:為有效等價(jià)類設(shè)計(jì)測(cè)試用例

對(duì)表中編號(hào)為①②③的3個(gè)有效等價(jià)類用一個(gè)測(cè)試用例覆蓋:第二步:為有效等價(jià)類設(shè)計(jì)測(cè)試用例 對(duì)表中編號(hào)為①②③的3個(gè)第三步:為每一個(gè)無效等價(jià)類至少設(shè)計(jì)一個(gè)測(cè)試用例本例的10個(gè)等價(jià)類至少需要8個(gè)測(cè)試用例不能出現(xiàn)相同的測(cè)試用例第三步:為每一個(gè)無效等價(jià)類至少設(shè)計(jì)一個(gè)測(cè)試用例本例的10個(gè)等4.等價(jià)類劃分法的特點(diǎn)優(yōu)點(diǎn):較少的用例,較完整的覆蓋。缺點(diǎn):缺乏特殊用例的考慮;需要有深入的系統(tǒng)知識(shí),才能合理的劃分等價(jià)類。4.等價(jià)類劃分法的特點(diǎn)優(yōu)點(diǎn):較少的用例,較完整的覆蓋。對(duì)考試系統(tǒng)“成績(jī)查詢模塊”子模塊——輸入準(zhǔn)考證號(hào)查詢成績(jī)行政專業(yè)準(zhǔn)考證號(hào)碼為:110001~111215法律專業(yè)準(zhǔn)考證號(hào)碼為:210001~212006財(cái)經(jīng)專業(yè)準(zhǔn)考證號(hào)碼為:310001~314015例2:準(zhǔn)考證號(hào)碼對(duì)考試系統(tǒng)“成績(jī)查詢模塊”子模塊——輸入準(zhǔn)考證號(hào)查詢成績(jī)例2例:準(zhǔn)考證號(hào)碼的等價(jià)類劃分有效等價(jià)類:(1)110001~111215(2)210001~212006(3)310001~314015

無效等價(jià)類:(4)-~110000(5)111216~210000(6)212007~310000(7)314016~+例:準(zhǔn)考證號(hào)碼的等價(jià)類劃分等價(jià)類的劃分規(guī)則等價(jià)類的劃分規(guī)則四邊界值分析法BoundaryValueAnalysis,BVA

理論提出:長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)表明,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。四邊界值分析法BoundaryValueAnal定義:邊界值分析法就是對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法。通常邊界值分析法是作為對(duì)等價(jià)類劃分法的補(bǔ)充,這種情況下,其測(cè)試用例來自等價(jià)類的邊界。定義:1.常見的邊界值1)對(duì)16-bit的整數(shù)而言32767和-32768是邊界2)屏幕上光標(biāo)在最左上、最右下位置3)報(bào)表的第一行和最后一行4)數(shù)組元素的第一個(gè)和最后一個(gè)5)循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次1.常見的邊界值1)對(duì)16-bit的整數(shù)而言3276邊界值分析的基礎(chǔ)思想是在輸入變量的取值區(qū)間內(nèi)取最小值、略高于最小值、正常值、略低于最大值和最大值5個(gè)值。邊界值分析健壯性邊界值分析2.用例設(shè)計(jì)思想邊界值分析的基礎(chǔ)思想是在輸入變量的取值區(qū)間內(nèi)取最小值、略高于例1:一個(gè)輸入年份的輸入框,其限制條件是1900年至2012年,那么選擇測(cè)試用例為:1900,1901,1950,2011,20121899,1900,1901,1950,2011,2012,2013例1:一個(gè)輸入年份的輸入框,其限制條件是1900年至2012例2:銀行取款機(jī),取款金額是100~10000,提款的顆粒度為100元,那么選擇測(cè)試用例為:0,100,200,5000,9900,10000,10100例2:銀行取款機(jī),取款金額是100~10000,提款的顆3.選擇測(cè)試用例技巧

(1)輸入條件:范圍——?jiǎng)倓傔_(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值例如:如果程序的規(guī)格說明中規(guī)定:“重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費(fèi)計(jì)算公式為……”。測(cè)試用例:9.99,10

,10.01,25,49.99,50,50.013.選擇測(cè)試用例技巧

(1)輸入條件:范圍例如:如果程(2)輸入條件:值的個(gè)數(shù)——最大個(gè)數(shù),最小個(gè)數(shù),比最小個(gè)數(shù)少一,比最大個(gè)數(shù)多一例如:一個(gè)輸入文件應(yīng)包括1~255個(gè)記錄……則測(cè)試用:0,1,122,255,256等。(2)輸入條件:值的個(gè)數(shù)例如:一個(gè)輸入文件應(yīng)包括1~255個(gè)(3)(1)、(2)應(yīng)用于輸出條件例如:某程序的規(guī)格說明要求計(jì)算出“每月保險(xiǎn)金扣除額為0至1165.25元”……測(cè)試用例選取應(yīng)能使計(jì)算結(jié)果為0.00和1165.25、以及-0.01及1165.26等。例如:檢索系統(tǒng)程序,要求每次“最少顯示1條、最多顯示4條檢索信息"……測(cè)試用例應(yīng)能使輸出結(jié)果為:1,4,還應(yīng)包括0,5等。(3)(1)、(2)應(yīng)用于輸出條件例如:某程序的規(guī)格說明要求(4)輸入、輸出域是有序集合——集合的第一個(gè)元素和最后一個(gè)元素(5)內(nèi)部數(shù)據(jù)結(jié)構(gòu)——內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值(6)分析規(guī)格說明,找出其它可能的邊界條件(7)正常值——接近取值范圍中間值即可(4)輸入、輸出域是有序集合例:“輸入3個(gè)值,輸出三角形的類型”測(cè)試用例:例:“輸入3個(gè)值,輸出三角形的類型”測(cè)試用例:邊界值是特殊的等價(jià)類邊界值分析不僅考慮輸入,還要考慮輸出。4.邊界值與等價(jià)類的區(qū)別邊界值是特殊的等價(jià)類4.邊界值與等價(jià)類的區(qū)別5.邊界值的弱點(diǎn)“單缺陷”假設(shè):即由于缺陷導(dǎo)致的程序失效極少是由兩個(gè)(或多個(gè))缺陷的同時(shí)作用引起。程序輸入是多個(gè)獨(dú)立的變量,比較適合邊界值變量之間相互影響時(shí),效果不好(人的身高體重)邊界值分析與等價(jià)類劃分效果與測(cè)試人員的經(jīng)驗(yàn)密切相關(guān)。5.邊界值的弱點(diǎn)“單缺陷”假設(shè):即由于缺陷導(dǎo)致的程序失效組合分析法考慮思想:錯(cuò)誤的主要來源來自于各種因素的組合,而非一個(gè)因素。優(yōu)點(diǎn):實(shí)現(xiàn)成本低、維護(hù)成本低、容易自動(dòng)化、錯(cuò)誤發(fā)現(xiàn)效率高、測(cè)試方式靈活。組合分析法考慮思想:錯(cuò)誤的主要來源來自于各種因素的組合,而非作業(yè):1.閱讀偽代碼,完成下列任務(wù)(1)畫出程序流程圖、盒圖。(2)按照不同的覆蓋準(zhǔn)則,確定測(cè)試用例的數(shù)量,并設(shè)計(jì)測(cè)試用例。語句覆蓋判定覆蓋條件覆蓋路徑覆蓋(3)畫出控制流圖,用基本路徑法設(shè)計(jì)測(cè)試用例。IfX>8andY>5thenifX>16orY>10then Z=3endifElseIfX>0orY>0then Z=2Else Z=1endifendif作業(yè):IfX>8andY>5then2.用邊界值法設(shè)計(jì)以下函數(shù)的測(cè)試用例。(1)y=ABS(x);(2)y=sin(x)3.用等價(jià)類劃分法測(cè)試成績(jī)輸入文本框設(shè)計(jì)測(cè)試用例。(1)百分制;(2)五級(jí)制。4.需要測(cè)試學(xué)號(hào)輸入文本框,學(xué)號(hào)結(jié)構(gòu)為8位數(shù)字字符組成,前兩位是年代后兩位,3、4兩位是專業(yè)編號(hào)(1-50),5、6位為班級(jí)編號(hào)(1-20),7、8位為50以內(nèi)的流水號(hào)。2.用邊界值法設(shè)計(jì)以下函數(shù)的測(cè)試用例。作業(yè):1.為以下流程圖所示的程序段設(shè)計(jì)一組測(cè)試用例,要求分別滿足語句覆蓋、判定覆蓋、條件覆蓋和路徑覆蓋設(shè)計(jì)測(cè)試用例。2.用基本路徑法設(shè)計(jì)測(cè)試用例。X>8&&Y>5X>0||Y>0Z=1Z=2FTFTX>16||Y>10Z=3FT作業(yè):1.為以下流程圖所示的程序段設(shè)計(jì)一組測(cè)試用例,要求分別劃分等價(jià)類、編號(hào)劃分等價(jià)類、編號(hào)軟件工程--白盒測(cè)試技術(shù)--課件判定表又稱決策表定義:把輸入條件各種組合以及對(duì)應(yīng)輸出值都羅列出來而形成的表格。是一個(gè)典型的組合分析方法把問題的各種可能都列舉出來,簡(jiǎn)明且不會(huì)遺漏。是最嚴(yán)格,最具有邏輯性的黑盒測(cè)試方法。五

判定表方法(DecisionTable)判定表又稱決策表五判定表方法(DecisionTab

條件樁

條件項(xiàng)動(dòng)作樁動(dòng)作項(xiàng)判定表的結(jié)構(gòu)1.基本概念判定表的結(jié)構(gòu)1.基本概念電力公司將用戶分為兩類:?jiǎn)钨M(fèi)率用戶:實(shí)行單一電價(jià)復(fù)費(fèi)率用戶:在規(guī)定時(shí)間內(nèi)實(shí)行優(yōu)惠電價(jià),在其他時(shí)間內(nèi)實(shí)行普通電價(jià)條件樁單費(fèi)率復(fù)費(fèi)率規(guī)定期動(dòng)作樁單一電價(jià)優(yōu)惠電價(jià)普通電價(jià)1.單費(fèi)率:單一電價(jià)2.復(fù)費(fèi)率+在規(guī)定時(shí)間:優(yōu)惠電價(jià)3.復(fù)費(fèi)率+不在規(guī)定的時(shí)間:普通電價(jià)

規(guī)則條件樁:?jiǎn)栴}的所有條件動(dòng)作樁:所有可能采取的操作規(guī)則:一個(gè)條件組合的取值及其執(zhí)行的操作電力公司將用戶分為兩類:條件樁動(dòng)作樁1.單費(fèi)率:單一電價(jià)規(guī)

條件樁

條件項(xiàng)動(dòng)作樁動(dòng)作項(xiàng)動(dòng)作:通常使用“0”和“1”表示不執(zhí)行動(dòng)作和執(zhí)行動(dòng)作條件:通常使用“0”和“1”表示條件不滿足和條件滿足判定表的結(jié)構(gòu)規(guī)則動(dòng)作:通常使用“0”和“1”表示不執(zhí)行動(dòng)作和執(zhí)行動(dòng)作判定表?xiàng)l件樁動(dòng)作樁規(guī)則1規(guī)則2規(guī)則3行動(dòng)項(xiàng):在條件條目下采取的動(dòng)作或操作在判定表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一個(gè)規(guī)則條件項(xiàng):條件樁的所有可能取值,“真”、“假”或其它。條件樁動(dòng)作樁規(guī)規(guī)規(guī)行動(dòng)項(xiàng):在條件條目下采取的動(dòng)作或操作在判定測(cè)試用例集測(cè)試用例集軟件工程--白盒測(cè)試技術(shù)--課件(1)判定表中條件的組合方式有多少,就有多少條規(guī)則,就有多少列,每列對(duì)應(yīng)一個(gè)測(cè)試用例。(2)如果條件都是二叉條件,稱為有限條目判定表。如果條件有多個(gè)值,甚至對(duì)應(yīng)于變量的等價(jià)類,稱為擴(kuò)展條目判定表。如條件“ATM交易類型”,可以取“存款”、“查詢”和“取款”三種值。(3)由于判定表是機(jī)械地強(qiáng)制完備的,因此具有測(cè)試用例的完整性。2.判定表的特點(diǎn)(1)判定表中條件的組合方式有多少,就有多少條規(guī)則,就有多少輸入輸出輸入的等價(jià)類功能處理?xiàng)l件動(dòng)作規(guī)則測(cè)試用例3.判定表的應(yīng)用條件動(dòng)作規(guī)則測(cè)試用例輸入輸出輸入的等價(jià)類功能處理?xiàng)l件動(dòng)作規(guī)則測(cè)試用例3.判定構(gòu)造判定表可采用以下5個(gè)步驟:(1)列出條件樁和動(dòng)作樁。(2)確定規(guī)則的個(gè)數(shù)。(3)填入條件項(xiàng)。(4)填入動(dòng)作項(xiàng),得到初始判定表。(5)簡(jiǎn)化判定表,合并相似規(guī)則。4.判定表的構(gòu)造及化簡(jiǎn)構(gòu)造判定表可采用以下5個(gè)步驟:4.判定表的構(gòu)造及化簡(jiǎn)判定表的化簡(jiǎn)對(duì)于n個(gè)條件的判定表,相應(yīng)有2n個(gè)規(guī)則(每個(gè)條件分別取真、假值)。判定表的化簡(jiǎn)是以合并相似規(guī)則為目標(biāo)若表中有兩條以上規(guī)則具有相同的動(dòng)作,并且在條件項(xiàng)之間存在極為相似的關(guān)系,便可以合并。判定表的化簡(jiǎn)例題:打印機(jī)能否打印出正確的內(nèi)容有多個(gè)影響因素,包括驅(qū)動(dòng)程序、紙張、墨粉等,打印機(jī)會(huì)自動(dòng)提示:驅(qū)動(dòng)是否正確、提示沒有紙張、提示沒有墨粉,根據(jù)這些信息決定決定是否打印內(nèi)容,請(qǐng)?jiān)O(shè)計(jì)出影響條件與動(dòng)作的判定表并化簡(jiǎn)。(為了簡(jiǎn)化問題,不考慮中途斷電、卡紙等因素;假定優(yōu)先警告缺紙,然后警告沒有墨粉,最后警告驅(qū)動(dòng)程序不正確。)條件樁驅(qū)動(dòng)是否正確是否有紙張是否有墨粉1規(guī)則數(shù):8動(dòng)作樁打印內(nèi)容提示驅(qū)動(dòng)不正確提示缺紙?zhí)崾救狈?例題:打印機(jī)能否打印出正確的內(nèi)容有多個(gè)影響因素,包括驅(qū)動(dòng)程序構(gòu)造判定表簡(jiǎn)化判定表構(gòu)簡(jiǎn)化例題:某商場(chǎng)舉行一次假日商品促銷活動(dòng)。在活動(dòng)期間,對(duì)持會(huì)員卡的顧客,實(shí)行8.5折優(yōu)惠,滿1000元實(shí)行7折優(yōu)惠;對(duì)其他顧客,消費(fèi)滿1000元的,實(shí)行9折優(yōu)惠,并免費(fèi)辦理會(huì)員卡。請(qǐng)給出相應(yīng)的判定表及測(cè)試用例集。持卡不持卡滿1000不滿滿1000不滿條件樁持卡會(huì)員消費(fèi)滿10001動(dòng)作樁8.5折7折9折+辦卡其它2規(guī)則:4例題:某商場(chǎng)舉行一次假日商品促銷活動(dòng)。在活動(dòng)期間,對(duì)持會(huì)員卡判定表判定表測(cè)試用例集測(cè)試用例集什么是因果關(guān)系?拿破侖說:六、因果圖方法“失一個(gè)釘子,壞了一只蹄鐵;壞了一只蹄鐵,折了一匹戰(zhàn)馬;折了一匹戰(zhàn)馬,傷了一位騎士;傷了一位騎士,輸了一場(chǎng)戰(zhàn)斗;輸了一場(chǎng)戰(zhàn)斗,亡了一個(gè)帝國(guó)?!?/p>

這就是因果關(guān)系

什么是因果關(guān)系?拿破侖說:六、因果圖方法“失一個(gè)釘子,壞了一因果圖方法(Cause-effectDiagram)是借助圖形,分析輸入條件的各種組合,每種組合是“因”,必然有一個(gè)輸出為“果”。因果圖方法最終生成判定表,適用檢查程序輸入條件的各種組合情況。因果圖中使用了簡(jiǎn)單的邏輯符號(hào),以直線聯(lián)接左右結(jié)點(diǎn)。左結(jié)點(diǎn)表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)表示輸出狀態(tài)(或稱結(jié)果)。因果圖方法(Cause-effectDiagram)是借助1.因果圖ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。ci和ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。c1e1恒等c1e1非①恒等:若ci是1,則ei也是1;否則ei為0。②非:若ci是1,則ei是0;否則ei是1?!?.因果圖ci表示原因,通常置于圖的左部;ei表示結(jié)果,c2e1或orc1c3∨c2e1與andc1c3∧③或:若c1或c2或c3是1,則ei是1;否則ei為0?!盎颉笨捎腥我鈧€(gè)輸入。④與:若c1、c2和c2都是1,則ei為1;否則ei為0?!芭c”也可有任意個(gè)輸入。c2e1或orc1c3∨c2e1與andc1c3∧③或:因果圖因果圖2、狀態(tài)約束狀態(tài)相互之間存在依賴關(guān)系,稱為約束。輸入/輸出狀態(tài)之間都存在約束。在因果圖中,用特定的符號(hào)標(biāo)明這些約束。2、狀態(tài)約束狀態(tài)相互之間存在依賴關(guān)系,稱為約束。(1)輸入條件之間的約束有以下4類:

①E約束(異):A、B至多有一個(gè)為1,即A和B不能同時(shí)為1。

②I約束(或):A、B至少有一個(gè)必須是1,即A、B不能同時(shí)為0。

ABEABI異或(1)輸入條件之間的約束有以下4類:ABEABI異或③O約束(唯一);A、B中有且僅有1個(gè)為1。④R約束(要求):A是1時(shí),B必須是1,即A、B必須相同。ABOABR唯一要求③O約束(唯一);A、B中有且僅有1個(gè)為1。ABOABR唯一(2)輸出條件約束類型輸出條件的約束只有M約束(強(qiáng)制):若結(jié)果E是1,則結(jié)果F強(qiáng)制為1。EFM強(qiáng)制(2)輸出條件約束類型EFM強(qiáng)制約束條件約束條件3.利用因果圖生成測(cè)試用例的步驟分析分析軟件規(guī)格說明,找出原因(輸入條件或輸入條件的等價(jià)類)與結(jié)果(輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。找出原因與結(jié)果、原因與原因之間對(duì)應(yīng)的關(guān)系,畫出因果圖。3.利用因果圖生成測(cè)試用例的步驟分析分析軟件規(guī)格說明分析關(guān)聯(lián)原因與原因之間,原因與結(jié)果之間的組合有不可能出現(xiàn)的情況,找出這些約束或限制條件。3.利用因果圖生成測(cè)試用例的步驟分析關(guān)聯(lián)原因與原因之間,原因與結(jié)果之間的組合有不可能出現(xiàn)分析轉(zhuǎn)換關(guān)聯(lián)因果圖轉(zhuǎn)換為判定表。3.利用因果圖生成測(cè)試用例的步驟分析轉(zhuǎn)換關(guān)聯(lián)因果圖轉(zhuǎn)換為判定表。3.利用因果圖生成分析轉(zhuǎn)換輸出關(guān)聯(lián)判定表的每一列轉(zhuǎn)化成一個(gè)測(cè)試用例。3.利用因果圖生成測(cè)試用例的步驟分析轉(zhuǎn)換輸出關(guān)聯(lián)判定表的每一列轉(zhuǎn)化成一個(gè)測(cè)試用例。3例1:

某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。請(qǐng)畫出因果圖,生成判定表和測(cè)試用例。原因:1——第一列字符是A;2——第一列字符是B;3——第二列字符是一數(shù)字。結(jié)果:21——修改文件;22——給出信息L;23——給出信息M。1、分析例1:

某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或?qū)?yīng)的因果圖其對(duì)應(yīng)的因果圖如下:11為中間節(jié)點(diǎn);考慮到原因1和原因2不可能同時(shí)為1,因此在因果圖上施加E約束,如圖所示。11122212323VVE∽∽對(duì)應(yīng)的因果圖其對(duì)應(yīng)的因果圖如下:11122212323VVE根據(jù)因果圖建立判定表根據(jù)因果圖建立判定表把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測(cè)試用例把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測(cè)試用例4、使用因果圖法的優(yōu)點(diǎn)1)充分考慮了輸入的各種組合以及它們之間的相互制約關(guān)系。2)可以幫助測(cè)試人員按照一定的步驟,高效率的開發(fā)測(cè)試用例。3)因果圖法將自然語言規(guī)格說明轉(zhuǎn)化成形式語言規(guī)格說明的一種方法,可以找出規(guī)格說明存在的不完整性和二義性。4、使用因果圖法的優(yōu)點(diǎn)1)充分考慮了輸入的各種組合以及它們之案例分析有一個(gè)處理單價(jià)為1元5角的盒裝飲料的自動(dòng)售貨機(jī)軟件。若投入1元5角硬幣,按下“可樂”,“雪碧”或“紅茶”按鈕,相應(yīng)的飲料就送出來。若投入的是兩元硬幣,在送出飲料的同時(shí)退還5角硬幣。案例分析有一個(gè)處理單價(jià)為1元5角的盒裝飲料的自動(dòng)售貨機(jī)軟件。(1)分析(2)因果圖(1)分析(2)因果圖(3)判定表(3)判定表(4)設(shè)計(jì)測(cè)試用例(4)設(shè)計(jì)測(cè)試用例案例分析中國(guó)象棋中走馬的測(cè)試用例設(shè)計(jì)為例學(xué)習(xí)因果圖的使用方法(下面未注明的均指的是對(duì)馬的說明)案例分析中國(guó)象棋中走馬的測(cè)試用例設(shè)計(jì)為例學(xué)習(xí)因果圖的使用方法一、分析中國(guó)象棋中走馬的實(shí)際情況如果落點(diǎn)在棋盤外,則不移動(dòng)棋子;如果落點(diǎn)與起點(diǎn)不構(gòu)成日字型,則不移動(dòng)棋子;如果在落點(diǎn)方向的鄰近交叉點(diǎn)有棋子(絆馬腿),則不移動(dòng)棋子;如果不屬于1-3條,落點(diǎn)處有己方棋子,則不移動(dòng)棋子;如果不屬于1-3條,落點(diǎn)處無棋子,則移動(dòng)棋子;如果不屬于1-3條,落點(diǎn)處為對(duì)方棋子(非老將),則移動(dòng)棋子并除去對(duì)方棋子;如果不屬于1-3條,且落點(diǎn)處為對(duì)方老將,則移動(dòng)棋子,并提示戰(zhàn)勝對(duì)方,游戲結(jié)束。一、分析中國(guó)象棋中走馬的實(shí)際情況如果落點(diǎn)在棋盤外,則不移動(dòng)二、根據(jù)分析明確原因和結(jié)果原因:C1.落點(diǎn)在棋盤上;C2.落點(diǎn)與起點(diǎn)構(gòu)成日字;C3.落點(diǎn)方向的鄰近交叉點(diǎn)無棋子;C4.落點(diǎn)處為自己方棋子;C5.落點(diǎn)處無棋子;C6.落點(diǎn)處為對(duì)方棋子(非老將);C7.落點(diǎn)處為對(duì)方老將。結(jié)果:E1.不移動(dòng)棋子E2.移動(dòng)棋

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論