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

下載本文檔

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

文檔簡介

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

第3章白盒測試方法

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

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

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

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

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

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

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

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

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

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

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

直接跳過循環(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)體簡單循環(huán)測試嵌套循環(huán)嵌套循環(huán)Beizer’s的方法:

從最內(nèi)層測試開始,其它層的循環(huán)變量置為最小值按照簡單循環(huán)的測試方法測試最內(nèi)層的循環(huán)體,外層循環(huán)仍舊取最小值向外擴展循環(huán)體,測試下一個循環(huán)所有外層循環(huán)變量取最小值其余內(nèi)層嵌套的循環(huán)體取典型值繼續(xù)本步驟直到所有的循環(huán)體均測試完畢測試連接循環(huán)連接循環(huán)如果相連接的循環(huán)體互相獨立,按照簡單循環(huán)測試每一個循環(huán)體如果相連接的循環(huán)體1的循環(huán)變量的最終結(jié)果是循環(huán)體2循環(huán)變量的初始值,那么采用嵌套循環(huán)的方法來測試(靠前認為是內(nèi)層循環(huán))測試非結(jié)構(gòu)循環(huán)非結(jié)構(gòu)循環(huán)測試非結(jié)構(gòu)循環(huán)是一件令人頭痛的事情最好的方法是重新設(shè)計循環(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測試用例選擇練習下面是一段插入排序的程序,將R[k+1]插入到R[1…k]的適當位置。R[0]=R[k+1];

j=k;

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

{

R[j

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論