動(dòng)態(tài)白盒測試
動(dòng)態(tài)白盒測試動(dòng)態(tài)白盒測試是指利用查看代碼功能和實(shí)現(xiàn)方式得到的信息來確定哪些要測試,哪些不要測試,如何開展測試。
動(dòng)態(tài)白盒測試的另一個(gè)常用名稱是結(jié)構(gòu)測試,因?yàn)檐浖y試員可以查看并使用代碼的內(nèi)部結(jié)構(gòu),從而設(shè)計(jì)和執(zhí)行測試。
軟件人員使用白盒測試方法,主要想對程序模塊進(jìn)行如下的檢查:
對程序模塊的所有獨(dú)立的執(zhí)行路徑至少測試一次;
對所有的邏輯判定,取“真”與取“假”的兩種情況都至少測試一次;
在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;
測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。
對一個(gè)具有多重選擇和循環(huán)嵌套的程序,不同的路徑數(shù)目可能是天文數(shù)字。給出一個(gè)小程序的流程圖,它包括了一個(gè)執(zhí)行20次的循環(huán)。
包含的不同執(zhí)行路徑數(shù)達(dá)520條,對每一條路徑進(jìn)行測試需要1毫秒,假定一年工作365 × 24小時(shí),要想把所有路徑測試完,需3170年。
動(dòng)態(tài)測試基本概念
控制流圖
環(huán)形復(fù)雜性
圖矩陣
1. 程序的控制流圖
符號○為控制流圖的一個(gè)結(jié)點(diǎn),表示一個(gè)或多個(gè)無分支的語句。箭頭為邊,表示控制流的方向。
在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個(gè)匯聚結(jié)點(diǎn)。
邊和結(jié)點(diǎn)圈定的部分叫做區(qū)域,當(dāng)對區(qū)域計(jì)數(shù)時(shí),圖形外的區(qū)域也應(yīng)記為一個(gè)區(qū)域。
如果判斷中的條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符 (OR,AND, NAND,NOR)連接的復(fù)合條件表達(dá)式,則需要改為一系列只有單個(gè)條件的嵌套的判斷(針對詳細(xì)流程圖)。
2. 程序環(huán)形復(fù)雜性
程序的環(huán)形(圈)復(fù)雜性給出了程序基本路徑集中的獨(dú)立路徑條數(shù),這是確保程序中每個(gè)可執(zhí)行語句至少執(zhí)行一次所必需的測試用例數(shù)目的上界。
從控制流圖來看,一條獨(dú)立路徑是從入口到出口至少包含有一條在其它獨(dú)立路徑中從未有過的邊的路徑。
例如,在圖示的控制流圖中,一組獨(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組成了控制流圖的一個(gè)基本路徑集。
頁:
[1]