基本路徑測(cè)試_第1頁(yè)
基本路徑測(cè)試_第2頁(yè)
基本路徑測(cè)試_第3頁(yè)
基本路徑測(cè)試_第4頁(yè)
基本路徑測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、白盒測(cè)試的測(cè)試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測(cè)試法、域測(cè)試、符號(hào)測(cè)試、Z路徑覆蓋、程序變異。其中運(yùn)用最為廣泛的是基本路徑測(cè)試法?;韭窂綔y(cè)試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中程序的每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次。在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測(cè)試用例。包括以下4個(gè)步驟和一個(gè)工具方法:1. 程序的控制流圖:描述程序控制流的一種圖示方法。2. 程序圈復(fù)雜度:McCabe復(fù)雜性度量。從程序的環(huán)路復(fù)雜性可導(dǎo)出程

2、序基本路徑集合中的獨(dú)立路徑條數(shù),這是確定程序中每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次所必須的測(cè)試用例數(shù)目的上界。3. 導(dǎo)出測(cè)試用例:根據(jù)圈復(fù)雜度和程序結(jié)構(gòu)設(shè)計(jì)用例數(shù)據(jù)輸入和預(yù)期結(jié)果。4. 準(zhǔn)備測(cè)試用例:確保基本路徑集中的每一條路徑的執(zhí)行。工具方法:圖形矩陣:是在基本路徑測(cè)試中起輔助作用的軟件工具,利用它可以實(shí)現(xiàn)自動(dòng)地確定一個(gè)基本路徑集。程序的控制流圖:描述程序控制流的一種圖示方法。圓圈稱為控制流圖的一個(gè)結(jié)點(diǎn),表示一個(gè)或多個(gè)無(wú)分支的語(yǔ)句或源程序語(yǔ)句           流圖只有二種圖形符號(hào):圖中的每

3、一個(gè)圓稱為流圖的結(jié)點(diǎn),代表一條或多條語(yǔ)句。流圖中的箭頭稱為邊或連接,代表控制流任何過程設(shè)計(jì)都要被翻譯成控制流圖。如何根據(jù)程序流程圖畫出控制流程圖?在將程序流程圖簡(jiǎn)化成控制流圖時(shí),應(yīng)注意:n 在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個(gè)匯聚結(jié)點(diǎn)。n 邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的區(qū)域也應(yīng)記為一個(gè)區(qū)域。如下頁(yè)圖所示       n 如果判斷中的條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符 (OR, AND, NAND, NOR) 連接的復(fù)合條件表達(dá)式,則需要改為一系列只有單條件的嵌套的判斷。例如:1 if a or b

4、2 x3 else4 y對(duì)應(yīng)的邏輯為:        獨(dú)立路徑:至少沿一條新的邊移動(dòng)的路徑        基本路徑測(cè)試法的步驟:o 第一步:畫出控制流圖流程圖用來(lái)描述程序控制結(jié)構(gòu)??蓪⒘鞒虉D映射到一個(gè)相應(yīng)的流圖(假設(shè)流程圖的菱形決定框中不包含復(fù)合條件)。在流圖中,每一個(gè)圓,稱為流圖的結(jié)點(diǎn),代表一個(gè)或多個(gè)語(yǔ)句。一個(gè)處理方框序列和一個(gè)菱形決測(cè)框可被映射為一個(gè)結(jié)點(diǎn),流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條邊必須終止于一個(gè)結(jié)點(diǎn),即使該結(jié)點(diǎn)

5、并不代表任何語(yǔ)句(例如:if-else-then結(jié)構(gòu))。由邊和結(jié)點(diǎn)限定的范圍稱為區(qū)域。計(jì)算區(qū)域時(shí)應(yīng)包括圖外部的范圍。          畫出其程序流程圖和對(duì)應(yīng)的控制流圖如下           第二步:計(jì)算圈復(fù)雜度圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測(cè)度的軟件度量,將該度量用于計(jì)算程序的基本的獨(dú)立路徑數(shù)目,為確保所有語(yǔ)句至少執(zhí)行一次的測(cè)試數(shù)量的上界。獨(dú)立路徑必須包含一條在定義之前不曾用到的邊。有以下三種方

6、法計(jì)算圈復(fù)雜度:流圖中區(qū)域的數(shù)量對(duì)應(yīng)于環(huán)型的復(fù)雜性;給定流圖G的圈復(fù)雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量,N是流圖中結(jié)點(diǎn)的數(shù)量;給定流圖G的圈復(fù)雜度V(G),定義為V(G)=P+1,P是流圖G中判定結(jié)點(diǎn)的數(shù)量。            第三步:導(dǎo)出測(cè)試用例根據(jù)上面的計(jì)算方法,可得出四個(gè)獨(dú)立的路徑。(一條獨(dú)立路徑是指,和其他的獨(dú)立路徑相比,至少引入一個(gè)新處理語(yǔ)句或一個(gè)新判斷的程序通路。V(G)值正好等于該程序的獨(dú)立路徑的條數(shù)。)ü 路徑1:4-14

7、2; 路徑2:4-6-7-14ü 路徑3:4-6-8-10-13-4-14ü 路徑4:4-6-8-11-13-4-14根據(jù)上面的獨(dú)立路徑,去設(shè)計(jì)輸入數(shù)據(jù),使程序分別執(zhí)行到上面四條路徑。o 第四步:準(zhǔn)備測(cè)試用例為了確保基本路徑集中的每一條路徑的執(zhí)行,根據(jù)判斷結(jié)點(diǎn)給出的條件,選擇適當(dāng)?shù)臄?shù)據(jù)以保證某一條路徑可以被測(cè)試到,滿足上面例子基本路徑集的測(cè)試用例是:          舉例說(shuō)明:例:下例程序流程圖描述了最多輸入50個(gè)值(以1作為輸入結(jié)束標(biāo)志),計(jì)算其中有效的學(xué)生分?jǐn)?shù)的個(gè)數(shù)、總分?jǐn)?shù)和平均

8、值。           步驟1:導(dǎo)出過程的流圖。           步驟2:確定環(huán)形復(fù)雜性度量V(G):1)V(G)= 6 (個(gè)區(qū)域)2)V(G)=EN+2=1612+2=6其中E為流圖中的邊數(shù),N為結(jié)點(diǎn)數(shù);3)V(G)=P+1=5+1=6其中P為謂詞結(jié)點(diǎn)的個(gè)數(shù)。在流圖中,結(jié)點(diǎn)2、3、5、6、9是謂詞結(jié)點(diǎn)。步驟3:確定基本路徑集合(即獨(dú)立路徑集合)。于是可確定6條獨(dú)立的路徑:路徑1:1-2-9

9、-10-12路徑2:1-2-9-11-12路徑3:1-2-3-9-10-12路徑4:1-2-3-4-5-8-2路徑5:1-2-3-4-5-6-8-2路徑6:1-2-3-4-5-6-7-8-2步驟4:為每一條獨(dú)立路徑各設(shè)計(jì)一組測(cè)試用例,以便強(qiáng)迫程序沿著該路徑至少執(zhí)行一次。1)路徑1(1-2-9-10-12)的測(cè)試用例:scorek=有效分?jǐn)?shù)值,當(dāng)k < i ;scorei=1, 2i50;期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分average。2)路徑2(1-2-9-11-12)的測(cè)試用例:score 1 = 1 ;期望的結(jié)果:average = 1 ,其他量

10、保持初值。3)路徑3(1-2-3-9-10-12)的測(cè)試用例:輸入多于50個(gè)有效分?jǐn)?shù),即試圖處理51個(gè)分?jǐn)?shù),要求前51個(gè)為有效分?jǐn)?shù);期望結(jié)果:n1=50、且算出正確的總分和平均分。4)路徑4(1-2-3-4-5-8-2)的測(cè)試用例:scorei=有效分?jǐn)?shù),當(dāng)i<50;scorek<0, k< i ;期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分average。            連接權(quán)為“1”表示存在一個(gè)連接,在圖中如果一行有兩個(gè)或更多的元

11、素“1”,則這行所代表的結(jié)點(diǎn)一定是一個(gè)判定結(jié)點(diǎn),通過連接矩陣中有兩個(gè)以上(包括兩個(gè))元素為“1”的個(gè)數(shù),就可以得到確定該圖圈復(fù)雜度的另一種算法。2.3.3 基本路徑測(cè)試法基本路徑測(cè)試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行的路徑集合,從而設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中程序的每個(gè)執(zhí)行語(yǔ)句至少執(zhí)行一次?;韭窂綔y(cè)試法的重點(diǎn)內(nèi)容如下:程序的控制流圖:描述程序控制流的一種圖示方法。程序環(huán)形復(fù)雜度:McCabe復(fù)雜性度量。從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基本路徑集合中的獨(dú)立路徑條數(shù),這是確定程序中每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次所必需的測(cè)試用例數(shù)目的上界。導(dǎo)出測(cè)

12、試用例:根據(jù)圈復(fù)雜度和程序結(jié)構(gòu)設(shè)計(jì)用例數(shù)據(jù)輸入和預(yù)期結(jié)果。準(zhǔn)備測(cè)試用例:確保基本路徑集中的每一條路徑的執(zhí)行。程序控制流圖(可簡(jiǎn)稱流圖)是對(duì)程序流程圖進(jìn)行簡(jiǎn)化后得到的,它突出表示程序控制流的結(jié)構(gòu)。程序控制流圖是描述程序控制流的一種方式,其要點(diǎn)如下:1)圖形符號(hào):圓圈代表一個(gè)結(jié)點(diǎn),表示一個(gè)或多個(gè)無(wú)分支的語(yǔ)句或源程序語(yǔ)句。2)程序控制流邊和點(diǎn)圈定的部分叫做區(qū)域。當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的一個(gè)部分也應(yīng)記為一個(gè)區(qū)域。3)判斷語(yǔ)句中的條件為復(fù)合條件(即條件表達(dá)式由一個(gè)或多個(gè)邏輯運(yùn)算符連接的邏輯表達(dá)式(a and b))時(shí),則需要改變復(fù)合條件的判斷為一系列只有單個(gè)條件的嵌套的判斷。結(jié)點(diǎn)由帶標(biāo)號(hào)的圓圈表示,可代

13、表一個(gè)或多個(gè)語(yǔ)句、一個(gè)處理框序列和一個(gè)條件判定框(假設(shè)不包含復(fù)合條件)。控制流線由帶箭頭的弧或線表示,可稱為邊,它代表程序中的控制流。為了滿足路徑覆蓋,必須首先確定具體的路徑以及路徑的個(gè)數(shù)。我們通常采用控制流圖的邊(弧)序列和節(jié)點(diǎn)列表示某一條具體路徑。路徑測(cè)試就是從一個(gè)程序的入口開始,執(zhí)行所經(jīng)歷的各個(gè)語(yǔ)句的完整過程。任何關(guān)于路徑分析的測(cè)試都可以叫做路徑測(cè)試。完成路徑測(cè)試的理想情況是做到路徑覆蓋,但對(duì)于復(fù)雜性高的程序要做到所有路徑覆蓋(測(cè)試所有可執(zhí)行路徑)是不可能的。在不能實(shí)現(xiàn)所有路徑覆蓋的前提下,如果某一程序的每一個(gè)獨(dú)立路徑都被測(cè)試過,那么可以認(rèn)為程序中的每個(gè)語(yǔ)句都已經(jīng)檢驗(yàn)過了,即達(dá)到了語(yǔ)句覆

14、蓋。這種測(cè)試方法就是通常所說(shuō)的基本路徑測(cè)試方法?;韭窂綔y(cè)試方法是在控制流圖的基礎(chǔ)上,通過分析控制結(jié)構(gòu)的環(huán)形復(fù)雜度,導(dǎo)出執(zhí)行路徑的基本集,再?gòu)脑摶炯O(shè)計(jì)測(cè)試用例?;韭窂綔y(cè)試方法包括以下4個(gè)步驟:1)畫出程序的控制流圖。2)計(jì)算程序的環(huán)形復(fù)雜度,導(dǎo)出程序基本路徑集中的獨(dú)立路徑條數(shù),這是確定程序中每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次所必需的測(cè)試用例數(shù)目的上界。3)導(dǎo)出基本路徑集,確定程序的獨(dú)立路徑。4)根據(jù)步驟3)中的獨(dú)立路徑,設(shè)計(jì)測(cè)試用例的輸入數(shù)據(jù)和預(yù)期輸出。程序控制流圖如圖2-4所示。 (點(diǎn)擊查看大圖)圖2-4 程序控制流程程序的環(huán)形復(fù)雜度也稱為圈復(fù)雜度,它是一種為程序邏輯復(fù)雜度提供定量尺

15、度的軟件度量。將環(huán)形復(fù)雜度用于基本路徑方法,可以提供程序基本集的獨(dú)立路徑數(shù)量,確保所有語(yǔ)句至少執(zhí)行一次測(cè)試。獨(dú)立路徑是指程序中至少引入了一個(gè)新的處理語(yǔ)句集合或一個(gè)新條件的程序通路,包括一組以前沒有處理的語(yǔ)句或條件的一條路徑。通常環(huán)形復(fù)雜度以圖論為基礎(chǔ),提供軟件度量??捎萌缦路椒▉?lái)計(jì)算環(huán)形復(fù)雜度:1)控制流圖中區(qū)域的數(shù)量對(duì)應(yīng)于環(huán)形復(fù)雜度。2)給定控制流圖G的環(huán)形復(fù)雜度V(G),其定義為:V(G)= E-N+2其中,E是控制流圖中邊的數(shù)量,N是控制流圖中的節(jié)點(diǎn)數(shù)量。計(jì)算環(huán)形復(fù)雜度如圖2-5所示。 圖2-5 計(jì)算環(huán)形復(fù)雜度圖計(jì)算結(jié)果為節(jié)點(diǎn)數(shù)量N=8,導(dǎo)出邊的數(shù)量E=10(用、編號(hào)表示),V

16、(G)= E-N+2=10-8+2= 10(條邊)- 8(個(gè)節(jié)點(diǎn))+ 2 = 4,導(dǎo)出獨(dú)立路徑用路徑1、路徑2、路徑3、路徑4編號(hào)表示。四、基本路徑測(cè)試如果把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),例如,程序中的循環(huán)體只執(zhí)行零次和一次,就成為基本路徑測(cè)試。它是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中,程序的每一個(gè)可執(zhí)行語(yǔ)句至少要執(zhí)行一次。1.程序的控制流圖控制流圖是描述程序控制流的一種圖示方法。基本控制構(gòu)造的圖形符號(hào)如圖10-4-7所示。符號(hào)稱為控制流圖的一個(gè)結(jié)點(diǎn),一組順序處理框可以映射為一個(gè)單一的結(jié)點(diǎn)??刂屏鲌D

17、中的箭頭稱為邊,它表示了控制流的方向,在選擇或多分支結(jié)構(gòu)中分支的匯聚處,即使沒有執(zhí)行語(yǔ)句也應(yīng)該有一個(gè)匯聚結(jié)點(diǎn)。邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的區(qū)域也應(yīng)記為一個(gè)區(qū)域。圖 10-4-7控制流圖的各種圖形符號(hào)如果判定中的條件表達(dá)式是復(fù)合條件時(shí),即條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符(OR,AND,NAND,NOR)連接的邏輯表達(dá)式,則需要改復(fù)合條件的判定為一系列只有單個(gè)條件的嵌套的判定。例如對(duì)應(yīng)圖 10-4-8(a)的復(fù)合條件的判定,應(yīng)該畫成如圖 10-4-8(b)所示的控制流圖。條件語(yǔ)句ifaORb中條件a和條件b各有一個(gè)只有單個(gè)條件的判定結(jié)點(diǎn)。2.計(jì)算程序環(huán)路復(fù)雜性進(jìn)行程序的基

18、本路徑測(cè)試時(shí),程序的環(huán)路復(fù)雜性給出了程序基本路徑集合中的獨(dú)立路徑條數(shù),這是確保程序中每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次所必需的測(cè)試用例數(shù)目的上界。所謂獨(dú)立路徑,是指包括一組以前沒有處理的語(yǔ)句或條件的一條路徑。如在圖10-4-9(b)所示的控制流圖中,一組獨(dú)立的路徑是path1:1-11path2:1-2-3-4-5-10-1-11path3:1-2-3-6-8-9-10-1-11path4:1-2-3-6-7-9-10-1-11路徑path1,path2,path3,path4組成了圖 10-4-9(b)所示控制流圖的一個(gè)基本路徑集。只要設(shè)計(jì)出的測(cè)試用例能夠確保這些基本路徑的執(zhí)行,就可以使得程序中的每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次,每個(gè)條件的取真和取假分支也能得到測(cè)試?;韭窂郊?/p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論