版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、把程序看成裝在一個(gè)透明的白盒子里,程序的結(jié)構(gòu)和處理把程序看成裝在一個(gè)透明的白盒子里,程序的結(jié)構(gòu)和處理 呈現(xiàn)過程完全可見,按照程序的內(nèi)部邏輯測試程序,以檢呈現(xiàn)過程完全可見,按照程序的內(nèi)部邏輯測試程序,以檢 查程序中的每條通路是否都能按照預(yù)先要求正確工作。查程序中的每條通路是否都能按照預(yù)先要求正確工作。 第第3章章 白盒測試方法白盒測試方法 2 路徑分析測試路徑分析測試3 分支條件測試、循環(huán)測試分支條件測試、循環(huán)測試4 其它測試類型其它測試類型5 主主 要要 內(nèi)內(nèi) 容容 綜合測試實(shí)例綜合測試實(shí)例 6 黑盒測試與白盒測試黑盒測試與白盒測試1 邏輯覆蓋測試邏輯覆蓋測試 白盒測試的常用方法白盒測試的常用
2、方法 邏輯覆蓋邏輯覆蓋 路徑分析路徑分析 測試測試 循環(huán)、條循環(huán)、條 件分支件分支 基本路徑測試基本路徑測試 v相關(guān)概念 1.基本路徑基本路徑 本質(zhì)上是從程序入口到出口的一些通路。之所以稱其為基本路徑,本質(zhì)上是從程序入口到出口的一些通路。之所以稱其為基本路徑, 原因在于可以通過對(duì)基本路徑進(jìn)行連接或者重復(fù)操作得到程序中原因在于可以通過對(duì)基本路徑進(jìn)行連接或者重復(fù)操作得到程序中 的其它路徑的其它路徑 2.控制流圖控制流圖 基于代碼結(jié)構(gòu)構(gòu)造的有向圖,可用于描述程序的控制結(jié)構(gòu)基于代碼結(jié)構(gòu)構(gòu)造的有向圖,可用于描述程序的控制結(jié)構(gòu) v測試思想 根據(jù)程序的控制流圖找出一個(gè)模塊所需測試的基本路徑,根據(jù)這根據(jù)程序的
3、控制流圖找出一個(gè)模塊所需測試的基本路徑,根據(jù)這 些基本路徑設(shè)計(jì)構(gòu)造相應(yīng)的測試用例些基本路徑設(shè)計(jì)構(gòu)造相應(yīng)的測試用例 基本路徑測試基本路徑測試 v設(shè)計(jì)步驟設(shè)計(jì)步驟 1.1. 根據(jù)模塊邏輯構(gòu)造根據(jù)模塊邏輯構(gòu)造控制流圖控制流圖(Flow GraphFlow Graph) 2.2. 計(jì)算控制流圖的計(jì)算控制流圖的環(huán)復(fù)雜度環(huán)復(fù)雜度 (Cyclomatic Complexity)(Cyclomatic Complexity) 3.3. 列出包含起始節(jié)點(diǎn)和終止節(jié)點(diǎn)的列出包含起始節(jié)點(diǎn)和終止節(jié)點(diǎn)的基本路徑基本路徑 4.4. 檢查一下列出的基本路徑數(shù)目檢查一下列出的基本路徑數(shù)目是否超過是否超過控制流圖的控制流圖的 環(huán)
4、復(fù)雜度環(huán)復(fù)雜度 5.5. 設(shè)計(jì)覆蓋這些基本路徑的設(shè)計(jì)覆蓋這些基本路徑的測試用例測試用例 控制流圖控制流圖 v說明說明 控制流圖是由控制流圖是由節(jié)點(diǎn)節(jié)點(diǎn)和和邊邊組成的有向圖組成的有向圖 1. 節(jié)點(diǎn)節(jié)點(diǎn)代表了代碼或程序流程圖中矩形框中所表示的代表了代碼或程序流程圖中矩形框中所表示的 處理,菱形表示的判斷處理以及判斷處理流程相交處理,菱形表示的判斷處理以及判斷處理流程相交 的匯合點(diǎn),在圖中用標(biāo)有編號(hào)的圓圈表示的匯合點(diǎn),在圖中用標(biāo)有編號(hào)的圓圈表示 2. 邊邊表明了控制的順序,在圖中用有向箭頭表示。表明了控制的順序,在圖中用有向箭頭表示。 控制流圖控制流圖 v三種邏輯結(jié)構(gòu)的控制流圖三種邏輯結(jié)構(gòu)的控制流圖
5、 順序條件 循環(huán) 控制流圖控制流圖 v 如果判定中的條件表達(dá)式是復(fù)合條件時(shí),即條件表如果判定中的條件表達(dá)式是復(fù)合條件時(shí),即條件表 達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符(達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符(OR,AND,NAND, NOR)連接的邏輯表達(dá)式,則需要改復(fù)合條件的判定)連接的邏輯表達(dá)式,則需要改復(fù)合條件的判定 為一系列只有單個(gè)條件的嵌套的判定。例如對(duì)應(yīng)為一系列只有單個(gè)條件的嵌套的判定。例如對(duì)應(yīng)圖圖 (a) 的復(fù)合條件的判定,應(yīng)該畫成如的復(fù)合條件的判定,應(yīng)該畫成如圖圖 (b) 所示的控制流所示的控制流 圖。圖。 條件語句條件語句 if a OR b 中條件中條件a和條件和條件b各有一個(gè)只各有一個(gè)只
6、有單個(gè)條件的判定結(jié)點(diǎn)。有單個(gè)條件的判定結(jié)點(diǎn)。 環(huán)復(fù)雜度環(huán)復(fù)雜度 v含義含義 用用V(G)表示表示 用來衡量一個(gè)模塊判定結(jié)構(gòu)的復(fù)雜程度,在數(shù)量上用來衡量一個(gè)模塊判定結(jié)構(gòu)的復(fù)雜程度,在數(shù)量上 表現(xiàn)為獨(dú)立的路徑條數(shù),是需要測試的基本路徑數(shù)表現(xiàn)為獨(dú)立的路徑條數(shù),是需要測試的基本路徑數(shù) 目的上限。目的上限。 環(huán)復(fù)雜度環(huán)復(fù)雜度 v 計(jì)算公式計(jì)算公式 1.V(G) = 閉合區(qū)域的數(shù)目閉合區(qū)域的數(shù)目 p由節(jié)點(diǎn)和邊圍成的封閉區(qū)域由節(jié)點(diǎn)和邊圍成的封閉區(qū)域 這些封閉區(qū)域一定是不可再分的這些封閉區(qū)域一定是不可再分的 包括周邊的區(qū)域包括周邊的區(qū)域 2.V(G) = 二值判定節(jié)點(diǎn)個(gè)數(shù)二值判定節(jié)點(diǎn)個(gè)數(shù) + 1. 3.V(G
7、) = 邊的數(shù)目邊的數(shù)目-節(jié)點(diǎn)的數(shù)目節(jié)點(diǎn)的數(shù)目 + 2 環(huán)復(fù)雜度環(huán)復(fù)雜度 v環(huán)復(fù)雜度環(huán)復(fù)雜度 閉合區(qū)域的數(shù)目閉合區(qū)域的數(shù)目 = 5 二值判定節(jié)點(diǎn)個(gè)數(shù)二值判定節(jié)點(diǎn)個(gè)數(shù) + 1 =4+1=5 邊的數(shù)目邊的數(shù)目-節(jié)點(diǎn)的數(shù)目節(jié)點(diǎn)的數(shù)目 + 2 = 16-13+2=5 基本路徑基本路徑 v 實(shí)用的定義實(shí)用的定義 一條路徑是基本路徑如果一條路徑是基本路徑如果: 1. 是一條從起始節(jié)點(diǎn)到終止節(jié)點(diǎn)的路徑是一條從起始節(jié)點(diǎn)到終止節(jié)點(diǎn)的路徑. 2. 至少包含一條其它基本路徑?jīng)]有包含的邊至少包含一條其它基本路徑?jīng)]有包含的邊. (至至 少引入一個(gè)新處理語句或一個(gè)新判斷的程序通少引入一個(gè)新處理語句或一個(gè)新判斷的程序通 路
8、路.) 注意:對(duì)于循環(huán)而言,基本路徑應(yīng)包含不執(zhí)行循注意:對(duì)于循環(huán)而言,基本路徑應(yīng)包含不執(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、的設(shè)計(jì)基本路徑測試用例的設(shè)計(jì) 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)部邏輯畫出相應(yīng)的流圖依據(jù)程序內(nèi)部邏輯畫出相應(yīng)的流圖 4 7 6 14 9 1012 13 R1 R2 R3 R4 基本路徑測試方法舉例基本路徑測試方法舉例 2.2.計(jì)算流
10、圖的環(huán)形復(fù)雜度(計(jì)算流圖的環(huán)形復(fù)雜度(McCabe定義的程序復(fù)定義的程序復(fù) 雜性度量值)雜性度量值) 計(jì)算環(huán)路復(fù)雜度的三種方法計(jì)算環(huán)路復(fù)雜度的三種方法 環(huán)路復(fù)雜度環(huán)路復(fù)雜度=邊數(shù)邊數(shù)-節(jié)點(diǎn)數(shù)節(jié)點(diǎn)數(shù)+2=10-8+2=4 環(huán)路復(fù)雜度環(huán)路復(fù)雜度=判斷節(jié)點(diǎn)數(shù)判斷節(jié)點(diǎn)數(shù)+1=3+1=4 環(huán)路復(fù)雜度環(huán)路復(fù)雜度=區(qū)域的數(shù)目區(qū)域的數(shù)目=4 可以計(jì)算上圖所示流圖的環(huán)形復(fù)雜度為可以計(jì)算上圖所示流圖的環(huán)形復(fù)雜度為4 4 基本路徑測試方法舉例基本路徑測試方法舉例 3.3.確定獨(dú)立路徑組成的基本路徑集合確定獨(dú)立路徑組成的基本路徑集合 程序的環(huán)形復(fù)雜度程序的環(huán)形復(fù)雜度 = = 程序中獨(dú)立路徑的數(shù)量程序中獨(dú)立路徑的數(shù)量
11、路徑路徑1 1: 4 414 14 路徑路徑2 2: 4671446714 路徑路徑3 3: 46910134144691013414 路徑路徑4 4: 46912134144691213414 4.4.設(shè)計(jì)出可強(qiáng)制執(zhí)行基本集合中每條路徑的測試用例設(shè)計(jì)出可強(qiáng)制執(zhí)行基本集合中每條路徑的測試用例 輸輸 入入 數(shù)數(shù) 據(jù)據(jù)預(yù)預(yù) 期期 輸輸 出出 測試用例測試用例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使用基本路徑設(shè)計(jì)測試用例方法推導(dǎo)三角形問題的測試用例使用基本路徑設(shè)計(jì)測試用例方法推導(dǎo)三角形問題的測試用例 控制流圖控制流圖 8 1 - 86 87 88 92 99-10093 102 95 96 9 7 - 98 8 9 - 90 94 環(huán)復(fù)雜度環(huán)復(fù)雜度 v環(huán)復(fù)雜度 閉合區(qū)域的數(shù)目閉合區(qū)域的數(shù)目 = 5 二值判定節(jié)點(diǎn)個(gè)數(shù)二值判定節(jié)點(diǎn)個(gè)數(shù) + 1 =4+1=5 邊的數(shù)目邊的數(shù)目-節(jié)點(diǎn)的數(shù)目節(jié)點(diǎn)的數(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 相應(yīng)的測試用例相應(yīng)的測試用例: 測試輸入測試輸入 = (68,68,56) 預(yù)期結(jié)果預(yù)期結(jié)果 = 這是一個(gè)等腰三角形!這是一個(gè)等腰三角形! 2.81-86-87-88-92-93 -95- 96-102 相應(yīng)的測試用例相應(yīng)的測試用例: 測試輸入測試輸入 = (68,60,56) 預(yù)期結(jié)果預(yù)期結(jié)果 = 這是一個(gè)不等邊三角形!這是一個(gè)不等邊三角形! 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 相應(yīng)的測試用例相應(yīng)的測試用例: 測試輸入測試輸入 = (68,68,68) 預(yù)期結(jié)果預(yù)期結(jié)果= 這是一個(gè)等邊三角形!這是一個(gè)等邊三角形! 4.81-86-87-89-90-92-99-100-102 相應(yīng)的測試用例相應(yīng)的測試用例: 測試輸入測試輸入 = (68,8,60) 預(yù)期結(jié)果預(yù)期結(jié)果= 這不是一個(gè)三角形!這不是一個(gè)三角形! 基本路徑和測試用例基本路徑和測試用例(2) 8 1 - 86 87 88 92 99-10093 102 95 96 9 7 -
15、98 8 9 - 90 94 基本路徑與環(huán)復(fù)雜度基本路徑與環(huán)復(fù)雜度 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 并不是所有的基本路徑都對(duì)應(yīng)程序的可執(zhí)行通路,并不是所有的基本路徑都對(duì)應(yīng)程序的可執(zhí)行通路, 都可作為設(shè)計(jì)測
16、試用例的依據(jù)。之所以存在這種都可作為設(shè)計(jì)測試用例的依據(jù)。之所以存在這種 情況,是因?yàn)榭刂屏鲌D中并不包含程序的處理信情況,是因?yàn)榭刂屏鲌D中并不包含程序的處理信 息,無法明確前后節(jié)點(diǎn)之間的邏輯關(guān)系。息,無法明確前后節(jié)點(diǎn)之間的邏輯關(guān)系。 基本路徑與環(huán)復(fù)雜度基本路徑與環(huán)復(fù)雜度 v 結(jié)論 如果基本路徑必須是可行的,則邏輯關(guān)系會(huì)壓縮如果基本路徑必須是可行的,則邏輯關(guān)系會(huì)壓縮 基本路徑集合數(shù)量,因此環(huán)復(fù)雜度是包含起始點(diǎn)基本路徑集合數(shù)量,因此環(huán)復(fù)雜度是包含起始點(diǎn) 和終止點(diǎn)的基本路徑數(shù)目的上限和終止點(diǎn)的基本路徑數(shù)目的上限 SWPUSWPU 案例分析案例分析3 已知程序代碼,根據(jù)基本路徑測試法,已知程序代碼,根據(jù)
17、基本路徑測試法, 導(dǎo)出測試用例導(dǎo)出測試用例 v 根據(jù)基本路徑測試法生成測試用例,確保根據(jù)基本路徑測試法生成測試用例,確保 基本路徑集中每條路徑的執(zhí)行。基本路徑集中每條路徑的執(zhí)行。 v 以一個(gè)求平均值的過程以一個(gè)求平均值的過程averagy為例,說為例,說 明測試用例的設(shè)計(jì)過程。用明測試用例的設(shè)計(jì)過程。用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) 由過程描述導(dǎo)出控制流圖由過程描述導(dǎo)出控制流圖 v 在上面給出的過程中,針對(duì)要映射為對(duì)在上面給出的過程中,針對(duì)要映射為對(duì) 應(yīng)控制流圖中一個(gè)結(jié)點(diǎn)的應(yīng)控制流圖中一個(gè)結(jié)點(diǎn)的PDL語句或語句組,語句或語句組, 標(biāo)記上用數(shù)字表示的標(biāo)號(hào)。加了標(biāo)號(hào)的標(biāo)記上用數(shù)字表示的標(biāo)號(hào)。加了標(biāo)號(hào)的PDL程程
20、序如下(只有可執(zhí)行語句部分):序如下(只有可執(zhí)行語句部分): v對(duì)應(yīng)的控對(duì)應(yīng)的控 制流圖如制流圖如 圖圖所示:所示: 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 后面的省略號(hào)(后面的省略號(hào)()表示在控)表示在控 制結(jié)構(gòu)中以后剩下的路徑是可選擇的。在很多情況下,標(biāo)制結(jié)構(gòu)中以后剩下的路徑是可選擇的。在很多情況下,標(biāo) 識(shí)判斷結(jié)點(diǎn),常常能夠有效地幫助導(dǎo)出測試用例。在上例識(shí)判斷結(jié)點(diǎn),常常能夠有效地幫助導(dǎo)出測試用例。在上例 中,結(jié)點(diǎn)中,結(jié)點(diǎn)2、3、5、6和和10都是判斷結(jié)點(diǎn)。都是判斷結(jié)點(diǎn)。 v滿足上例基本路徑集的測試用例是滿足上例基本路徑集的測試用例是: v path1: 輸入數(shù)據(jù):輸入數(shù)據(jù):valuek有效輸入,限于有效輸入,限于 ki(i定義如下)定義如下
22、) valuei999, 當(dāng)當(dāng) 2i100 預(yù)期結(jié)果:預(yù)期結(jié)果:n個(gè)值的正確的平均值、正確的總計(jì)數(shù)。個(gè)值的正確的平均值、正確的總計(jì)數(shù)。 注意:不能孤立地進(jìn)行測試,應(yīng)當(dāng)作為路徑注意:不能孤立地進(jìn)行測試,應(yīng)當(dāng)作為路徑4、5、6測試的一部分來測試。測試的一部分來測試。 path2: 輸入數(shù)據(jù):輸入數(shù)據(jù):value1999 預(yù)期結(jié)果:平均值預(yù)期結(jié)果:平均值999,總計(jì)數(shù)取初始值。,總計(jì)數(shù)取初始值。 path3: 輸入數(shù)據(jù):試圖處理輸入數(shù)據(jù):試圖處理101個(gè)或更多的值,而前個(gè)或更多的值,而前100個(gè)應(yīng)當(dāng)是有效的個(gè)應(yīng)當(dāng)是有效的 值。值。 預(yù)期結(jié)果:與測試用例預(yù)期結(jié)果:與測試用例1相同。相同。 v path
23、4: 輸入數(shù)據(jù):輸入數(shù)據(jù):valuei有效輸入,且有效輸入,且 i100 valuek最小值,當(dāng)最小值,當(dāng) ki 時(shí)時(shí) 預(yù)期結(jié)果:預(yù)期結(jié)果:n個(gè)值的正確的平均值,正確的總計(jì)數(shù)個(gè)值的正確的平均值,正確的總計(jì)數(shù) v path5: 輸入數(shù)據(jù):輸入數(shù)據(jù):valuei有效輸入,且有效輸入,且 i100 valuek最大值,當(dāng)最大值,當(dāng) ki 時(shí)時(shí) 預(yù)期結(jié)果:預(yù)期結(jié)果:n個(gè)值的正確的平均值,正確的總計(jì)數(shù)個(gè)值的正確的平均值,正確的總計(jì)數(shù) path6: 輸入數(shù)據(jù):輸入數(shù)據(jù):valuei有效輸入,且有效輸入,且 i100 預(yù)期結(jié)果:預(yù)期結(jié)果:n個(gè)值的正確的平均值,正確的總計(jì)數(shù)個(gè)值的正確的平均值,正確的總計(jì)數(shù) v
24、 每個(gè)測試用例執(zhí)行之后,與預(yù)期結(jié)果進(jìn)行比較。如果所有測試每個(gè)測試用例執(zhí)行之后,與預(yù)期結(jié)果進(jìn)行比較。如果所有測試 用例都執(zhí)行完畢,則可以確信程序中所有的可執(zhí)行語句至少被執(zhí)用例都執(zhí)行完畢,則可以確信程序中所有的可執(zhí)行語句至少被執(zhí) 行了一次。行了一次。 n使用邏輯覆蓋和基本路徑方法完成教材使用邏輯覆蓋和基本路徑方法完成教材P88頁第頁第7題:題: n(1) 分別以語句覆蓋、判定覆蓋、條件覆蓋、判定分別以語句覆蓋、判定覆蓋、條件覆蓋、判定/條件條件 覆蓋、條件組合覆蓋和路徑覆蓋方法設(shè)計(jì)測試用例,并覆蓋、條件組合覆蓋和路徑覆蓋方法設(shè)計(jì)測試用例,并 寫出每個(gè)測試用例的執(zhí)行路徑。寫出每個(gè)測試用例的執(zhí)行路徑。
25、 n(2) 畫出程序的控制流圖。用基本路徑測試方法設(shè)計(jì)測畫出程序的控制流圖。用基本路徑測試方法設(shè)計(jì)測 試用例。試用例。 T1 T2 T3 T4 TA TB n1. 要滿足語句覆蓋,執(zhí)行路徑通過:要滿足語句覆蓋,執(zhí)行路徑通過:12345 即可??稍O(shè)計(jì)測試用例:即可??稍O(shè)計(jì)測試用例: n A=4 B=0 X=8 (路徑路徑12345) n2. 要滿足判定覆蓋,兩個(gè)判定表達(dá)式的取真和取假分要滿足判定覆蓋,兩個(gè)判定表達(dá)式的取真和取假分 支都要走到,執(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. 要滿足條件覆蓋,每個(gè)判定中的每個(gè)條件的可能取要滿足條件覆蓋,每個(gè)判定中的每個(gè)條件的可能取 值都要取到,即:值都要取到,即:T1 T2 T3 T4 T1 T2 T3 T4。 觀察前面設(shè)計(jì)測試用例:觀察前面設(shè)計(jì)測試用例: 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個(gè)條件產(chǎn)生的個(gè)條件產(chǎn)生的8種情況。種情況。
27、n4. 可見,這組測試用例同時(shí)覆蓋了兩個(gè)判定的取真分可見,這組測試用例同時(shí)覆蓋了兩個(gè)判定的取真分 支和取假分支以及支和取假分支以及4個(gè)條件產(chǎn)生的個(gè)條件產(chǎn)生的8種情況,所以它們種情況,所以它們 滿足判定滿足判定-條件覆蓋的標(biāo)準(zhǔn)。條件覆蓋的標(biāo)準(zhǔn)。 n5. 要滿足條件組合覆蓋,每個(gè)判定中各條件的每一種組要滿足條件組合覆蓋,每個(gè)判定中各條件的每一種組 合至少要出現(xiàn)一次,在兩個(gè)判定中有合至少要出現(xiàn)一次,在兩個(gè)判定中有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設(shè)計(jì)測試用例:設(shè)計(jì)測試用例: (沿用前面兩個(gè)測試用例)(沿用前面兩個(gè)測試用例) 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。觀察條件組合覆蓋的測。觀察條件組合覆蓋的測 試用例,可以保留前三個(gè),再增加下面一個(gè)新的用例試用例,可以保留前三個(gè),再增加下面一個(gè)新的用例 即可:即可: 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 ) 設(shè)計(jì)的測試用例設(shè)計(jì)的測試用例 測試用例測試用例執(zhí)行路徑執(zhí)行路徑覆蓋條件覆蓋條件覆蓋組合號(hào)覆蓋組合號(hào) 語句覆蓋語句覆蓋 判定覆蓋判定覆蓋 條件覆蓋條件覆蓋 判定判定-條件覆蓋條件覆蓋 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)形復(fù)雜度流圖的環(huán)形復(fù)雜度=5 n確定獨(dú)立路徑的基本集合。確定獨(dú)立路徑的基本集合。 n路徑路徑1: 1 1-1 1-2 2 3-1 3-2 5 n輸入:輸入: A=3,B=0,X=3;預(yù)期輸出:;預(yù)期
32、輸出: X=1 n路徑路徑2: 1 1-1 3-1 3-2 5 n輸入:輸入: A=0,B=0 (任意任意) ,X=1;預(yù)期輸出:;預(yù)期輸出:X=1 n路徑路徑3: 1 1-1 1-2 3-1 3-2 5 n輸入:輸入: A=3,B=1,X=1;預(yù)期輸出:;預(yù)期輸出:X=1 n路徑路徑4: 1 1-1 1-2 2 3-1 4 5 n輸入:輸入:A=4,B=0,X=1;預(yù)期輸出:;預(yù)期輸出:X=1 n路徑路徑5: 1 1-1 1-2 2 3-1 3-2 4 5 n輸入:輸入:A=3,B=0,X=6;預(yù)期輸出:;預(yù)期輸出:X=3 n設(shè)計(jì)執(zhí)行基本路徑集合中每條路徑的測試用例。設(shè)計(jì)執(zhí)行基本路徑集合中每
33、條路徑的測試用例。 基本路徑測試基本路徑測試 v相關(guān)概念 1.基本路徑基本路徑 本質(zhì)上是從程序入口到出口的一些通路。之所以稱其為基本路徑,本質(zhì)上是從程序入口到出口的一些通路。之所以稱其為基本路徑, 原因在于可以通過對(duì)基本路徑進(jìn)行連接或者重復(fù)操作得到程序中原因在于可以通過對(duì)基本路徑進(jìn)行連接或者重復(fù)操作得到程序中 的其它路徑的其它路徑 2.控制流圖控制流圖 基于代碼結(jié)構(gòu)構(gòu)造的有向圖,可用于描述程序的控制結(jié)構(gòu)基于代碼結(jié)構(gòu)構(gòu)造的有向圖,可用于描述程序的控制結(jié)構(gòu) v測試思想 根據(jù)程序的控制流圖找出一個(gè)模塊所需測試的基本路徑,根據(jù)這根據(jù)程序的控制流圖找出一個(gè)模塊所需測試的基本路徑,根據(jù)這 些基本路徑設(shè)計(jì)構(gòu)
34、造相應(yīng)的測試用例些基本路徑設(shè)計(jì)構(gòu)造相應(yīng)的測試用例 總結(jié)總結(jié) v 基本路徑測試思想:基本路徑測試思想: 根據(jù)程序的控制流圖找出一個(gè)模塊所需測試的基本路徑,根據(jù)程序的控制流圖找出一個(gè)模塊所需測試的基本路徑, 根據(jù)這些基本路徑設(shè)計(jì)構(gòu)造相應(yīng)的測試用例根據(jù)這些基本路徑設(shè)計(jì)構(gòu)造相應(yīng)的測試用例 v 基本路徑測試設(shè)計(jì)步驟基本路徑測試設(shè)計(jì)步驟 1.1. 根據(jù)模塊邏輯構(gòu)造根據(jù)模塊邏輯構(gòu)造控制流圖控制流圖(Flow GraphFlow Graph) 2.2. 計(jì)算控制流圖的計(jì)算控制流圖的環(huán)復(fù)雜度環(huán)復(fù)雜度 (Cyclomatic Complexity) (Cyclomatic Complexity) 3.3. 列出包
35、含起始節(jié)點(diǎn)和終止節(jié)點(diǎn)的列出包含起始節(jié)點(diǎn)和終止節(jié)點(diǎn)的基本路徑基本路徑 4.4. 設(shè)計(jì)覆蓋這些基本路徑的設(shè)計(jì)覆蓋這些基本路徑的測試用例測試用例 其中第其中第1 1、3 3、4 4步是重難點(diǎn)。步是重難點(diǎn)。 4-46 綜合運(yùn)用白盒測試方法綜合運(yùn)用白盒測試方法 p綜合運(yùn)用白盒測試技術(shù)設(shè)計(jì)下面代碼的測試用例綜合運(yùn)用白盒測試技術(shù)設(shè)計(jì)下面代碼的測試用例 4-47 參考答案參考答案 p設(shè)計(jì)步驟設(shè)計(jì)步驟 1.構(gòu)造被測代碼的構(gòu)造被測代碼的控制流圖控制流圖,運(yùn)用基本路徑測試方法設(shè)計(jì),運(yùn)用基本路徑測試方法設(shè)計(jì) 相關(guān)測試用例相關(guān)測試用例 2.針對(duì)代碼中的各個(gè)邏輯條件,運(yùn)用針對(duì)代碼中的各個(gè)邏輯條件,運(yùn)用分支分支-條件測試條
36、件測試方法設(shè)方法設(shè) 計(jì)相關(guān)測試用例計(jì)相關(guān)測試用例 3.針對(duì)代碼中的循環(huán),運(yùn)用針對(duì)代碼中的循環(huán),運(yùn)用循環(huán)測試循環(huán)測試方法設(shè)計(jì)相關(guān)測試用方法設(shè)計(jì)相關(guān)測試用 例例 4.合并合并前三步所得結(jié)果前三步所得結(jié)果 5.在第四步的基礎(chǔ)上,根據(jù)被測對(duì)象的特點(diǎn)增加在第四步的基礎(chǔ)上,根據(jù)被測對(duì)象的特點(diǎn)增加相關(guān)相關(guān)測試測試 用例用例 4-48 以簡單條件為節(jié)點(diǎn)以簡單條件為節(jié)點(diǎn) 11 12 13 1 2 3 4 5 6 78 9 1 0 1 1 1 2 1 3 4-49 環(huán)復(fù)雜度環(huán)復(fù)雜度 p環(huán)復(fù)雜度環(huán)復(fù)雜度 n閉合區(qū)域的數(shù)目閉合區(qū)域的數(shù)目 = 6 n二值判定節(jié)點(diǎn)個(gè)數(shù)二值判定節(jié)點(diǎn)個(gè)數(shù) + 1 =5+1=6 n邊的數(shù)目邊的
37、數(shù)目-節(jié)點(diǎn)的數(shù)目節(jié)點(diǎn)的數(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基本路徑和相應(yīng)的測試用例基本路徑和相應(yīng)的測試用例 1.1-2-10-12-13(10-11?) 測試用例:測試用例: 測試輸入測試輸入 = (-999),0,360) 預(yù)期結(jié)果預(yù)期結(jié)果 = -999 2.1-2-3-10-11-13 測試用例測試用例 測試輸入測試輸入 = (0.100,- 999),0,360), 預(yù)期結(jié)果預(yù)期結(jié)果 = 49.5 1 2 3 4 5 6 78 9 1 0 1 1 1 2 1 3 4-51 基本路徑基本路徑
38、p基本路徑和相應(yīng)的測試用例基本路徑和相應(yīng)的測試用例 3.1-2-3-4-5-6-7-9-2- 10-11-13 測試用例:測試用例: 測試輸入測試輸入 = (180,-999),0,360), 預(yù)期結(jié)果預(yù)期結(jié)果 = 180 4.1-2-3-4-5-8-2-10- 12-13 測試用例:測試用例: 測試輸入測試輸入 = (-10,-999),0,360), 預(yù)期結(jié)果預(yù)期結(jié)果 = -999 1 2 3 4 5 6 78 9 1 0 1 1 1 2 1 3 4-52 基本路徑基本路徑 p基本路徑和相應(yīng)的測試用例基本路徑和相應(yīng)的測試用例 5.1-2-3-4-5-6- 8-2-10-12-13 測試用例
39、:測試用例: 測試輸入測試輸入 = (380,- 999),0,360), 預(yù)期結(jié)果預(yù)期結(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分支和相應(yīng)的測試用例分支和相應(yīng)的測試用例 p相應(yīng)的測試用例相應(yīng)的測試用例 1.測試輸入測試輸入 = (180,-999),0,360),預(yù)期結(jié)果,預(yù)期結(jié)果 = 180 2.測試輸入
40、測試輸入 = (-999),0,360),預(yù)期結(jié)果,預(yù)期結(jié)果 = -999 3.測試輸入測試輸入 = (0.100,-999),0,360),預(yù)期結(jié)果,預(yù)期結(jié)果 = 49.5 4-55 分支分支- -條件測試條件測試 p分支和相應(yīng)的測試用例分支和相應(yīng)的測試用例 p相應(yīng)的測試用例相應(yīng)的測試用例 1.測試輸入測試輸入 = (180,-999),0,360),預(yù)期結(jié)果,預(yù)期結(jié)果 = 180 2.測試輸入測試輸入 = (-10,-999),0,360),預(yù)期結(jié)果,預(yù)期結(jié)果 = -999 3.測試輸入測試輸入 = (380,-999),0,360),預(yù)期結(jié)果,預(yù)期結(jié)果 = -999 4-56 分支分支-
41、 -條件測試條件測試 p分支和相應(yīng)的測試用例分支和相應(yīng)的測試用例 p相應(yīng)的測試用例相應(yīng)的測試用例 1.測試輸入測試輸入 = (180,-999),0,360),預(yù)期結(jié)果,預(yù)期結(jié)果 = 180 2.測試輸入測試輸入 = (-999),0,360),預(yù)期結(jié)果,預(yù)期結(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),預(yù)期結(jié)果,預(yù)期結(jié)果 = -999 2.只執(zhí)行一遍循環(huán)體只執(zhí)行一遍循環(huán)體 測試用例:測試輸入測試用例:測試輸入 = (180,-999),0,360),預(yù)期結(jié)果,預(yù)期結(jié)果 = 180 3.連續(xù)執(zhí)行兩遍循環(huán)體連續(xù)執(zhí)行兩遍循環(huán)體 測試用例:測試輸入測試用例:測試輸入 = (10,20,-999),0,360),預(yù)期結(jié)果,預(yù)期結(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人房屋租賃擔(dān)保合同模板4篇
- 2024蘋果加工副產(chǎn)品深加工技術(shù)研發(fā)合同3篇
- 2025年度彩色激光打印機(jī)租賃及升級(jí)服務(wù)合同模板3篇
- 雪人的創(chuàng)意課程設(shè)計(jì)
- 年度雕刻雕銑設(shè)備控制系統(tǒng)競爭策略分析報(bào)告
- 2025年獼猴桃種植技術(shù)培訓(xùn)土地租賃與農(nóng)民增收合同4篇
- 2025年度個(gè)人二手房交易合同模板環(huán)保裝修服務(wù)版3篇
- 2025年離婚風(fēng)險(xiǎn)防范:協(xié)議離婚與訴訟離婚適用條件合同3篇
- 二零二五年度苗木出口業(yè)務(wù)代理銷售合同4篇
- 二零二五版智能門窗控制系統(tǒng)集成與安裝服務(wù)合同4篇
- 醫(yī)院三基考核試題(康復(fù)理療科)
- 2024-2030年中國招標(biāo)代理行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報(bào)告
- 醫(yī)師定期考核 (公共衛(wèi)生)試題庫500題(含答案)
- 基因突變和基因重組(第1課時(shí))高一下學(xué)期生物人教版(2019)必修2
- 內(nèi)科學(xué)(醫(yī)學(xué)高級(jí)):風(fēng)濕性疾病試題及答案(強(qiáng)化練習(xí))
- 音樂劇好看智慧樹知到期末考試答案2024年
- 辦公設(shè)備(電腦、一體機(jī)、投影機(jī)等)采購 投標(biāo)方案(技術(shù)方案)
- 案卷評(píng)查培訓(xùn)課件模板
- 2024年江蘇省樣卷五年級(jí)數(shù)學(xué)上冊(cè)期末試卷及答案
- 人教版初中英語七八九全部單詞(打印版)
- 波浪理論要點(diǎn)圖解完美版
評(píng)論
0/150
提交評(píng)論