




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 白盒測(cè)試及其 實(shí)例設(shè)計(jì),第4章 白盒測(cè)試及其實(shí)例設(shè)計(jì),4.1 邏輯覆蓋測(cè)試 4.2 路徑分析測(cè)試 4.3 其他白盒測(cè)試方法 4.4 實(shí)例設(shè)計(jì) 小結(jié) 習(xí)題,本章概述 白盒測(cè)試是軟件測(cè)試實(shí)踐中最為有效和實(shí)用的方法之一。白盒測(cè)試是基于程序的測(cè)試,檢測(cè)產(chǎn)品的內(nèi)部結(jié)構(gòu)是否合理以及內(nèi)部操作是否按規(guī)定執(zhí)行,覆蓋測(cè)試與路徑測(cè)試是其兩大基本策略。本章重點(diǎn)圍繞邏輯覆蓋和路徑分析展開(kāi)介紹常見(jiàn)的白盒測(cè)試方法,并通過(guò)實(shí)例說(shuō)明如何實(shí)際運(yùn)用白盒測(cè)試技術(shù)。,4.1 邏輯覆蓋測(cè)試,白盒測(cè)試技術(shù)的常見(jiàn)方法之一就是覆蓋測(cè)試,它是利用程序的邏輯結(jié)構(gòu)設(shè)計(jì)相應(yīng)的測(cè)試用例。測(cè)試人員要深入了解被測(cè)程序的邏輯結(jié)構(gòu)特點(diǎn),完全掌握源代碼的
2、流程,才能設(shè)計(jì)出恰當(dāng)?shù)挠美?。根?jù)不同的測(cè)試要求,覆蓋測(cè)試可以分為語(yǔ)句覆蓋、判斷覆蓋、條件覆蓋、判斷/條件覆蓋、條件組合覆蓋和路徑覆蓋。 下面是一段簡(jiǎn)單的C語(yǔ)言程序,作為公共程序段來(lái)說(shuō)明五種覆蓋測(cè)試的各自特點(diǎn)。 程序4-1: 1If (x100 4int i; 5 char str; 6 scanf (“%d, %cn”, 19,1導(dǎo)出程序控制流圖 根據(jù)源代碼可以導(dǎo)出程序的控制流圖,如圖4-4所示。每個(gè)圓圈代表控制流圖的節(jié)點(diǎn),可以表示一個(gè)或多個(gè)語(yǔ)句。圓圈中的數(shù)字對(duì)應(yīng)程序中某一行的編號(hào)。箭頭代表邊的方向,即控制流方向。,圖4-4 程序4-2的控制流圖,2求出程序環(huán)形復(fù)雜度 根據(jù)程序環(huán)形復(fù)雜度的計(jì)算
3、公式,求出程序路徑集合中的獨(dú)立路徑數(shù)目。 公式1:V(G)=10-8+2,其中10是控制流圖G中邊的數(shù)量,8是控制流圖中節(jié)點(diǎn)的數(shù)目。 公式2:V(G)=3+1,其中3是控制流圖G中判斷節(jié)點(diǎn)的數(shù)目。 公式3:V(G)=4,其中4是控制流圖G中區(qū)域的數(shù)目。 因此,控制流圖G的環(huán)形復(fù)雜度是4。就是說(shuō)至少需要4條獨(dú)立路徑組成基本路徑集合,并由此得到能夠覆蓋所有程序語(yǔ)句的測(cè)試用例。,3設(shè)計(jì)測(cè)試用例 根據(jù)上面環(huán)形復(fù)雜度的計(jì)算結(jié)果,源程序的基本路徑集合中有4條獨(dú)立路徑: 路徑1:7-18 路徑2:7-9-10-16-7-18 路徑3:7-9-11-15-16-7-18 路徑4:7-9-11-13-14-15
4、-16-7-18 根據(jù)上述4條獨(dú)立路徑,設(shè)計(jì)了測(cè)試用例組9,如表4-9所示。測(cè)試用例組9中的4個(gè)測(cè)試用例作為程序輸入數(shù)據(jù),能夠遍歷這4條獨(dú)立路徑。對(duì)于源程序中的循環(huán)體,測(cè)試用例組9中的輸入數(shù)據(jù)使其執(zhí)行零次或一次。,表4-9 測(cè)試用例組9,程序4-3: 1if (a or b) 2then 3 procedure x 4else 5 procedure y; 6 對(duì)應(yīng)的控制流圖如圖4-5所示,程序行1的a,b都是獨(dú)立的判斷節(jié)點(diǎn),還有程序行4也是判斷節(jié)點(diǎn),所以共計(jì)3個(gè)判斷節(jié)點(diǎn)。圖4-5的環(huán)形復(fù)雜度為V(G)=3+1,其中3是圖4-5中判斷節(jié)點(diǎn)的數(shù)目。,圖4-5 程序4-3的控制流圖,4.2.3 Z
5、路徑覆蓋測(cè)試,Z路徑覆蓋是路徑覆蓋面的一種變體。對(duì)于語(yǔ)句較少的簡(jiǎn)單程序,路徑覆蓋是具有可行性的。但是對(duì)于源代碼很多的復(fù)雜程序,或者對(duì)于含有較多條件語(yǔ)句和較多循環(huán)體的程序來(lái)說(shuō),需要測(cè)試的路徑數(shù)目會(huì)成倍增長(zhǎng),達(dá)到一個(gè)巨大數(shù)字,以至于無(wú)法實(shí)現(xiàn)路徑覆蓋。 為了解決這一問(wèn)題,采用簡(jiǎn)化循環(huán)方法的路徑覆蓋就是Z路徑覆蓋。 所謂簡(jiǎn)化循環(huán)就是減少循環(huán)的次數(shù)。不考慮循環(huán)體的形式和復(fù)雜度如何,也不考慮循環(huán)體實(shí)際上需要執(zhí)行多少次,只考慮通過(guò)循環(huán)體零次和一次這兩種情況。這里的零次循環(huán)是指跳過(guò)循環(huán)體,從循環(huán)體的入口直接到循環(huán)體的出口。通過(guò)一次循環(huán)體是指檢查循環(huán)初始值。 如圖4-6(a)和圖4-6(b)所示表示了兩種最典型
6、的循環(huán)控制結(jié)構(gòu)。圖4-6(a)是先比較循環(huán)條件后執(zhí)行循環(huán)體,循環(huán)體B可能執(zhí)行也可能不被執(zhí)行。限定循環(huán)體B執(zhí)行零次和一次,這樣就和圖4-6(c)的條件結(jié)構(gòu)一樣了。圖4-6(b)是先執(zhí)行循環(huán)體后比較循環(huán)條件。假設(shè)循環(huán)體B被執(zhí)行一次,在經(jīng)過(guò)條件判斷跳出循環(huán),那么其效果就和圖4-6(c)的條件結(jié)構(gòu)只執(zhí)行右分支的效果一樣了。 一旦將循環(huán)結(jié)構(gòu)簡(jiǎn)化為選擇結(jié)構(gòu)后,路徑的數(shù)量將大大減少,這樣就可以實(shí)現(xiàn)路徑覆蓋測(cè)試了。對(duì)于實(shí)現(xiàn)簡(jiǎn)化循環(huán)的程序,可以將程序用路徑樹(shù)來(lái)表示。當(dāng)?shù)玫侥骋怀绦虻穆窂綐?shù)后,從其根節(jié)點(diǎn)開(kāi)始,一次遍歷,再回到根節(jié)點(diǎn)時(shí),將所經(jīng)歷的葉節(jié)點(diǎn)名排列起來(lái),就得到一個(gè)路徑。如果已經(jīng)遍歷了所有葉子節(jié)點(diǎn),那就得到
7、了所有的路徑。當(dāng)?shù)玫剿械穆窂胶?,生成每個(gè)路徑的測(cè)試用例,就可以實(shí)現(xiàn)Z路徑覆蓋測(cè)試。,圖4-6 循環(huán)結(jié)構(gòu)和條件結(jié)構(gòu),4.3 其他白盒測(cè)試方法,4.3.1 循環(huán)測(cè)試 循環(huán)測(cè)試是一種著重循環(huán)結(jié)構(gòu)有效性測(cè)試的白盒測(cè)試方法。循環(huán)結(jié)構(gòu)測(cè)試用例的設(shè)計(jì)有以下4種模式,如圖4-7所示。,圖4-7 循環(huán)測(cè)試的模式,4.3.2 變異測(cè)試,變異測(cè)試是一種故障驅(qū)動(dòng)測(cè)試,即針對(duì)某一類特定程序故障進(jìn)行的測(cè)試,變異測(cè)試也是一種比較成熟的排錯(cuò)性測(cè)試方法。它可以通過(guò)檢驗(yàn)測(cè)試數(shù)據(jù)集的排錯(cuò)能力來(lái)判斷軟件測(cè)試的充分性。 假設(shè)對(duì)程序P進(jìn)行一些微小改動(dòng)而得到程序MP,程序MP就是程序P的一個(gè)變異體。 假設(shè)程序P在測(cè)試集T上是正確的,設(shè)計(jì)
8、某一變異體集合:M=MP|MP是P的變異體,若變異體集合M中的每一個(gè)元素在T上都存在錯(cuò)誤,則認(rèn)為源程序P的正確度較高,否則若M中的某些元素在T上運(yùn)行正確,則可能存在以下一些情況: M中的這些變異體在功能上與源程序P是等價(jià)的; 現(xiàn)有的測(cè)試數(shù)據(jù)不足以找出源程序P與其變異體之間的差別; 源程序P可能產(chǎn)生故障,而其某些變異體卻是正確的。 可見(jiàn),測(cè)試集T和變異體集合M中的每一個(gè)變異體MP的選擇都是很重要的,它們會(huì)直接影響變異測(cè)試的測(cè)試效果。 總之,對(duì)程序進(jìn)行變換的方法多種多樣,具體操作要靠測(cè)試人員的實(shí)際經(jīng)驗(yàn)。通過(guò)變異分析構(gòu)造測(cè)試數(shù)據(jù)集的過(guò)程是一個(gè)循環(huán)過(guò)程,當(dāng)對(duì)源程序及其變異體進(jìn)行測(cè)試后,若發(fā)現(xiàn)某些變異體
9、并不理想,就要適當(dāng)增加測(cè)試數(shù)據(jù),直到所有變異體達(dá)到理想狀態(tài),即變異體集合中的每一個(gè)變異體在T上都存在錯(cuò)誤。,4.3.3 程序插裝,程序插裝是借助于在被測(cè)程序中設(shè)置斷點(diǎn)或打印語(yǔ)句來(lái)進(jìn)行測(cè)試的方法,在執(zhí)行測(cè)試的過(guò)程中可以了解一些程序的動(dòng)態(tài)信息。這樣在運(yùn)行程序時(shí),既能檢驗(yàn)測(cè)試的結(jié)果數(shù)據(jù),又能借助插入語(yǔ)句給出的信息掌握程序的動(dòng)態(tài)運(yùn)行特性,從而把程序執(zhí)行過(guò)程中所發(fā)生的重要事件記錄下來(lái)。 程序插裝設(shè)計(jì)時(shí)主要需要考慮三方面因素: (1)需要探測(cè)哪些信息; (2)在程序的什么位置設(shè)立插裝點(diǎn); (3)計(jì)劃設(shè)置多少個(gè)插裝點(diǎn)。 插裝技術(shù)在軟件測(cè)試中主要有以下幾個(gè)應(yīng)用: 覆蓋分析: 程序插裝可以估計(jì)程序控制流圖中被覆
10、蓋的程度,確定測(cè)試執(zhí)行的充分性,從而設(shè)計(jì)更好的測(cè)試用例,提高測(cè)試覆蓋率。 監(jiān)控 在程序的特定位置設(shè)立插裝點(diǎn),插入用于記錄動(dòng)態(tài)特性的語(yǔ)句,用來(lái)監(jiān)控程序運(yùn)行時(shí)的某些特性,從而排除軟件故障。 查找數(shù)據(jù)流異常 程序插裝可以記錄在程序執(zhí)行中某些變量值的變化情況和變化范圍。掌握了數(shù)據(jù)變量的取值狀況,就能準(zhǔn)確地判斷是否發(fā)生數(shù)據(jù)流異常。雖然數(shù)據(jù)流異??梢杂渺o態(tài)分析器來(lái)發(fā)現(xiàn),但是使用插裝技術(shù)可以更經(jīng)濟(jì)更簡(jiǎn)便,畢竟所有信息的獲取是隨著測(cè)試過(guò)程附帶得到的。,4.4 實(shí)例設(shè)計(jì),實(shí)例1運(yùn)用邏輯覆蓋的方法測(cè)試程序 程序4-4: 1If (x1 運(yùn)用邏輯覆蓋的方法設(shè)計(jì)測(cè)試用例組,如表4-10所示。,實(shí)例2 運(yùn)用路徑分析的方
11、法測(cè)試程序 程序4-5: 1main () 2 3 int flag, t1, t2, a=0, b=0; 4 scanf (“%d, %d, %dn”, 23 ,程序的流程圖如圖4-8所示:,圖4-8 程序4-5的流程圖,2.程序的控制流圖如圖4-9所示,其中R1、R2、R3和R4代表控制流圖的4個(gè)區(qū)域。R4代表的是控制流圖外的區(qū)域,也算作控制流圖的一個(gè)區(qū)域。,圖4-9 程序4-5的控制流圖,3.運(yùn)用路徑分析的方法設(shè)計(jì)測(cè)試用例組。 (1) 根據(jù)程序環(huán)形復(fù)雜度的計(jì)算公式,求出程序路徑集合中的獨(dú)立路徑數(shù)目。 公式1:V(G)=11-9+2,其中10是控制流圖G中邊的數(shù)量,8是控制流圖中節(jié)點(diǎn)的數(shù)目
12、。 公式2:V(G)=3+1,其中3是控制流圖G中判斷節(jié)點(diǎn)的數(shù)目。 公式3:V(G)=4,其中4是控制流圖G中區(qū)域的數(shù)目。 因此,控制流圖G的環(huán)形復(fù)雜度是4。 (2) 根據(jù)上面環(huán)形復(fù)雜度的計(jì)算結(jié)果,源程序的基本路徑集合中有4條獨(dú)立路徑: 路徑1:5-22 路徑2:5-7, 8-11, 12-21-5-22 路徑3:5-7, 8-16-17-19-21-5-22 路徑4:5-7, 8-16-18-19-21-5-22 (3)設(shè)計(jì)測(cè)試用例組11如表4-11所示。根據(jù)上述4條獨(dú)立路徑設(shè)計(jì)出了這組測(cè)試用例,其中的4組數(shù)據(jù)能夠遍歷各個(gè)獨(dú)立路徑,也就滿足了路徑分析測(cè)試的要求。 需要注意的是,對(duì)于源程序中的
13、循環(huán)體,測(cè)試用例組11中的輸入數(shù)據(jù)使其執(zhí)行零次或一次。,表4-11 測(cè)試用例組11,小結(jié),白盒測(cè)試是基于被測(cè)程序的源代碼設(shè)計(jì)測(cè)試用例的測(cè)試方法。常見(jiàn)的白盒測(cè)試方法有邏輯覆蓋測(cè)試和路徑分析測(cè)試兩大類。 在邏輯覆蓋測(cè)試中,按照覆蓋策略由弱到強(qiáng)的嚴(yán)格程度,介紹了語(yǔ)句覆蓋、判斷覆蓋、條件覆蓋、判斷/條件覆蓋、條件組合覆蓋和路徑覆蓋六種覆蓋測(cè)策略。 語(yǔ)句覆蓋:每個(gè)語(yǔ)句至少執(zhí)行一次。 判定覆蓋:在語(yǔ)句覆蓋的基礎(chǔ)上,每個(gè)判定的每個(gè)分支至少執(zhí)行一次。 條件覆蓋:在語(yǔ)句覆蓋的基礎(chǔ)上,使每個(gè)判定表達(dá)式的每個(gè)條件都取到各種可能的結(jié)果。 判定/條件覆蓋:即判定覆蓋和條件覆蓋的交集。 條件組合覆蓋:每個(gè)判定表達(dá)式中條件
14、的各種可能組合都至少出現(xiàn)一次。 路徑覆蓋:每條可能的路徑都至少執(zhí)行一次,若圖中有環(huán),則每個(gè)環(huán)至少經(jīng)過(guò)一次。 在路徑分析測(cè)試中,介紹了獨(dú)立路徑測(cè)試和Z路徑覆蓋測(cè)試兩種常用方法。 獨(dú)立路徑測(cè)試方法把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),程序中的循環(huán)體最多只執(zhí)行一次,對(duì)程序中所有獨(dú)立路徑進(jìn)行測(cè)試。它是在程序控制流圖的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證程序的每一個(gè)可執(zhí)行語(yǔ)句至少要執(zhí)行一次。 Z路徑覆蓋測(cè)試是指采用簡(jiǎn)化循環(huán)的方法進(jìn)行路徑覆蓋測(cè)試。被測(cè)源程序中的循環(huán)體執(zhí)行零次或一次。 最后,介紹了其他一些白盒測(cè)試方法。循環(huán)測(cè)試是一種著重循環(huán)結(jié)構(gòu)有效性測(cè)試的測(cè)試方法。變異測(cè)試是一種故障驅(qū)
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年事業(yè)單位考試四川省遂寧市A類《職業(yè)能力傾向測(cè)驗(yàn)》模擬試題含解析
- 2025年遵義市稅務(wù)系統(tǒng)遴選面試真題附詳解含答案
- 慢病防治知識(shí)講座參考課件
- 林長(zhǎng)制智慧林長(zhǎng)綜合管理平臺(tái)建設(shè)方案
- 遼陽(yáng)市弓長(zhǎng)嶺區(qū)文職輔警招聘考試真題
- 老年健康管理內(nèi)容課件
- 老師的視頻課件大全
- 高效智能倉(cāng)儲(chǔ)租賃服務(wù)協(xié)議
- 采礦權(quán)出讓與礦產(chǎn)資源保護(hù)責(zé)任書(shū)范本
- 礦山股權(quán)轉(zhuǎn)讓與礦區(qū)環(huán)境保護(hù)責(zé)任書(shū)
- 保山2025年云南保山市中心血站招聘編外工作人員筆試題庫(kù)附帶答案詳解
- 弘揚(yáng)家風(fēng)文化班會(huì)課件
- 吐魯番采油廠玉果油田滾動(dòng)建產(chǎn)工程環(huán)境影響報(bào)告書(shū)
- 2025年6月英語(yǔ)四級(jí)真題及參考答案
- 浙江省2024-2025學(xué)年高二下學(xué)期數(shù)學(xué)學(xué)考模擬考(三)(含答案)
- 電大:理論聯(lián)系實(shí)際談一談如何維護(hù)政治安全?參考答案
- 2025年下半年佛山市圖書(shū)館招考工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 社區(qū)社會(huì)工作課件
- 醫(yī)藥代表關(guān)鍵客戶管理策略
- 2025年人教版小學(xué)小升初科學(xué)模擬試卷(含答案解析)
- 浙江省杭州市拱墅區(qū)2025年中考英語(yǔ)一模試卷(含筆試答案無(wú)聽(tīng)力答案、原文及音頻)
評(píng)論
0/150
提交評(píng)論