佘鳳
摘? 要:本文分析了白盒測試中基本路徑測試方法的相關(guān)概念,闡述了利用基本路徑測試方法設(shè)計測試用例的過程,最后通過實例說明基本路徑測試方法的使用。
關(guān)鍵詞:軟件測試;白盒測試;基本路徑測試
中圖分類號:TP311.52?????????? 文獻(xiàn)標(biāo)識碼:A
1? 引言(Introduction)
白盒測試[1]是基于程序的測試,它根據(jù)程序的控制結(jié)構(gòu)設(shè)計測試用例,主要用于軟件或程序驗證,測試產(chǎn)品的內(nèi)部結(jié)構(gòu)是否合理以及內(nèi)部操作是否按規(guī)定執(zhí)行。白盒測試要求對被測程序的結(jié)構(gòu)特性達(dá)到一定程度測試覆蓋[2],并以軟件中某類成分(如語句、判定、條件、判定/條件、條件組合、路徑)是否都已得到測試來判斷軟件測試的充分性。基本路徑測試[3]是白盒測試技術(shù)中測試覆蓋率較強(qiáng)的一種測試方法。
2? 基本路徑測試方法的相關(guān)概念(The concept of
the basic path testing method)
在實踐中,一個不太復(fù)雜的程序,其路徑都是一個龐大的數(shù)字,要在測試中覆蓋所有的路徑是不現(xiàn)實的。為了解決這一難題,只得把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),例如,程序中的循環(huán)體只執(zhí)行一次?;韭窂綔y試就是這樣一種測試方法,在控制流圖的基礎(chǔ)上,通過分析控制結(jié)構(gòu)的環(huán)形復(fù)雜度,導(dǎo)出執(zhí)行路徑的基本集,再從該基本集設(shè)計測試用例。設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。
3? 基本路徑測試方法的測試步驟(The step of the
basic path testing method)
3.1?? 畫出程序的控制流圖
程序流程圖(簡稱框圖)是一種程序控制結(jié)構(gòu)的圖形表示??刂屏鲌D(簡稱流圖)是對程序流程圖進(jìn)行簡化后得到的,它可以更加突出的表示程序控制流的結(jié)構(gòu)。控制流圖中包括兩種圖形符號:結(jié)點和控制流線。結(jié)點由帶標(biāo)號的圓圈“○”表示,可代表一個或多個無分支的語句、一個處理框序列和一個條件判定框(不包含復(fù)合條件)??刂屏骶€由帶箭頭的弧或線表示,可稱為邊,它代表程序中的控制流。一條邊必須終止于一個結(jié)點,即使該結(jié)點并不代表任何語句。由邊和結(jié)點限定的范圍稱為區(qū)域。
如果判斷中的條件表達(dá)式是由一個或多個邏輯運(yùn)算符(OR、AND、NAND、NOR)連接的復(fù)合條件表達(dá)式,則需要改為一系列只有單個條件的嵌套的判斷,如圖1所示。
圖1 復(fù)合條件流圖
Fig.1 Composite condition flow chart
3.2?? 計算程序的環(huán)形復(fù)雜度
環(huán)形復(fù)雜度也稱為圈復(fù)雜度,它是一種為程序邏輯復(fù)雜度提供定量尺度的軟件度量。用來衡量一個模塊邏輯結(jié)構(gòu)的復(fù)雜程度,在數(shù)量上表現(xiàn)為獨立路徑條數(shù),是需要測試的基本路徑數(shù)目的上限。有以下三種方法計算環(huán)形復(fù)雜度V(G)。
方法1:V(G)=控制流圖中區(qū)域的數(shù)量。邊和結(jié)點圈定的區(qū)域叫做區(qū)域,當(dāng)對區(qū)域計數(shù)時,圖形外的區(qū)域也應(yīng)記為一個區(qū)域。
方法2:V(G)=E(控制流圖中邊的數(shù)量)-N(控制流圖中結(jié)點的數(shù)量)+2。
方法3:V(G)=P(流圖中判定結(jié)點的數(shù)量)+1。
3.3?? 確定基本路徑集合
導(dǎo)出基本路徑集,列出程序的獨立路徑。一條獨立路徑是指和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程序通路。V(G)值正好等于該程序的獨立路徑條數(shù)。
3.4?? 設(shè)計測試用例
為了確?;韭窂郊械拿恳粭l路徑的執(zhí)行,根據(jù)判斷結(jié)點給出的條件,選擇適當(dāng)?shù)臄?shù)據(jù)以保證某一條路徑可以被測試到,設(shè)計測試用例的輸入數(shù)據(jù)和預(yù)期輸出,確?;韭窂郊械拿恳粭l路徑的執(zhí)行。
4?? 基本路徑測試方法的應(yīng)用(The application of the
basic path testing method)
三角形問題:輸入三個整數(shù)a、b和c分別作為三角形的三條邊,通過程序判斷有這三條邊構(gòu)成的三角形類型是:等邊三角形、等腰三角形、一般三角形或非三角形。利用基本路徑測試法對三角形問題進(jìn)行測試用例設(shè)計。主要代碼如下所示(注:數(shù)字1-16是語句編號,方便繪制控制流圖,編程時不用寫入) 。
1.??? if ((a>;=b+c)
2.? ??? ||(b>;=a+c)
3.? ????? ||(c>;=b+a))
4.? ???? cout<;<; "非三角形";
5.??? else
6.? ??? if ((a==b)
7.? ????? &;&;(b==c))
8.? ???? cout<;<; "等邊三角形";
9.?? else
10.? ??? if ((a==b)endprint
11. ??????????? ||(a==c)
12. ?????? ||(c==b) )
13.???????????? cout<;<;"等腰三角形";
14.?? else
15.? ???? cout<;<; "一般三角形";
16.? ? cout<;<;endl;
第一步:繪制控制流圖,如圖2所示。(注意:復(fù)合條件語句,需改復(fù)合條件的判斷為一系列單個條件的嵌套)
圖2 程序控制流圖
Fig.2 Program control flow chart
第二步:計算程序的環(huán)形復(fù)雜度V(G),分析如下:
1.控制流圖中有9個區(qū)域。
2.V(G)=20條邊-13結(jié)點+2=9。
3.V(G)=8個判定結(jié)點+1=9。
所以,程序的環(huán)形復(fù)雜度V(G)=9。
第三步:確定基本路徑集合。根據(jù)環(huán)形復(fù)雜性V(G)的計算,導(dǎo)出基本路徑集,列出程序的獨立路徑(用題中給出的語句編號表示)。設(shè)計時注意要點:從較短路徑順序增加,每個分支盡可能走一次??傻贸龌韭窂郊歇毩⒙窂饺缦拢?/p>
P1:? 1-4-16
P2:? 1-2-4-16
P3:? 1-2-3-4-16
P4:? 1-2-3-6-7-8-16
P5:? 1-2-3-6-10-13-16
P6:? 1-2-3-6-10-11-13-16
P7:? 1-2-3-6-10-11-12-13-16
P8:? 1-2-3-6-10-11-12-15-16
P9:? 1-2-3-6-7-10-11-12-15-16
第四步:設(shè)計測試用例。根據(jù)基本路徑集中9條獨立的路徑,設(shè)計滿足上面基本路徑集的測試用例,詳見表1。
表1 測試用例
Tab.1 Test case
5?? 結(jié)論(Conclusion)
白盒測試又稱為結(jié)構(gòu)測試,邏輯驅(qū)動測試。測試人員可以訪問程序員的代碼,并通過檢查代碼來測試,可以看到盒子里面程序的內(nèi)部結(jié)構(gòu)?;韭窂綔y試是白盒測試技術(shù)中測試覆蓋率較強(qiáng)的一種測試方法。本文重點介紹了基本路徑測試方法的相關(guān)概念,分析了使用基本路徑測試方法設(shè)計測試用例的過程,最后結(jié)合實例說明使用基本路徑測試方法設(shè)計測試用例的應(yīng)用。
參考文獻(xiàn)(References)
[1] 陳衛(wèi)衛(wèi).軟件測試[M].西安:西安電子科技大學(xué)出版社,2011.
[2] 魏琴,梅佳.軟件測試技術(shù)(基于工作過程)[M].北京:電子工業(yè)
出版社,2012.
[3] 于艷華,王素華,吳艷平.軟件測試技術(shù)與項目實訓(xùn)[M].北京:
中國人民大學(xué)出版社,2013.
作者簡介:
佘? 鳳(1976-),女,碩士,軟件設(shè)計師,高校講師.研究領(lǐng)
域:軟件測試.endprint
11. ??????????? ||(a==c)
12. ?????? ||(c==b) )
13.???????????? cout<;<;"等腰三角形";
14.?? else
15.? ???? cout<;<; "一般三角形";
16.? ? cout<;<;endl;
第一步:繪制控制流圖,如圖2所示。(注意:復(fù)合條件語句,需改復(fù)合條件的判斷為一系列單個條件的嵌套)
圖2 程序控制流圖
Fig.2 Program control flow chart
第二步:計算程序的環(huán)形復(fù)雜度V(G),分析如下:
1.控制流圖中有9個區(qū)域。
2.V(G)=20條邊-13結(jié)點+2=9。
3.V(G)=8個判定結(jié)點+1=9。
所以,程序的環(huán)形復(fù)雜度V(G)=9。
第三步:確定基本路徑集合。根據(jù)環(huán)形復(fù)雜性V(G)的計算,導(dǎo)出基本路徑集,列出程序的獨立路徑(用題中給出的語句編號表示)。設(shè)計時注意要點:從較短路徑順序增加,每個分支盡可能走一次??傻贸龌韭窂郊歇毩⒙窂饺缦拢?/p>
P1:? 1-4-16
P2:? 1-2-4-16
P3:? 1-2-3-4-16
P4:? 1-2-3-6-7-8-16
P5:? 1-2-3-6-10-13-16
P6:? 1-2-3-6-10-11-13-16
P7:? 1-2-3-6-10-11-12-13-16
P8:? 1-2-3-6-10-11-12-15-16
P9:? 1-2-3-6-7-10-11-12-15-16
第四步:設(shè)計測試用例。根據(jù)基本路徑集中9條獨立的路徑,設(shè)計滿足上面基本路徑集的測試用例,詳見表1。
表1 測試用例
Tab.1 Test case
5?? 結(jié)論(Conclusion)
白盒測試又稱為結(jié)構(gòu)測試,邏輯驅(qū)動測試。測試人員可以訪問程序員的代碼,并通過檢查代碼來測試,可以看到盒子里面程序的內(nèi)部結(jié)構(gòu)?;韭窂綔y試是白盒測試技術(shù)中測試覆蓋率較強(qiáng)的一種測試方法。本文重點介紹了基本路徑測試方法的相關(guān)概念,分析了使用基本路徑測試方法設(shè)計測試用例的過程,最后結(jié)合實例說明使用基本路徑測試方法設(shè)計測試用例的應(yīng)用。
參考文獻(xiàn)(References)
[1] 陳衛(wèi)衛(wèi).軟件測試[M].西安:西安電子科技大學(xué)出版社,2011.
[2] 魏琴,梅佳.軟件測試技術(shù)(基于工作過程)[M].北京:電子工業(yè)
出版社,2012.
[3] 于艷華,王素華,吳艷平.軟件測試技術(shù)與項目實訓(xùn)[M].北京:
中國人民大學(xué)出版社,2013.
作者簡介:
佘? 鳳(1976-),女,碩士,軟件設(shè)計師,高校講師.研究領(lǐng)
域:軟件測試.endprint
11. ??????????? ||(a==c)
12. ?????? ||(c==b) )
13.???????????? cout<;<;"等腰三角形";
14.?? else
15.? ???? cout<;<; "一般三角形";
16.? ? cout<;<;endl;
第一步:繪制控制流圖,如圖2所示。(注意:復(fù)合條件語句,需改復(fù)合條件的判斷為一系列單個條件的嵌套)
圖2 程序控制流圖
Fig.2 Program control flow chart
第二步:計算程序的環(huán)形復(fù)雜度V(G),分析如下:
1.控制流圖中有9個區(qū)域。
2.V(G)=20條邊-13結(jié)點+2=9。
3.V(G)=8個判定結(jié)點+1=9。
所以,程序的環(huán)形復(fù)雜度V(G)=9。
第三步:確定基本路徑集合。根據(jù)環(huán)形復(fù)雜性V(G)的計算,導(dǎo)出基本路徑集,列出程序的獨立路徑(用題中給出的語句編號表示)。設(shè)計時注意要點:從較短路徑順序增加,每個分支盡可能走一次。可得出基本路徑集中獨立路徑如下:
P1:? 1-4-16
P2:? 1-2-4-16
P3:? 1-2-3-4-16
P4:? 1-2-3-6-7-8-16
P5:? 1-2-3-6-10-13-16
P6:? 1-2-3-6-10-11-13-16
P7:? 1-2-3-6-10-11-12-13-16
P8:? 1-2-3-6-10-11-12-15-16
P9:? 1-2-3-6-7-10-11-12-15-16
第四步:設(shè)計測試用例。根據(jù)基本路徑集中9條獨立的路徑,設(shè)計滿足上面基本路徑集的測試用例,詳見表1。
表1 測試用例
Tab.1 Test case
5?? 結(jié)論(Conclusion)
白盒測試又稱為結(jié)構(gòu)測試,邏輯驅(qū)動測試。測試人員可以訪問程序員的代碼,并通過檢查代碼來測試,可以看到盒子里面程序的內(nèi)部結(jié)構(gòu)?;韭窂綔y試是白盒測試技術(shù)中測試覆蓋率較強(qiáng)的一種測試方法。本文重點介紹了基本路徑測試方法的相關(guān)概念,分析了使用基本路徑測試方法設(shè)計測試用例的過程,最后結(jié)合實例說明使用基本路徑測試方法設(shè)計測試用例的應(yīng)用。
參考文獻(xiàn)(References)
[1] 陳衛(wèi)衛(wèi).軟件測試[M].西安:西安電子科技大學(xué)出版社,2011.
[2] 魏琴,梅佳.軟件測試技術(shù)(基于工作過程)[M].北京:電子工業(yè)
出版社,2012.
[3] 于艷華,王素華,吳艷平.軟件測試技術(shù)與項目實訓(xùn)[M].北京:
中國人民大學(xué)出版社,2013.
作者簡介:
佘? 鳳(1976-),女,碩士,軟件設(shè)計師,高校講師.研究領(lǐng)
域:軟件測試.endprint