第09課 白盒測(cè)試分支條件測(cè)試、循環(huán)測(cè)試_第1頁(yè)
第09課 白盒測(cè)試分支條件測(cè)試、循環(huán)測(cè)試_第2頁(yè)
第09課 白盒測(cè)試分支條件測(cè)試、循環(huán)測(cè)試_第3頁(yè)
第09課 白盒測(cè)試分支條件測(cè)試、循環(huán)測(cè)試_第4頁(yè)
第09課 白盒測(cè)試分支條件測(cè)試、循環(huán)測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

把程序看成裝在一個(gè)透明的白盒子里,程序的結(jié)構(gòu)和處理呈現(xiàn)過(guò)程完全可見(jiàn),按照程序的內(nèi)部邏輯測(cè)試程序,以檢查程序中的每條通路是否都能按照預(yù)先要求正確工作。

第3章白盒測(cè)試方法

2路徑分析測(cè)試3分支條件測(cè)試、循環(huán)測(cè)試4其它測(cè)試類(lèi)型5主要內(nèi)容綜合測(cè)試實(shí)例

6黑盒測(cè)試與白盒測(cè)試1邏輯覆蓋測(cè)試白盒測(cè)試的常用方法邏輯覆蓋路徑分析測(cè)試

循環(huán)、條件分支…思考如果被誤寫(xiě)成if((a<=b+c)&&(b<a+c)&&(c<a+b)),基本路徑測(cè)試的四個(gè)用例(68,68,56),(68,60,56),(68,68,68),(68,8,56)是否可以發(fā)現(xiàn)這個(gè)問(wèn)題?3.3分支-條件測(cè)試測(cè)試思想根據(jù)模塊中的邏輯條件設(shè)計(jì)測(cè)試用例,使得被測(cè)模塊中的每一個(gè)復(fù)合條件以及構(gòu)成這個(gè)復(fù)合條件的每一個(gè)簡(jiǎn)單條件的真假情況至少被執(zhí)行一次。簡(jiǎn)單條件是一個(gè)布爾變量或一個(gè)可能帶有NOT(“┓”)操作符的關(guān)系表達(dá)式,關(guān)系表達(dá)式的形式如:E1<關(guān)系操作符>E2,其中E1和E2是算術(shù)表達(dá)式,而<關(guān)系操作符>是下列之一:“<”,“≤”,“=”,“≠”(“┓=”),“>”,或“≥”復(fù)合條件由簡(jiǎn)單條件、布爾操作符和括弧組成。假定可用于復(fù)合條件的布爾算子包括OR“|”,AND“&”和NOT“┓”,不含關(guān)系表達(dá)式的條件稱(chēng)為布爾表達(dá)式。分支-條件測(cè)試進(jìn)行分支-條件測(cè)試可以發(fā)現(xiàn)下列缺陷布爾變量錯(cuò)誤布爾括弧錯(cuò)誤關(guān)系操作符錯(cuò)誤算術(shù)表達(dá)式錯(cuò)誤布爾操作符錯(cuò)誤遺漏布爾操作符布爾操作符多余布爾操作符不正確案例使用分支-條件方法設(shè)計(jì)下面邏輯條件的測(cè)試用例需被測(cè)試的邏輯條件復(fù)合條件((a<b+c)&&(b<a+c)&&(c<a+b))簡(jiǎn)單條件a<b+cb<a+cc<a+b案例((a<b+c)&&(b<a+c)&&(c<a+b))a<b+cb<a+cc<a+b68,68,68TTTT0,0,0FFFF上面的測(cè)試用例不推薦大家使用測(cè)試用例有效性不高:t&&t=t||t=t同時(shí)f&&f=f||f=f((a<b+c)||(b<a+c)&&(c<a+b))((a<b+c)&&(b<a+c)||(c<a+b))((a<b+c)||(b<a+c)||(c<a+b))使用“同真同假”測(cè)試用例時(shí),測(cè)試用例的有效性不高對(duì)分支-條件測(cè)試的討論((a<b+c)&&(b<a+c)&&(c<a+b))a<b+cb<a+cc<a+b68,68,68TTTT68,8,56FFTT8,68,56FTFT8,56,68FTTF這組測(cè)試用例的結(jié)果又如何?((a<=b+c)&&(b<a+c)&&(c<a+b))?案例((a<b+c)&&(b<a+c)&&(c<a+b))a<b+cb<a+cc<a+b68,68,68TTTT68,8,60FFTT8,68,60FTFT8,60,68FTTF使用上面的測(cè)試用例,是否可以發(fā)現(xiàn)下面的缺陷((a<=b+c)&&(b<a+c)&&(c<a+b))((a<b+c)||(b<a+c)&&(c<a+b))((a<b+c)&&(b<a+c)||(c<a+b))((a<b+c)||(b<a+c)||(c<a+b))結(jié)論分支-條件測(cè)試可以發(fā)現(xiàn)但并不保證發(fā)現(xiàn)所有下列缺陷布爾變量錯(cuò)誤布爾括弧錯(cuò)誤關(guān)系操作符錯(cuò)誤算術(shù)表達(dá)式錯(cuò)誤布爾操作符錯(cuò)誤遺漏布爾操作符布爾操作符多余布爾操作符不正確因此,實(shí)際設(shè)計(jì)測(cè)試用例過(guò)程中要結(jié)合具體問(wèn)題選取恰當(dāng)?shù)臏y(cè)試輸入推薦為了最大限度的發(fā)現(xiàn)缺陷,在進(jìn)行分支-條件測(cè)試時(shí),推薦參考下面方法設(shè)計(jì)相應(yīng)被測(cè)邏輯條件的測(cè)試用例。對(duì)于表達(dá)式:A1&&A2&&…An,設(shè)計(jì)測(cè)試用例覆蓋下面的情況。a.所有Ai均為真;b.設(shè)計(jì)n個(gè)測(cè)試用例,其中僅有一個(gè)為F,其余均為T(mén),如對(duì)于A&&B&&C,覆蓋下面的情況如下表所示

推薦對(duì)于表達(dá)式:A1||A2||…An,設(shè)計(jì)測(cè)試用例覆蓋下面的情況。a.所有Ai均為假;b.設(shè)計(jì)n個(gè)測(cè)試用例,其中僅有一個(gè)為T(mén),其余均為F,如對(duì)于A||B||C,覆蓋下面的情況如下表所示

推薦對(duì)于表達(dá)式中含有兩個(gè)布爾操作符的情況如下表所示推薦對(duì)于表達(dá)式中含有三個(gè)布爾操作符,其中僅有一個(gè)“&&”的情況如何?(略)對(duì)于表達(dá)式中含有三個(gè)布爾操作符,其中含有兩個(gè)”&&”的情況如何?(略)注意即使依據(jù)推薦方法得出的測(cè)試用例依然不能發(fā)現(xiàn)所有的缺陷??!練習(xí)指出下列代碼邏輯判斷條件中的復(fù)合條件和簡(jiǎn)單條件

If(nMod400==0)Or((nMod4==0)And(nMod100<>0))ThenMsgBoxs+"是閏年!"

EndIf需被測(cè)試的邏輯條件復(fù)合條件(nMod400==0)Or((nMod4==0)And(nMod100<>0))((nMod4==0)And(nMod100<>0))簡(jiǎn)單條件(nMod400==0)(nMod4==0)(nMod100<>0)3.4分支結(jié)構(gòu)的路徑測(cè)試

當(dāng)程序中判定多于一個(gè)時(shí),形成的分支結(jié)構(gòu)可以分為兩類(lèi),即嵌套型分支結(jié)構(gòu)和連鎖型分支結(jié)構(gòu)。對(duì)于嵌套型分支結(jié)構(gòu),若有n個(gè)判定語(yǔ)句,則需要n+1個(gè)測(cè)試用例;但對(duì)連鎖型分支結(jié)構(gòu),若有n個(gè)判定語(yǔ)句,則需要有2n個(gè)測(cè)試用例,去覆蓋它的2n條路徑。當(dāng)n較大時(shí)將無(wú)法測(cè)試。

為減少測(cè)試用例的數(shù)目,可采用試驗(yàn)設(shè)計(jì)法,抽取部分路徑進(jìn)行測(cè)試。由于抽樣服從均勻分布,因此,在假定各條路徑的重要性相同,或暫不明確各條路徑的重要性的情況下可以做到均勻抽樣。如果明確了各條路徑的重要性,還可以采取加權(quán)的辦法,篩選掉部分路徑,再用如下的措施進(jìn)行抽樣。具體步驟如下:①設(shè)連鎖型分支結(jié)構(gòu)中有n個(gè)判定,計(jì)算滿(mǎn)足關(guān)系式n+1≤2m的最小自然數(shù)m;

②設(shè)t=2m,取正交表Lt,并利用它設(shè)計(jì)測(cè)試數(shù)據(jù)。

例如,一個(gè)耦合型分支結(jié)構(gòu)中有三個(gè)判定語(yǔ)句P1,P2,P3。它全部路徑是23=8條。先計(jì)算3+1≤2m=t的t,得t=4。取正交表L4,如圖(a)所示,把每一列當(dāng)做一個(gè)判定,每一行當(dāng)做可取的測(cè)試用例,則正交表L4最多可取三個(gè)判定,分別代之以P1,P2,P3。判定P1,P2,P3的取假分支和取真分支分別記作S1、S2;S3、S4;S5、S6,用各個(gè)判定的取假分支取代正交表L4中的"0",用取真分支取代正交表中的"1",就建立起一個(gè)測(cè)試路徑矩陣,如圖(b)所示。這樣,測(cè)試路徑數(shù)目從23=8條減少到3+1=4條。3.5循環(huán)結(jié)構(gòu)的路徑測(cè)試測(cè)試思想關(guān)注循環(huán)體結(jié)構(gòu)的正確性,對(duì)循環(huán)變量運(yùn)用類(lèi)似于邊界值測(cè)試的方法以驗(yàn)證循環(huán)體結(jié)構(gòu)的正確性。四種不同類(lèi)型的循環(huán)結(jié)構(gòu)簡(jiǎn)單循環(huán)嵌套循環(huán)連接循環(huán)非結(jié)構(gòu)循環(huán)循環(huán)類(lèi)型測(cè)試簡(jiǎn)單循環(huán)如果n是循環(huán)次數(shù),那么測(cè)試用例應(yīng)包括

直接跳過(guò)循環(huán)體只執(zhí)行一遍循環(huán)體連續(xù)執(zhí)行兩遍循環(huán)體如果循環(huán)次數(shù)為n,執(zhí)行m(m<n)遍循環(huán)體如果循環(huán)次數(shù)為n,那么執(zhí)行n-1遍循環(huán)體如果循環(huán)次數(shù)為n,那么執(zhí)行n遍循環(huán)體如果循環(huán)次數(shù)為n,那么執(zhí)行n+1遍循環(huán)體簡(jiǎn)單循環(huán)測(cè)試嵌套循環(huán)嵌套循環(huán)Beizer’s的方法:

從最內(nèi)層測(cè)試開(kāi)始,其它層的循環(huán)變量置為最小值按照簡(jiǎn)單循環(huán)的測(cè)試方法測(cè)試最內(nèi)層的循環(huán)體,外層循環(huán)仍舊取最小值向外擴(kuò)展循環(huán)體,測(cè)試下一個(gè)循環(huán)所有外層循環(huán)變量取最小值其余內(nèi)層嵌套的循環(huán)體取典型值繼續(xù)本步驟直到所有的循環(huán)體均測(cè)試完畢測(cè)試連接循環(huán)連接循環(huán)如果相連接的循環(huán)體互相獨(dú)立,按照簡(jiǎn)單循環(huán)測(cè)試每一個(gè)循環(huán)體如果相連接的循環(huán)體1的循環(huán)變量的最終結(jié)果是循環(huán)體2循環(huán)變量的初始值,那么采用嵌套循環(huán)的方法來(lái)測(cè)試(靠前認(rèn)為是內(nèi)層循環(huán))測(cè)試非結(jié)構(gòu)循環(huán)非結(jié)構(gòu)循環(huán)測(cè)試非結(jié)構(gòu)循環(huán)是一件令人頭痛的事情最好的方法是重新設(shè)計(jì)循環(huán)體結(jié)構(gòu)案例:求最小值Min(inti,intn){k=i;j=i+1;while(j<=n){if(A[j]<A[k])k=j;j++;}}要求:做到0、1、2次循環(huán)k=i;j=i+1;j<=n?A[j]<A[k]?k=jj

++fdcabe測(cè)試用例選擇練習(xí)下面是一段插入排序的程序,將R[k+1]插入到R[1…k]的適當(dāng)位置。R[0]=R[k+1];

j=k;

while(R[j]>R[0])

{

R[j

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論