動(dòng)態(tài)測(cè)試技術(shù)之白盒測(cè)試:
白盒測(cè)試?yán)贸绦蛟O(shè)計(jì)的內(nèi)部邏輯和控制結(jié)構(gòu)生成測(cè)試用例概荷,進(jìn)行軟件測(cè)試秕岛。
白盒測(cè)試的方法主要是靜態(tài)和動(dòng)態(tài)兩種方法,靜態(tài)測(cè)試主要分為文檔審查误证,代碼審查继薛,靜態(tài)分析,代碼走查等愈捅,在昨天的筆記中我們提到過(guò)惋增,本次主要學(xué)習(xí)動(dòng)態(tài)測(cè)試方法。
動(dòng)態(tài)測(cè)試的主要特點(diǎn)是當(dāng)軟件在真實(shí)的或模擬的環(huán)境中執(zhí)行之前改鲫、之后以及執(zhí)行過(guò)程中诈皿,對(duì)軟件行為進(jìn)行分析。
本次我們主要來(lái)了解下基本路徑測(cè)試像棘、控制結(jié)構(gòu)測(cè)試稽亏。
基本路徑測(cè)試對(duì)程序復(fù)雜度進(jìn)行合理度量,并以此為指導(dǎo)來(lái)定義一個(gè)基本路徑集合缕题〗厍福基本原理:從全路徑集合中抽取一組線性無(wú)關(guān)的獨(dú)立路徑看做一組向量基,因此全路徑集合中的所有路徑可由這組獨(dú)立路徑的某種組合來(lái)進(jìn)行遍歷烟零,因此瘪松,只需對(duì)本組路徑進(jìn)行測(cè)試,就等價(jià)于對(duì)全路徑進(jìn)行了測(cè)試锨阿。
測(cè)試的目標(biāo):1宵睦、測(cè)試的完備性,即通過(guò)對(duì)獨(dú)立路徑的測(cè)試達(dá)到對(duì)所有路徑的測(cè)試覆蓋2墅诡、測(cè)試的冗余性壳嚎,每條路徑都是獨(dú)立的,設(shè)計(jì)的測(cè)試用例之間不存在冗余末早,抽取的基本路徑需要滿足一下要求:①任意兩條基本路徑線性無(wú)關(guān)②所以基本路徑的并集是整個(gè)向量空間烟馅。
測(cè)試設(shè)計(jì):1、畫出程序圖2然磷、計(jì)算基本路徑集合的規(guī)模郑趁,基本路徑的個(gè)數(shù)等于圈復(fù)雜度,什么是圈復(fù)雜度:是一種對(duì)程序結(jié)構(gòu)復(fù)雜度的度量模型姿搜。計(jì)算圈復(fù)雜度方法:①觀察法(根據(jù)定義直觀觀察程序圖將二維平面分隔成的封閉區(qū)域和開放區(qū)域的個(gè)數(shù))②公式法:v(圈復(fù)雜度)=e-n+2p」讶蟆(e表示圖中邊的數(shù)目缺脉,n表示圖中節(jié)點(diǎn)的數(shù)目,p表示圖中未連接部分)③謂詞節(jié)點(diǎn)法:如果程序圖中一個(gè)節(jié)點(diǎn)包含判斷條件悦穿,稱為謂詞節(jié)點(diǎn)攻礼。公式:v(G)=D+1 其中D表示圖中獨(dú)立謂詞節(jié)點(diǎn)的數(shù)目。3栗柒、抽取基本路徑礁扮,首先確定一條主路徑(在所有路徑中找到的一條最復(fù)雜的路徑)4、處理不可行路徑5瞬沦、設(shè)計(jì)測(cè)試用例太伊。
控制結(jié)構(gòu)測(cè)試:
基本路徑測(cè)試是簡(jiǎn)單高效的,但有時(shí)還不能滿足測(cè)試要求逛钻。由基本路徑測(cè)試演變而來(lái)的控制結(jié)構(gòu)測(cè)試不僅拓寬了測(cè)試覆蓋準(zhǔn)則僚焦,而且能夠提高白盒測(cè)試的質(zhì)量。條件判定和循環(huán)是兩類最重要的控制結(jié)構(gòu)曙痘。
條件判定測(cè)試的覆蓋準(zhǔn)則有語(yǔ)句覆蓋芳悲,判定覆蓋,條件覆蓋等多種边坤。
語(yǔ)句覆蓋:語(yǔ)句覆蓋也叫行覆蓋名扛、段覆蓋或基本塊覆蓋,用于度量程序代碼可執(zhí)行語(yǔ)句被執(zhí)行的比率茧痒。滿足語(yǔ)句覆蓋肮韧,指的是程序代碼可執(zhí)行語(yǔ)句至少被執(zhí)行一次,包括條件分支中包含的語(yǔ)句也要執(zhí)行到旺订。語(yǔ)句覆蓋等同于對(duì)圖中所有節(jié)點(diǎn)的覆蓋弄企,并且對(duì)隱士分支無(wú)效。
判定覆蓋:判定覆蓋也叫分支覆蓋区拳,指的是程序代碼中每個(gè)判定節(jié)點(diǎn)的取真與取假分支都至少被執(zhí)行一次拘领,判定覆蓋等同于對(duì)圖中所有邊的覆蓋。(判斷覆蓋需覆蓋到每一條邊執(zhí)行劳闹,測(cè)試重點(diǎn)轉(zhuǎn)向判定節(jié)點(diǎn)院究,生成的測(cè)試用例對(duì)于語(yǔ)句覆蓋增加,滿足判定覆蓋的本涕,一定滿足百分百語(yǔ)句覆蓋。)
條件覆蓋:條件覆蓋指的是程序代碼每個(gè)判定表達(dá)式中的每個(gè)條件的取真和取假分支情況至少執(zhí)行一遍伙窃。
條件/判定覆蓋:為同時(shí)滿足對(duì)判定表達(dá)式所有分支的覆蓋以及對(duì)判定表達(dá)式中每個(gè)簡(jiǎn)單判定條件的取值覆蓋菩颖,引入條件/判定覆蓋指標(biāo)。條件/判定覆蓋指標(biāo)指的是为障,測(cè)試用例的實(shí)際應(yīng)滿足判定節(jié)點(diǎn)的取真和取假分支至少執(zhí)行一次晦闰,并且每個(gè)簡(jiǎn)單判定條件的取真和取假情況也至少執(zhí)行一次放祟,即同時(shí)滿足判定覆蓋和條件覆蓋。
條件組合覆蓋:條件組合覆蓋指的是程序代碼中全部判定節(jié)點(diǎn)的每個(gè)簡(jiǎn)單判定條件的所有可能取值組合至少被執(zhí)行一次呻右。