第08課--白盒測試(2)—路徑分析測試(基本路徑測試)_第1頁
第08課--白盒測試(2)—路徑分析測試(基本路徑測試)_第2頁
第08課--白盒測試(2)—路徑分析測試(基本路徑測試)_第3頁
第08課--白盒測試(2)—路徑分析測試(基本路徑測試)_第4頁
第08課--白盒測試(2)—路徑分析測試(基本路徑測試)_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、把程序看成裝在一個透明的白盒子里,程序的結(jié)構(gòu)和處理把程序看成裝在一個透明的白盒子里,程序的結(jié)構(gòu)和處理 呈現(xiàn)過程完全可見,按照程序的內(nèi)部邏輯測試程序,以檢呈現(xiàn)過程完全可見,按照程序的內(nèi)部邏輯測試程序,以檢 查程序中的每條通路是否都能按照預先要求正確工作。查程序中的每條通路是否都能按照預先要求正確工作。 第第3章章 白盒測試方法白盒測試方法 2 路徑分析測試路徑分析測試3 分支條件測試、循環(huán)測試分支條件測試、循環(huán)測試4 其它測試類型其它測試類型5 主主 要要 內(nèi)內(nèi) 容容 綜合測試實例綜合測試實例 6 黑盒測試與白盒測試黑盒測試與白盒測試1 邏輯覆蓋測試邏輯覆蓋測試 白盒測試的常用方法白盒測試的常用

2、方法 邏輯覆蓋邏輯覆蓋 路徑分析路徑分析 測試測試 循環(huán)、條循環(huán)、條 件分支件分支 基本路徑測試基本路徑測試 v相關概念 1.基本路徑基本路徑 本質(zhì)上是從程序入口到出口的一些通路。之所以稱其為基本路徑,本質(zhì)上是從程序入口到出口的一些通路。之所以稱其為基本路徑, 原因在于可以通過對基本路徑進行連接或者重復操作得到程序中原因在于可以通過對基本路徑進行連接或者重復操作得到程序中 的其它路徑的其它路徑 2.控制流圖控制流圖 基于代碼結(jié)構(gòu)構(gòu)造的有向圖,可用于描述程序的控制結(jié)構(gòu)基于代碼結(jié)構(gòu)構(gòu)造的有向圖,可用于描述程序的控制結(jié)構(gòu) v測試思想 根據(jù)程序的控制流圖找出一個模塊所需測試的基本路徑,根據(jù)這根據(jù)程序的

3、控制流圖找出一個模塊所需測試的基本路徑,根據(jù)這 些基本路徑設計構(gòu)造相應的測試用例些基本路徑設計構(gòu)造相應的測試用例 基本路徑測試基本路徑測試 v設計步驟設計步驟 1.1. 根據(jù)模塊邏輯構(gòu)造根據(jù)模塊邏輯構(gòu)造控制流圖控制流圖(Flow GraphFlow Graph) 2.2. 計算控制流圖的計算控制流圖的環(huán)復雜度環(huán)復雜度 (Cyclomatic Complexity)(Cyclomatic Complexity) 3.3. 列出包含起始節(jié)點和終止節(jié)點的列出包含起始節(jié)點和終止節(jié)點的基本路徑基本路徑 4.4. 檢查一下列出的基本路徑數(shù)目檢查一下列出的基本路徑數(shù)目是否超過是否超過控制流圖的控制流圖的 環(huán)

4、復雜度環(huán)復雜度 5.5. 設計覆蓋這些基本路徑的設計覆蓋這些基本路徑的測試用例測試用例 控制流圖控制流圖 v說明說明 控制流圖是由控制流圖是由節(jié)點節(jié)點和和邊邊組成的有向圖組成的有向圖 1. 節(jié)點節(jié)點代表了代碼或程序流程圖中矩形框中所表示的代表了代碼或程序流程圖中矩形框中所表示的 處理,菱形表示的判斷處理以及判斷處理流程相交處理,菱形表示的判斷處理以及判斷處理流程相交 的匯合點,在圖中用標有編號的圓圈表示的匯合點,在圖中用標有編號的圓圈表示 2. 邊邊表明了控制的順序,在圖中用有向箭頭表示。表明了控制的順序,在圖中用有向箭頭表示。 控制流圖控制流圖 v三種邏輯結(jié)構(gòu)的控制流圖三種邏輯結(jié)構(gòu)的控制流圖

5、 順序條件 循環(huán) 控制流圖控制流圖 v 如果判定中的條件表達式是復合條件時,即條件表如果判定中的條件表達式是復合條件時,即條件表 達式是由一個或多個邏輯運算符(達式是由一個或多個邏輯運算符(OR,AND,NAND, NOR)連接的邏輯表達式,則需要改復合條件的判定)連接的邏輯表達式,則需要改復合條件的判定 為一系列只有單個條件的嵌套的判定。例如對應為一系列只有單個條件的嵌套的判定。例如對應圖圖 (a) 的復合條件的判定,應該畫成如的復合條件的判定,應該畫成如圖圖 (b) 所示的控制流所示的控制流 圖。圖。 條件語句條件語句 if a OR b 中條件中條件a和條件和條件b各有一個只各有一個只

6、有單個條件的判定結(jié)點。有單個條件的判定結(jié)點。 環(huán)復雜度環(huán)復雜度 v含義含義 用用V(G)表示表示 用來衡量一個模塊判定結(jié)構(gòu)的復雜程度,在數(shù)量上用來衡量一個模塊判定結(jié)構(gòu)的復雜程度,在數(shù)量上 表現(xiàn)為獨立的路徑條數(shù),是需要測試的基本路徑數(shù)表現(xiàn)為獨立的路徑條數(shù),是需要測試的基本路徑數(shù) 目的上限。目的上限。 環(huán)復雜度環(huán)復雜度 v 計算公式計算公式 1.V(G) = 閉合區(qū)域的數(shù)目閉合區(qū)域的數(shù)目 p由節(jié)點和邊圍成的封閉區(qū)域由節(jié)點和邊圍成的封閉區(qū)域 這些封閉區(qū)域一定是不可再分的這些封閉區(qū)域一定是不可再分的 包括周邊的區(qū)域包括周邊的區(qū)域 2.V(G) = 二值判定節(jié)點個數(shù)二值判定節(jié)點個數(shù) + 1. 3.V(G

7、) = 邊的數(shù)目邊的數(shù)目-節(jié)點的數(shù)目節(jié)點的數(shù)目 + 2 環(huán)復雜度環(huán)復雜度 v環(huán)復雜度環(huán)復雜度 閉合區(qū)域的數(shù)目閉合區(qū)域的數(shù)目 = 5 二值判定節(jié)點個數(shù)二值判定節(jié)點個數(shù) + 1 =4+1=5 邊的數(shù)目邊的數(shù)目-節(jié)點的數(shù)目節(jié)點的數(shù)目 + 2 = 16-13+2=5 基本路徑基本路徑 v 實用的定義實用的定義 一條路徑是基本路徑如果一條路徑是基本路徑如果: 1. 是一條從起始節(jié)點到終止節(jié)點的路徑是一條從起始節(jié)點到終止節(jié)點的路徑. 2. 至少包含一條其它基本路徑?jīng)]有包含的邊至少包含一條其它基本路徑?jīng)]有包含的邊. (至至 少引入一個新處理語句或一個新判斷的程序通少引入一個新處理語句或一個新判斷的程序通 路

8、路.) 注意:對于循環(huán)而言,基本路徑應包含不執(zhí)行循注意:對于循環(huán)而言,基本路徑應包含不執(zhí)行循 環(huán)和執(zhí)行一次循環(huán)體。環(huán)和執(zhí)行一次循環(huán)體。 基本路徑基本路徑 v 基本路徑基本路徑 1.1. 1-2-111-2-11 2.2. 1-2-3-4-5-6-10-2-111-2-3-4-5-6-10-2-11 3.3. 1-2-3-4-5-7-10-2-111-2-3-4-5-7-10-2-11 4.4. 1-2-3-8-9-10-2-111-2-3-8-9-10-2-11 5.5. 1-2-3-8-10-2-111-2-3-8-10-2-11 基本路徑測試方法舉例基本路徑測試方法舉例 v基本路徑測試用例

9、的設計基本路徑測試用例的設計 void sort (int irecordnum, int itype) 1 2 int x=0; 3 int y=0; 4 while (irecordnum- 0) 5 6 if (itype=0) 7 break; 8 else 9 if (itype=1) 10 x=x+10; 11 else 12 y=y+20; 13 14 基本路徑測試方法舉例基本路徑測試方法舉例 1.1.依據(jù)程序內(nèi)部邏輯畫出相應的流圖依據(jù)程序內(nèi)部邏輯畫出相應的流圖 4 7 6 14 9 1012 13 R1 R2 R3 R4 基本路徑測試方法舉例基本路徑測試方法舉例 2.2.計算流

10、圖的環(huán)形復雜度(計算流圖的環(huán)形復雜度(McCabe定義的程序復定義的程序復 雜性度量值)雜性度量值) 計算環(huán)路復雜度的三種方法計算環(huán)路復雜度的三種方法 環(huán)路復雜度環(huán)路復雜度=邊數(shù)邊數(shù)-節(jié)點數(shù)節(jié)點數(shù)+2=10-8+2=4 環(huán)路復雜度環(huán)路復雜度=判斷節(jié)點數(shù)判斷節(jié)點數(shù)+1=3+1=4 環(huán)路復雜度環(huán)路復雜度=區(qū)域的數(shù)目區(qū)域的數(shù)目=4 可以計算上圖所示流圖的環(huán)形復雜度為可以計算上圖所示流圖的環(huán)形復雜度為4 4 基本路徑測試方法舉例基本路徑測試方法舉例 3.3.確定獨立路徑組成的基本路徑集合確定獨立路徑組成的基本路徑集合 程序的環(huán)形復雜度程序的環(huán)形復雜度 = = 程序中獨立路徑的數(shù)量程序中獨立路徑的數(shù)量

11、路徑路徑1 1: 4 414 14 路徑路徑2 2: 4671446714 路徑路徑3 3: 46910134144691013414 路徑路徑4 4: 46912134144691213414 4.4.設計出可強制執(zhí)行基本集合中每條路徑的測試用例設計出可強制執(zhí)行基本集合中每條路徑的測試用例 輸輸 入入 數(shù)數(shù) 據(jù)據(jù)預預 期期 輸輸 出出 測試用例測試用例1 1 irecordnum=0 itype=0 x=0 y=0 測試用例測試用例2 2 irecordnum=1 itype=0 x=0 y=0 測試用例測試用例3 3 irecordnum=1 itype=1 x=10 y=0 測試用例測試

12、用例4 4 irecordnum=1 itype=2 x=0 y=20 案例案例2三角形問題三角形問題 v使用基本路徑設計測試用例方法推導三角形問題的測試用例使用基本路徑設計測試用例方法推導三角形問題的測試用例 控制流圖控制流圖 8 1 - 86 87 88 92 99-10093 102 95 96 9 7 - 98 8 9 - 90 94 環(huán)復雜度環(huán)復雜度 v環(huán)復雜度 閉合區(qū)域的數(shù)目閉合區(qū)域的數(shù)目 = 5 二值判定節(jié)點個數(shù)二值判定節(jié)點個數(shù) + 1 =4+1=5 邊的數(shù)目邊的數(shù)目-節(jié)點的數(shù)目節(jié)點的數(shù)目 + 2 = 15-12+2=5 8 1 - 86 87 88 92 99-10093 10

13、2 95 96 9 7 - 98 8 9 - 90 94 基本路徑和測試用例(基本路徑和測試用例(1) v基本路徑和測試用例 1.81-86-87-88-92-93 -95- 97-98-102 相應的測試用例相應的測試用例: 測試輸入測試輸入 = (68,68,56) 預期結(jié)果預期結(jié)果 = 這是一個等腰三角形!這是一個等腰三角形! 2.81-86-87-88-92-93 -95- 96-102 相應的測試用例相應的測試用例: 測試輸入測試輸入 = (68,60,56) 預期結(jié)果預期結(jié)果 = 這是一個不等邊三角形!這是一個不等邊三角形! 8 1 - 86 87 88 92 99-10093 1

14、02 95 96 9 7 - 98 8 9 - 90 94 v基本路徑和測試用例 3.81-86-87-88-92-93 -94-102 相應的測試用例相應的測試用例: 測試輸入測試輸入 = (68,68,68) 預期結(jié)果預期結(jié)果= 這是一個等邊三角形!這是一個等邊三角形! 4.81-86-87-89-90-92-99-100-102 相應的測試用例相應的測試用例: 測試輸入測試輸入 = (68,8,60) 預期結(jié)果預期結(jié)果= 這不是一個三角形!這不是一個三角形! 基本路徑和測試用例基本路徑和測試用例(2) 8 1 - 86 87 88 92 99-10093 102 95 96 9 7 -

15、98 8 9 - 90 94 基本路徑與環(huán)復雜度基本路徑與環(huán)復雜度 1. 81-86-87-88-92-99-100-102 2. 81-86-87-88-92-93-95-97- 98-102 3. 81-86-87-88-92-93-95-96- 102 4. 81-86-87-88-92-93-94-102 5. 81-86-87-89-90-92-93-94- 102 8 1 - 86 87 88 92 99-10093 102 95 96 9 7 - 98 8 9 - 90 94 并不是所有的基本路徑都對應程序的可執(zhí)行通路,并不是所有的基本路徑都對應程序的可執(zhí)行通路, 都可作為設計測

16、試用例的依據(jù)。之所以存在這種都可作為設計測試用例的依據(jù)。之所以存在這種 情況,是因為控制流圖中并不包含程序的處理信情況,是因為控制流圖中并不包含程序的處理信 息,無法明確前后節(jié)點之間的邏輯關系。息,無法明確前后節(jié)點之間的邏輯關系。 基本路徑與環(huán)復雜度基本路徑與環(huán)復雜度 v 結(jié)論 如果基本路徑必須是可行的,則邏輯關系會壓縮如果基本路徑必須是可行的,則邏輯關系會壓縮 基本路徑集合數(shù)量,因此環(huán)復雜度是包含起始點基本路徑集合數(shù)量,因此環(huán)復雜度是包含起始點 和終止點的基本路徑數(shù)目的上限和終止點的基本路徑數(shù)目的上限 SWPUSWPU 案例分析案例分析3 已知程序代碼,根據(jù)基本路徑測試法,已知程序代碼,根據(jù)

17、基本路徑測試法, 導出測試用例導出測試用例 v 根據(jù)基本路徑測試法生成測試用例,確保根據(jù)基本路徑測試法生成測試用例,確保 基本路徑集中每條路徑的執(zhí)行?;韭窂郊忻織l路徑的執(zhí)行。 v 以一個求平均值的過程以一個求平均值的過程averagy為例,說為例,說 明測試用例的設計過程。用明測試用例的設計過程。用PDL語言描述的語言描述的 averagy過程如下:過程如下: v PROCEDURE averagy; * This procedure computes the averagy of 100 or fewer numbers that liebounding values; it also

18、computes the total input and the total valid. v INTERFACE RETURNS averagy, total.input, total.valid; INTERFACE ACCEPTS value, minimum, maximum; v v TYPE value1:100 IS SCALAR ARRAY; TYPE averagy, total.input, total.valid, minimum, maximum, sum IS SCALAR; TYPE i IS INTEGER; v i = 1; total.input = tota

19、l.valid = 0; sum = 0; DO WHILE valuei -999 AND total.input = minimum AND valuei 0 THEN averagy = sum / total.valid; ELSE averagy = -999; ENDIF END averagy v(1) 由過程描述導出控制流圖由過程描述導出控制流圖 v 在上面給出的過程中,針對要映射為對在上面給出的過程中,針對要映射為對 應控制流圖中一個結(jié)點的應控制流圖中一個結(jié)點的PDL語句或語句組,語句或語句組, 標記上用數(shù)字表示的標號。加了標號的標記上用數(shù)字表示的標號。加了標號的PDL程程

20、序如下(只有可執(zhí)行語句部分):序如下(只有可執(zhí)行語句部分): v對應的控對應的控 制流圖如制流圖如 圖圖所示:所示: v 該圖所有的該圖所有的6條路徑是條路徑是: path1:1 - 2 - 10 - 11 - 13 path2:1 - 2 - 10 - 12 - 13 path3:1 - 2 - 3 - 10 - 11 - 13 path4:1 - 2 - 3 - 4 - 5 - 8 - 9 - 2 - 10 - 11 - 13 path5:1 - 2 - 3 - 4 - 5 - 6 - 8 - 9 - 2 - 10 - 12 - 13 path6:1 - 2 - 3 - 4 - 5 - 6

21、 - 7 - 8 - 9 - 2- 3 - 10 - 11 - 13 path4、path5、path6 后面的省略號(后面的省略號()表示在控)表示在控 制結(jié)構(gòu)中以后剩下的路徑是可選擇的。在很多情況下,標制結(jié)構(gòu)中以后剩下的路徑是可選擇的。在很多情況下,標 識判斷結(jié)點,常常能夠有效地幫助導出測試用例。在上例識判斷結(jié)點,常常能夠有效地幫助導出測試用例。在上例 中,結(jié)點中,結(jié)點2、3、5、6和和10都是判斷結(jié)點。都是判斷結(jié)點。 v滿足上例基本路徑集的測試用例是滿足上例基本路徑集的測試用例是: v path1: 輸入數(shù)據(jù):輸入數(shù)據(jù):valuek有效輸入,限于有效輸入,限于 ki(i定義如下)定義如下

22、) valuei999, 當當 2i100 預期結(jié)果:預期結(jié)果:n個值的正確的平均值、正確的總計數(shù)。個值的正確的平均值、正確的總計數(shù)。 注意:不能孤立地進行測試,應當作為路徑注意:不能孤立地進行測試,應當作為路徑4、5、6測試的一部分來測試。測試的一部分來測試。 path2: 輸入數(shù)據(jù):輸入數(shù)據(jù):value1999 預期結(jié)果:平均值預期結(jié)果:平均值999,總計數(shù)取初始值。,總計數(shù)取初始值。 path3: 輸入數(shù)據(jù):試圖處理輸入數(shù)據(jù):試圖處理101個或更多的值,而前個或更多的值,而前100個應當是有效的個應當是有效的 值。值。 預期結(jié)果:與測試用例預期結(jié)果:與測試用例1相同。相同。 v path

23、4: 輸入數(shù)據(jù):輸入數(shù)據(jù):valuei有效輸入,且有效輸入,且 i100 valuek最小值,當最小值,當 ki 時時 預期結(jié)果:預期結(jié)果:n個值的正確的平均值,正確的總計數(shù)個值的正確的平均值,正確的總計數(shù) v path5: 輸入數(shù)據(jù):輸入數(shù)據(jù):valuei有效輸入,且有效輸入,且 i100 valuek最大值,當最大值,當 ki 時時 預期結(jié)果:預期結(jié)果:n個值的正確的平均值,正確的總計數(shù)個值的正確的平均值,正確的總計數(shù) path6: 輸入數(shù)據(jù):輸入數(shù)據(jù):valuei有效輸入,且有效輸入,且 i100 預期結(jié)果:預期結(jié)果:n個值的正確的平均值,正確的總計數(shù)個值的正確的平均值,正確的總計數(shù) v

24、 每個測試用例執(zhí)行之后,與預期結(jié)果進行比較。如果所有測試每個測試用例執(zhí)行之后,與預期結(jié)果進行比較。如果所有測試 用例都執(zhí)行完畢,則可以確信程序中所有的可執(zhí)行語句至少被執(zhí)用例都執(zhí)行完畢,則可以確信程序中所有的可執(zhí)行語句至少被執(zhí) 行了一次。行了一次。 n使用邏輯覆蓋和基本路徑方法完成教材使用邏輯覆蓋和基本路徑方法完成教材P88頁第頁第7題:題: n(1) 分別以語句覆蓋、判定覆蓋、條件覆蓋、判定分別以語句覆蓋、判定覆蓋、條件覆蓋、判定/條件條件 覆蓋、條件組合覆蓋和路徑覆蓋方法設計測試用例,并覆蓋、條件組合覆蓋和路徑覆蓋方法設計測試用例,并 寫出每個測試用例的執(zhí)行路徑。寫出每個測試用例的執(zhí)行路徑。

25、 n(2) 畫出程序的控制流圖。用基本路徑測試方法設計測畫出程序的控制流圖。用基本路徑測試方法設計測 試用例。試用例。 T1 T2 T3 T4 TA TB n1. 要滿足語句覆蓋,執(zhí)行路徑通過:要滿足語句覆蓋,執(zhí)行路徑通過:12345 即可??稍O計測試用例:即可??稍O計測試用例: n A=4 B=0 X=8 (路徑路徑12345) n2. 要滿足判定覆蓋,兩個判定表達式的取真和取假分要滿足判定覆蓋,兩個判定表達式的取真和取假分 支都要走到,執(zhí)行路徑通過:支都要走到,執(zhí)行路徑通過:135 和和 12345即可:即可: n1: A=4 B=0 X=8 (路徑路徑12345 覆蓋條件覆蓋條件: TA

26、 TB) n2: A=1 B=1 X=1 (路徑路徑135 覆蓋條件覆蓋條件: TA TB) n3. 要滿足條件覆蓋,每個判定中的每個條件的可能取要滿足條件覆蓋,每個判定中的每個條件的可能取 值都要取到,即:值都要取到,即:T1 T2 T3 T4 T1 T2 T3 T4。 觀察前面設計測試用例:觀察前面設計測試用例: n1: A=4 B=0 X=8 (路徑路徑12345 覆蓋條件覆蓋條件: T1 T2 T3 T4) n2: A=1 B=1 X=1 (路徑路徑135 覆蓋條件覆蓋條件: T1 T2 T3 T4) n上述測試用例覆蓋了上述測試用例覆蓋了4個條件產(chǎn)生的個條件產(chǎn)生的8種情況。種情況。

27、n4. 可見,這組測試用例同時覆蓋了兩個判定的取真分可見,這組測試用例同時覆蓋了兩個判定的取真分 支和取假分支以及支和取假分支以及4個條件產(chǎn)生的個條件產(chǎn)生的8種情況,所以它們種情況,所以它們 滿足判定滿足判定-條件覆蓋的標準。條件覆蓋的標準。 n5. 要滿足條件組合覆蓋,每個判定中各條件的每一種組要滿足條件組合覆蓋,每個判定中各條件的每一種組 合至少要出現(xiàn)一次,在兩個判定中有合至少要出現(xiàn)一次,在兩個判定中有8種可能的組合:種可能的組合: n A2, B=0: T1, T2 A2, B0: T1, T2 n A2, B=0: T1, T2 A2, B0 : T1, T2 n A=4, X1: T

28、3, T4 A=4, X1: T3, T4 n A4, X1: T3, T4 A4, X1: T3, T4 n設計測試用例:設計測試用例: (沿用前面兩個測試用例)(沿用前面兩個測試用例) n1: A=4 B=0 X=8 (路徑路徑12345 覆蓋條件覆蓋條件: T1 T2 T3 T4 ) n2: A=1 B=1 X=1 (路徑路徑135 覆蓋條件覆蓋條件: T1 T2 T3 T4 ) n3: A=4 B=1 X=1 (路徑路徑1345 覆蓋條件覆蓋條件: T1 T2 T3 T4 ) n4: A=0 B=0 X=4 (路徑路徑1345 覆蓋條件覆蓋條件: T1 T2 T3 T4 ) n6. 要

29、滿足路徑覆蓋,每一條可能的路徑至少執(zhí)行一次,要滿足路徑覆蓋,每一條可能的路徑至少執(zhí)行一次, 可能的路徑包括:可能的路徑包括:135; 12345; 1345; 1235。觀察條件組合覆蓋的測。觀察條件組合覆蓋的測 試用例,可以保留前三個,再增加下面一個新的用例試用例,可以保留前三個,再增加下面一個新的用例 即可:即可: n1: A=1 B=1 X=1 (路徑路徑135 覆蓋條件覆蓋條件: T1 T2 T3 T4 ) n2: A=4 B=0 X=8 (路徑路徑12345 覆蓋條件覆蓋條件: T1 T2 T3 T4 ) n3: A=4 B=1 X=1 (路徑路徑1345 覆蓋條件覆蓋條件: T1

30、T2 T3 T4 ) n4: A=3 B=0 X=0 (路徑路徑1235 覆蓋條件覆蓋條件: T1 T2 T3 T4 ) 設計的測試用例設計的測試用例 測試用例測試用例執(zhí)行路徑執(zhí)行路徑覆蓋條件覆蓋條件覆蓋組合號覆蓋組合號 語句覆蓋語句覆蓋 判定覆蓋判定覆蓋 條件覆蓋條件覆蓋 判定判定-條件覆蓋條件覆蓋 A=1 B=1 X=1 A=4 B=0 X=8 13 5 1234 5 TA TB T1 T2 T3 T4 TA TB T1 T2 T3 T4 條件組合覆蓋條件組合覆蓋 A=1 B=1 X=1 A=4 B=0 X=8 A=4 B=1 X=1 A=0 B=0 X=4 13 5 1234 5 134

31、5 1345 T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4 路徑覆蓋路徑覆蓋 A=1 B=1 X=1 A=4 B=0 X=8 A=4 B=1 X=1 A=3 B=0 X=0 13 5 1234 5 1345 1235 T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4 n基本路徑數(shù):基本路徑數(shù): n流圖的環(huán)形復雜度流圖的環(huán)形復雜度=5 n確定獨立路徑的基本集合。確定獨立路徑的基本集合。 n路徑路徑1: 1 1-1 1-2 2 3-1 3-2 5 n輸入:輸入: A=3,B=0,X=3;預期輸出:;預期

32、輸出: X=1 n路徑路徑2: 1 1-1 3-1 3-2 5 n輸入:輸入: A=0,B=0 (任意任意) ,X=1;預期輸出:;預期輸出:X=1 n路徑路徑3: 1 1-1 1-2 3-1 3-2 5 n輸入:輸入: A=3,B=1,X=1;預期輸出:;預期輸出:X=1 n路徑路徑4: 1 1-1 1-2 2 3-1 4 5 n輸入:輸入:A=4,B=0,X=1;預期輸出:;預期輸出:X=1 n路徑路徑5: 1 1-1 1-2 2 3-1 3-2 4 5 n輸入:輸入:A=3,B=0,X=6;預期輸出:;預期輸出:X=3 n設計執(zhí)行基本路徑集合中每條路徑的測試用例。設計執(zhí)行基本路徑集合中每

33、條路徑的測試用例。 基本路徑測試基本路徑測試 v相關概念 1.基本路徑基本路徑 本質(zhì)上是從程序入口到出口的一些通路。之所以稱其為基本路徑,本質(zhì)上是從程序入口到出口的一些通路。之所以稱其為基本路徑, 原因在于可以通過對基本路徑進行連接或者重復操作得到程序中原因在于可以通過對基本路徑進行連接或者重復操作得到程序中 的其它路徑的其它路徑 2.控制流圖控制流圖 基于代碼結(jié)構(gòu)構(gòu)造的有向圖,可用于描述程序的控制結(jié)構(gòu)基于代碼結(jié)構(gòu)構(gòu)造的有向圖,可用于描述程序的控制結(jié)構(gòu) v測試思想 根據(jù)程序的控制流圖找出一個模塊所需測試的基本路徑,根據(jù)這根據(jù)程序的控制流圖找出一個模塊所需測試的基本路徑,根據(jù)這 些基本路徑設計構(gòu)

34、造相應的測試用例些基本路徑設計構(gòu)造相應的測試用例 總結(jié)總結(jié) v 基本路徑測試思想:基本路徑測試思想: 根據(jù)程序的控制流圖找出一個模塊所需測試的基本路徑,根據(jù)程序的控制流圖找出一個模塊所需測試的基本路徑, 根據(jù)這些基本路徑設計構(gòu)造相應的測試用例根據(jù)這些基本路徑設計構(gòu)造相應的測試用例 v 基本路徑測試設計步驟基本路徑測試設計步驟 1.1. 根據(jù)模塊邏輯構(gòu)造根據(jù)模塊邏輯構(gòu)造控制流圖控制流圖(Flow GraphFlow Graph) 2.2. 計算控制流圖的計算控制流圖的環(huán)復雜度環(huán)復雜度 (Cyclomatic Complexity) (Cyclomatic Complexity) 3.3. 列出包

35、含起始節(jié)點和終止節(jié)點的列出包含起始節(jié)點和終止節(jié)點的基本路徑基本路徑 4.4. 設計覆蓋這些基本路徑的設計覆蓋這些基本路徑的測試用例測試用例 其中第其中第1 1、3 3、4 4步是重難點。步是重難點。 4-46 綜合運用白盒測試方法綜合運用白盒測試方法 p綜合運用白盒測試技術(shù)設計下面代碼的測試用例綜合運用白盒測試技術(shù)設計下面代碼的測試用例 4-47 參考答案參考答案 p設計步驟設計步驟 1.構(gòu)造被測代碼的構(gòu)造被測代碼的控制流圖控制流圖,運用基本路徑測試方法設計,運用基本路徑測試方法設計 相關測試用例相關測試用例 2.針對代碼中的各個邏輯條件,運用針對代碼中的各個邏輯條件,運用分支分支-條件測試條

36、件測試方法設方法設 計相關測試用例計相關測試用例 3.針對代碼中的循環(huán),運用針對代碼中的循環(huán),運用循環(huán)測試循環(huán)測試方法設計相關測試用方法設計相關測試用 例例 4.合并合并前三步所得結(jié)果前三步所得結(jié)果 5.在第四步的基礎上,根據(jù)被測對象的特點增加在第四步的基礎上,根據(jù)被測對象的特點增加相關相關測試測試 用例用例 4-48 以簡單條件為節(jié)點以簡單條件為節(jié)點 11 12 13 1 2 3 4 5 6 78 9 1 0 1 1 1 2 1 3 4-49 環(huán)復雜度環(huán)復雜度 p環(huán)復雜度環(huán)復雜度 n閉合區(qū)域的數(shù)目閉合區(qū)域的數(shù)目 = 6 n二值判定節(jié)點個數(shù)二值判定節(jié)點個數(shù) + 1 =5+1=6 n邊的數(shù)目邊的

37、數(shù)目-節(jié)點的數(shù)目節(jié)點的數(shù)目 + 2 = 17-13+2=6 1 2 3 4 5 6 78 9 1 0 1 1 1 2 1 3 4-50 基本路徑基本路徑 p基本路徑和相應的測試用例基本路徑和相應的測試用例 1.1-2-10-12-13(10-11?) 測試用例:測試用例: 測試輸入測試輸入 = (-999),0,360) 預期結(jié)果預期結(jié)果 = -999 2.1-2-3-10-11-13 測試用例測試用例 測試輸入測試輸入 = (0.100,- 999),0,360), 預期結(jié)果預期結(jié)果 = 49.5 1 2 3 4 5 6 78 9 1 0 1 1 1 2 1 3 4-51 基本路徑基本路徑

38、p基本路徑和相應的測試用例基本路徑和相應的測試用例 3.1-2-3-4-5-6-7-9-2- 10-11-13 測試用例:測試用例: 測試輸入測試輸入 = (180,-999),0,360), 預期結(jié)果預期結(jié)果 = 180 4.1-2-3-4-5-8-2-10- 12-13 測試用例:測試用例: 測試輸入測試輸入 = (-10,-999),0,360), 預期結(jié)果預期結(jié)果 = -999 1 2 3 4 5 6 78 9 1 0 1 1 1 2 1 3 4-52 基本路徑基本路徑 p基本路徑和相應的測試用例基本路徑和相應的測試用例 5.1-2-3-4-5-6- 8-2-10-12-13 測試用例

39、:測試用例: 測試輸入測試輸入 = (380,- 999),0,360), 預期結(jié)果預期結(jié)果 = -999 1 2 3 4 5 6 78 9 1 0 1 1 1 2 1 3 4-53 分支分支- -條件測試條件測試 p需測試的邏輯條件需測試的邏輯條件 1.Do while ( valuei!=-999) &(inputNumber=minimum) & (valuei 0 4-54 分支分支- -條件測試條件測試 p分支和相應的測試用例分支和相應的測試用例 p相應的測試用例相應的測試用例 1.測試輸入測試輸入 = (180,-999),0,360),預期結(jié)果,預期結(jié)果 = 180 2.測試輸入

40、測試輸入 = (-999),0,360),預期結(jié)果,預期結(jié)果 = -999 3.測試輸入測試輸入 = (0.100,-999),0,360),預期結(jié)果,預期結(jié)果 = 49.5 4-55 分支分支- -條件測試條件測試 p分支和相應的測試用例分支和相應的測試用例 p相應的測試用例相應的測試用例 1.測試輸入測試輸入 = (180,-999),0,360),預期結(jié)果,預期結(jié)果 = 180 2.測試輸入測試輸入 = (-10,-999),0,360),預期結(jié)果,預期結(jié)果 = -999 3.測試輸入測試輸入 = (380,-999),0,360),預期結(jié)果,預期結(jié)果 = -999 4-56 分支分支-

41、 -條件測試條件測試 p分支和相應的測試用例分支和相應的測試用例 p相應的測試用例相應的測試用例 1.測試輸入測試輸入 = (180,-999),0,360),預期結(jié)果,預期結(jié)果 = 180 2.測試輸入測試輸入 = (-999),0,360),預期結(jié)果,預期結(jié)果 = -999 4-57 循環(huán)測試循環(huán)測試 p需測試的循環(huán)條件需測試的循環(huán)條件 nDo while ( valuei!=-999) &(inputNumber100) 1.直接跳過循環(huán)體直接跳過循環(huán)體 測試用例:測試輸入測試用例:測試輸入 = (-999),0,360),預期結(jié)果,預期結(jié)果 = -999 2.只執(zhí)行一遍循環(huán)體只執(zhí)行一遍循環(huán)體 測試用例:測試輸入測試用例:測試輸入 = (180,-999),0,360),預期結(jié)果,預期結(jié)果 = 180 3.連續(xù)執(zhí)行兩遍循環(huán)體連續(xù)執(zhí)行兩遍循環(huán)體 測試用例:測試輸入測試用例:測試輸入 = (10,20,-999),0,360),預期結(jié)果,預期結(jié)果 = 15 4-58 循環(huán)測試循環(huán)測試 p需測試的循環(huán)條件需測試的循環(huán)條件 nDo while ( valuei!=-999) &(inputNumber100) 4.如果循環(huán)次數(shù)為如果循環(huán)次數(shù)為n,執(zhí)行,執(zhí)行m

溫馨提示

  • 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

提交評論