控制結(jié)構(gòu)測試_第1頁
控制結(jié)構(gòu)測試_第2頁
控制結(jié)構(gòu)測試_第3頁
控制結(jié)構(gòu)測試_第4頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

控制結(jié)構(gòu)測試1.基本路徑測試基本路徑測試是TomMcCabe提出的一種白盒測試技術(shù)。使用這種技術(shù)設(shè)計(jì)測試用例時,首先計(jì)算程序的環(huán)形復(fù)雜度,并用該復(fù)雜度為指南定義執(zhí)行路徑的基本集合。流圖為了突出表示程序的控制流,人們通常使用流圖(也稱為程序圖)。所謂流圖實(shí)質(zhì)上是“退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)對數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。

在流圖中用圓表示結(jié)點(diǎn),一個圓代表一條或多條語句。程序流程圖中的一個順序的處理框序列和一個菱形判定框,可以映射成流圖中的一個結(jié)點(diǎn)。流圖中的箭頭線稱為邊,它和程序流程圖中的箭頭線類似,代表控制流。當(dāng)過程設(shè)計(jì)中包含復(fù)合條件時,應(yīng)該把復(fù)合條件分解為若干個簡單條件,每個簡單條件對應(yīng)流圖中一個結(jié)點(diǎn)。例子:PROCEDUREaverage;/*這個過程計(jì)算不超過100個在規(guī)定值域內(nèi)的有效數(shù)字的平均值;同時計(jì)算有效數(shù)字的總和及個數(shù)。*/ INTERFACERETURNSaverage,total.input,total.valid;INTERFACEACCEPTSvalue,minimum,maximum;TYPEvalue[1…100]ISSCALARARRAY;TYPEaverage,total.input,total.valid;

minimum,maximum,sumISSCALAR;TYPEiISINTEGER;1: i=1;

total.input=total.valid=0; sum=0;2: DOWHILEvalue[i]<>-9993: ANDtotal.input<1004: incrementtotal.inputby1;5: IFvalue[i]>=minimum6: ANDvalue[i]<=maximum7:THENincrementtotal.validby1; sum=sum+value[i];8: ENDIF incrementiby1;9: ENDDO10:IFtotal.valid>011:THENaverage=sum/total.valid;12:ELSEaverage=-999;13:ENDIF ENDaverage程序流程圖如右圖所示使用基本路徑測試技術(shù)設(shè)計(jì)測試用例的步驟如下:第一步,根據(jù)過程設(shè)計(jì)結(jié)果畫出相應(yīng)的流圖。求平均值過程的流圖第二步,計(jì)算流圖的環(huán)形復(fù)雜度。環(huán)形復(fù)雜度定量度量程序的邏輯復(fù)雜性。描繪程序控制流的流圖之后,可以用下述3種方法中的任何一種來計(jì)算環(huán)形復(fù)雜度。

(1)流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。

(2)流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中,E是流圖中邊的條數(shù),N是結(jié)點(diǎn)數(shù)。

(3)流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中,P是流圖中判定結(jié)點(diǎn)的數(shù)目。

可計(jì)算得,上例的復(fù)雜度為6。第三步,確定線性獨(dú)立路徑的基本集合。所謂獨(dú)立路徑是指至少引入程序的一個新處理語句集合或一個新條件的路徑,用流圖術(shù)語描述,獨(dú)立路徑至少包含一條在定義該路徑之前不曾用過的邊。使用基本路徑測試用例時,程序的環(huán)形復(fù)雜度決定了程序中獨(dú)立路徑的數(shù)量。由該理論,圖5.6中存在6條獨(dú)立路徑,它們分別為:

1-2-10-11-13 1-2-10-12-13 1-2-3-10-11-13 1-2-3-4-5-8-9-2-... 1-2-3-4-5-6-8-9-2-... 1-2-3-4-5-6-7-8-9-2-...

第四步,設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑的測試用例。應(yīng)該選取測試數(shù)據(jù)使得在測試每條路徑時都適當(dāng)?shù)卦O(shè)置好了各個判定結(jié)點(diǎn)的條件。一旦執(zhí)行完所有測試用例,就可以確保程序中所有語句都至少被執(zhí)行了一次,而且每個條件都分別取過true值和false值。2.條件測試用條件測試技術(shù)設(shè)計(jì)出的測試用例,能夠檢查程序模塊中包含的邏輯條件。關(guān)系表達(dá)式的形式如下:E1<關(guān)系算符>E2

其中,E1和E2是算術(shù)表達(dá)式,而<關(guān)系算符>是下列算符之一:“<”,“≤”,“=”,“≠”,“>”或“≥”。復(fù)合條件由兩個或多個簡單條件、布爾算符和括弧組成。布爾算符有OR(“|”),AND(“&”)和NOT。不包含關(guān)系表達(dá)式的條件稱為布爾表達(dá)式。條件成分的類型包括布爾算符、布爾變量、布爾括弧(括住簡單條件或復(fù)合條件)、關(guān)系算符及算術(shù)表達(dá)式。aPoint.SecondPoint=="n"||aPoint.SecondPoint=="ns"||aPoint.SecondPoint=="nr"||aPoint.SecondPoint=="v"||aPoint.SecondPoint=="vn"||aPoint.SecondPoint=="b“intCount>1&&strSplit[i]!=strLabel(strTemp=="<"||strTemp=="【")&&i<strContentValue.Length-1strTemp=="\t"||strTemp=="\r"||

strTemp=="\n"||booIfLabel||

strTemp==""||strTemp=="'“booIfLabel

是布爾變量如果條件不正確,則至少條件的一個成分不正確。因此,條件錯誤的類型如下:布爾算符錯(布爾算符不正確,遺漏布爾算符或有多余的布爾算符)布爾變量錯布爾括弧錯關(guān)系算符錯算術(shù)表達(dá)式錯條件測試的目的不僅是檢測程序條件中的錯誤,而且是檢測程序中的其他錯誤。如果程序P的測試集能有效地檢測P中條件的錯誤,則它很可能也可以有效地檢測P中的其他錯誤。如果一個測試策略對檢測條件錯誤是有效的,則很可能該策略對檢測程序的其他錯誤也是有效的。分支測試可能是最簡單的條件測試策略:對于復(fù)合條件C來說,C的真分支和假分支以及C中的每個簡單條件,都應(yīng)該至少執(zhí)行一次。

E1<關(guān)系算符>E2包含n個變量的布爾表達(dá)式需要2n個測試。這個策略可以發(fā)現(xiàn)布爾算符、變量和括弧的錯誤,但是,該策略僅在n很小時才是實(shí)用的。K.C.Tai提出了一種被稱為BRO(branchandrelationaloperator)測試的條件測試策略。如果在條件中所有布爾變量和關(guān)系算符都只出現(xiàn)一次而且沒有公共變量,則BRO測試保證能發(fā)現(xiàn)該條件中的分支錯和關(guān)系算符錯。C1:B1&B2{(t,f),(t,t),(f,f)}C2:B1&(E2=E3)

{(t,=),(f,=),(t,>),(t,<)}C3:(E1>E2)&(E3=E4){(>,=),(<,=),(=,=),(>,>),(>,<)}privatestringgetSiteName(stringstrNetNameValue){stringstrNetName="";intintNetNameLocation=strNetNameValue.IndexOf(".com");inti=intNetNameLocation;while(i>0){i--;stringstrTemp=strNetNameValue.Substring(i,1);if(strTemp==".")

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論