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

下載本文檔

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

文檔簡介

1、控制結(jié)構(gòu)測試控制結(jié)構(gòu)測試1. 基本路徑測試v基本路徑測試是基本路徑測試是tom mccabe提出的一種白盒測試提出的一種白盒測試技術(shù)。技術(shù)。v使用這種技術(shù)設(shè)計測試用例時,首先計算程序的環(huán)使用這種技術(shù)設(shè)計測試用例時,首先計算程序的環(huán)形復雜度,并用該復雜度為指南定義執(zhí)行路徑的基形復雜度,并用該復雜度為指南定義執(zhí)行路徑的基本集合。本集合。流圖流圖 為了突出表示程序的控制流,人們通常使用流為了突出表示程序的控制流,人們通常使用流圖圖(也稱為程序圖也稱為程序圖)。所謂流圖實質(zhì)上是。所謂流圖實質(zhì)上是“退化了的退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不程序流程圖,它僅僅描繪程序的控制流程,完全不

2、表現(xiàn)對數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。表現(xiàn)對數(shù)據(jù)的具體操作以及分支或循環(huán)的具體條件。 在流圖中用圓表示結(jié)點,一個圓代表一條或多在流圖中用圓表示結(jié)點,一個圓代表一條或多條語句。程序流程圖中的一個順序的處理框序列和條語句。程序流程圖中的一個順序的處理框序列和一個菱形判定框,可以映射成流圖中的一個結(jié)點。一個菱形判定框,可以映射成流圖中的一個結(jié)點。v流圖中的箭頭線稱為邊,它和程序流程圖中的箭頭流圖中的箭頭線稱為邊,它和程序流程圖中的箭頭線類似,代表控制流。線類似,代表控制流。v當過程設(shè)計中包含復合條件時,應(yīng)該把復合條件分當過程設(shè)計中包含復合條件時,應(yīng)該把復合條件分解為若干個簡單條件,每個簡單條

3、件對應(yīng)流圖中一解為若干個簡單條件,每個簡單條件對應(yīng)流圖中一個結(jié)點。個結(jié)點。例子:procedure average;/* 這個過程計算不超過這個過程計算不超過100個在規(guī)定值域內(nèi)的有效數(shù)字的平均值;同時計算個在規(guī)定值域內(nèi)的有效數(shù)字的平均值;同時計算有效數(shù)字的總和及個數(shù)。有效數(shù)字的總和及個數(shù)。*/interface returns average, total.input, total.valid; interface accepts value, minimum, maximum; type value1100 is scalar array; type average, total.inpu

4、t, total.valid; minimum,maximum, sum is scalar; type i is integer;1: i=1;total.input=total.valid=0;sum=0;2: do while valuei -9993: and total.input=minimum6: and valuei011: then average=sum/total.valid;12: else average=-999;13: endif end average程序流程圖如右圖所示程序流程圖如右圖所示使用基本路徑測試技術(shù)設(shè)計測試用例的步驟如下:使用基本路徑測試技術(shù)設(shè)計測試

5、用例的步驟如下: 第一步,根據(jù)過程設(shè)計結(jié)果畫出相應(yīng)的流圖。第一步,根據(jù)過程設(shè)計結(jié)果畫出相應(yīng)的流圖。求平均值過程的流圖求平均值過程的流圖第二步,計算流圖的環(huán)形復雜度。第二步,計算流圖的環(huán)形復雜度。 環(huán)形復雜度定量度量程序的邏輯復雜性。環(huán)形復雜度定量度量程序的邏輯復雜性。v描繪程序控制流的流圖之后,可以用下述描繪程序控制流的流圖之后,可以用下述3種方法種方法中的任何一種來計算環(huán)形復雜度。中的任何一種來計算環(huán)形復雜度。 (1) 流圖中的區(qū)域數(shù)等于環(huán)形復雜度。流圖中的區(qū)域數(shù)等于環(huán)形復雜度。 (2) 流圖流圖g的環(huán)形復雜度的環(huán)形復雜度v(g)=e-n+2,其中,其中,e是流圖中邊的條數(shù),是流圖中邊的條數(shù)

6、,n是結(jié)點數(shù)。是結(jié)點數(shù)。 (3) 流圖流圖g的環(huán)形復雜度的環(huán)形復雜度v(g)=p+1,其中,其中,p是流圖中判定結(jié)點的數(shù)目。是流圖中判定結(jié)點的數(shù)目。 v可計算得,上例的復雜度為可計算得,上例的復雜度為6。v第三步,確定線性獨立路徑的基本集合。第三步,確定線性獨立路徑的基本集合。v所謂獨立路徑是指至少引入程序的一個新處理語句所謂獨立路徑是指至少引入程序的一個新處理語句集合或一個新條件的路徑,用流圖術(shù)語描述,獨立集合或一個新條件的路徑,用流圖術(shù)語描述,獨立路徑至少包含一條在定義該路徑之前不曾用過的邊。路徑至少包含一條在定義該路徑之前不曾用過的邊。v使用基本路徑測試用例時,程序的環(huán)形復雜度決定使用基

7、本路徑測試用例時,程序的環(huán)形復雜度決定了程序中獨立路徑的數(shù)量。了程序中獨立路徑的數(shù)量。v由該理論,圖由該理論,圖5.6中存在中存在6條獨立路徑,它們分別為:條獨立路徑,它們分別為:1-2-10-11-131-2-10-12-131-2-3-10-11-131-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è)計可強制執(zhí)行基本集合中每條路徑第四步,設(shè)計可強制執(zhí)行基本集合中每條路徑的測試用例。的測試用例。 應(yīng)該選取測試數(shù)據(jù)使得在測試每條路徑時都適應(yīng)該選取測試數(shù)據(jù)使得在測試每條路徑時都適當?shù)卦O(shè)置好了各個判定結(jié)點的條件。當?shù)卦O(shè)

8、置好了各個判定結(jié)點的條件。 一旦執(zhí)行完所有測試用例,就可以確保程序中一旦執(zhí)行完所有測試用例,就可以確保程序中所有語句都至少被執(zhí)行了一次,而且每個條件都分所有語句都至少被執(zhí)行了一次,而且每個條件都分別取過別取過true值和值和false值。值。2. 條件測試v用條件測試技術(shù)設(shè)計出的測試用例,能夠檢查程序用條件測試技術(shù)設(shè)計出的測試用例,能夠檢查程序模塊中包含的邏輯條件。模塊中包含的邏輯條件。v關(guān)系表達式的形式如下:關(guān)系表達式的形式如下:e1e2 其中,其中,e1和和e2是算術(shù)表達式,而是算術(shù)表達式,而是是下列算符之一:下列算符之一:“”或或“”。v復合條件由兩個或多個簡單條件、布爾算符和括弧復合條

9、件由兩個或多個簡單條件、布爾算符和括弧組成。組成。v布爾算符有布爾算符有or(“|”),),and(“&”)和)和not。v不包含關(guān)系表達式的條件稱為布爾表達式。不包含關(guān)系表達式的條件稱為布爾表達式。v條件成分的類型包括布爾算符、布爾變量、布爾括條件成分的類型包括布爾算符、布爾變量、布爾括弧(括住簡單條件或復合條件)、關(guān)系算符及算術(shù)?。ɡㄗ『唵螚l件或復合條件)、關(guān)系算符及算術(shù)表達式。表達式。vapoint.secondpoint = n | apoint.secondpoint = ns | apoint.secondpoint = nr | apoint.secondpoint =

10、v | apoint.secondpoint = vn | apoint.secondpoint = b“vintcount 1 & strspliti!= strlabelv(strtemp = | strtemp = 【) & i strcontentvalue.length - 1vstrtemp = t | strtemp = r | strtemp = n | booiflabel | strtemp = | strtemp = “booiflabel 是布爾變量是布爾變量如果條件不正確,則至少條件的一個成分不正確。因如果條件不正確,則至少條件的一個成分不正確。因此,

11、條件錯誤的類型如下:此,條件錯誤的類型如下:v布爾算符錯(布爾算符不正確,遺漏布爾算符或有多余的布布爾算符錯(布爾算符不正確,遺漏布爾算符或有多余的布爾算符)爾算符)v布爾變量錯布爾變量錯v布爾括弧錯布爾括弧錯v關(guān)系算符錯關(guān)系算符錯v算術(shù)表達式錯算術(shù)表達式錯v條件測試的目的不僅是檢測程序條件中的錯誤,而條件測試的目的不僅是檢測程序條件中的錯誤,而且是檢測程序中的其他錯誤。且是檢測程序中的其他錯誤。v如果程序如果程序p的測試集能有效地檢測的測試集能有效地檢測p中條件的錯誤,中條件的錯誤,則它很可能也可以有效地檢測則它很可能也可以有效地檢測p中的其他錯誤。中的其他錯誤。v如果一個測試策略對檢測條件

12、錯誤是有效的,則很如果一個測試策略對檢測條件錯誤是有效的,則很可能該策略對檢測程序的其他錯誤也是有效的。可能該策略對檢測程序的其他錯誤也是有效的。v分支測試可能是最簡單的條件測試策略:對于復合分支測試可能是最簡單的條件測試策略:對于復合條件條件c來說,來說,c的真分支和假分支以及的真分支和假分支以及c中的每個簡中的每個簡單條件,都應(yīng)該至少執(zhí)行一次。單條件,都應(yīng)該至少執(zhí)行一次。v e1e2v包含包含n個變量的布爾表達式需要個變量的布爾表達式需要2n個測試。這個策個測試。這個策略可以發(fā)現(xiàn)布爾算符、變量和括弧的錯誤,但是,略可以發(fā)現(xiàn)布爾算符、變量和括弧的錯誤,但是,該策略僅在該策略僅在n很小時才是實用的。很小時才是實用的。vk.c.tai提出了一種被稱為提出了一種被稱為bro(branch and relational operator)測試的條件測試策略。如果在測試的條件測試策略。如果在條件中所有布爾變量和關(guān)系算符都只出現(xiàn)一次而且條件中所有布爾變量和關(guān)系算符都只出現(xiàn)一次而且沒有公共變量,則沒有公共變量,則bro測試保證能發(fā)現(xiàn)該條件中的測試保證能發(fā)現(xiàn)該條件中的分支錯和關(guān)系算符錯。分支錯和關(guān)系算符錯。vc1:b1&b2 (t,f),(t,t),(f,f)vc2:b1&(e2=e3) (t,=),(f,=),(t,),(t,e2)&(e3=e

溫馨提示

  • 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

提交評論