白盒測(cè)試課件_第1頁
白盒測(cè)試課件_第2頁
白盒測(cè)試課件_第3頁
白盒測(cè)試課件_第4頁
白盒測(cè)試課件_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、,1 2 白盒測(cè)試的基本概念 3 覆蓋測(cè)試 4 5 循環(huán)測(cè)試,1,學(xué)習(xí)交流PPT,教學(xué)目標(biāo),理論環(huán)節(jié) 學(xué)習(xí)理解白盒測(cè)試方法的基本概念 學(xué)習(xí)理解白盒測(cè)試的覆蓋理論 學(xué)習(xí)掌握白盒測(cè)試的路徑表達(dá) 學(xué)習(xí)掌握白盒測(cè)試的基本路徑測(cè)試法 實(shí)踐環(huán)節(jié) 通過案例運(yùn)用學(xué)習(xí)掌握覆蓋問題的解決方法 運(yùn)用基本路徑測(cè)試方法進(jìn)行實(shí)際程序測(cè)試,2,學(xué)習(xí)交流PPT,1 白盒測(cè)試方法,為什么要進(jìn)行白盒測(cè)試? 如果所有軟件錯(cuò)誤的根源都可以追溯到某個(gè)唯一原因,那么問題就簡(jiǎn)單了。然而,事實(shí)上一個(gè)bug 常常是由多個(gè)因素共同導(dǎo)致的,如下圖所示。,Return,假設(shè)此時(shí)開發(fā)工作已結(jié)束,程序送交到測(cè)試組,沒有人知道代碼中有一個(gè)潛在的被 0 除

2、的錯(cuò)誤。若測(cè)試組采用的測(cè)試用例的執(zhí)行路徑?jīng)]有同時(shí)經(jīng)過x=0和y=5/x進(jìn)行測(cè)試,顯然測(cè)試工作似乎非常完善,測(cè)試用例覆蓋了所有執(zhí)行語句,也沒有被 0 除的錯(cuò)誤發(fā)生。,3,學(xué)習(xí)交流PPT,白盒測(cè)試方法(續(xù)),白盒測(cè)試也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,是針對(duì)被測(cè)單元內(nèi)部是如何進(jìn)行工作的測(cè)試。它根據(jù)程序的控制結(jié)構(gòu)設(shè)計(jì)測(cè)試用例,主要用于軟件或程序驗(yàn)證。 白盒測(cè)試法檢查源程序內(nèi)部邏輯結(jié)構(gòu),對(duì)所有邏輯路徑進(jìn)行測(cè)試,是一種窮舉路徑的測(cè)試方法。但即使每條路徑都測(cè)試過了,仍然可能存在錯(cuò)誤。因?yàn)椋?窮舉路徑測(cè)試無法檢查出程序本身是否違反了設(shè)計(jì)規(guī)范,即程序是否是一個(gè)錯(cuò)誤的程序。 窮舉路徑測(cè)試不可能查出程序因?yàn)檫z漏路徑而出錯(cuò)

3、。 窮舉路徑測(cè)試發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤。,4,學(xué)習(xí)交流PPT,白盒測(cè)試方法(續(xù)),采用白盒測(cè)試方法必須遵循以下幾條原則,才能達(dá)到測(cè)試的目的: 保證一個(gè)模塊中的所有獨(dú)立路徑至少被測(cè)試一次。 所有邏輯值均需測(cè)試真 (true) 和假 (false) 兩種情況。 檢查程序的內(nèi)部數(shù)據(jù)結(jié)構(gòu),保證其結(jié)構(gòu)的有效性。 在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán)。 白盒測(cè)試主要是檢查程序的內(nèi)部結(jié)構(gòu)、邏輯、循環(huán)和路徑。常用測(cè)試用例設(shè)計(jì)方法有: 邏輯覆蓋法(邏輯驅(qū)動(dòng)測(cè)試) 基本路徑測(cè)試方法,5,學(xué)習(xí)交流PPT,2 白盒測(cè)試的基本概念,4.2.1 控制流圖 4.2.2 環(huán)形復(fù)雜度 4.2.3 圖矩陣,Return,6

4、,學(xué)習(xí)交流PPT,2.1 控制流圖,控制流圖(可簡(jiǎn)稱流圖)是對(duì)程序流程圖進(jìn)行簡(jiǎn)化后得到的,它可以更加突出的表示程序控制流的結(jié)構(gòu)。 控制流圖中包括兩種圖形符號(hào):節(jié)點(diǎn)和控制流線。 節(jié)點(diǎn)由帶標(biāo)號(hào)的圓圈表示,可代表一個(gè)或多個(gè)語句、一個(gè)處理框序列和一個(gè)條件判定框(假設(shè)不包含復(fù)合條件)。 控制流線由帶箭頭的弧或線表示,可稱為邊。它代表程序中的控制流。 對(duì)于復(fù)合條件,則可將其分解為多個(gè)單個(gè)條件,并映射成控制流圖。,常見結(jié)構(gòu)的控制流圖,7,學(xué)習(xí)交流PPT,常見結(jié)構(gòu)的控制流圖,其中,包含條件的節(jié)點(diǎn)被稱為判定節(jié)點(diǎn)(也叫謂詞節(jié)點(diǎn)),由判定節(jié)點(diǎn)發(fā)出的邊必須終止于某一個(gè)節(jié)點(diǎn),由邊和節(jié)點(diǎn)所限定的范圍被稱為區(qū)域。,8,學(xué)習(xí)

5、交流PPT,3 覆蓋測(cè)試,3.1 測(cè)試覆蓋率 3.2 邏輯覆蓋法,Return,9,學(xué)習(xí)交流PPT,3.1 測(cè)試覆蓋率,測(cè)試覆蓋率:用于確定測(cè)試所執(zhí)行到的覆蓋項(xiàng)的百分比。其中的覆蓋項(xiàng)是指作為測(cè)試基礎(chǔ)的一個(gè)入口或?qū)傩?,比如語句、分支、條件等。 測(cè)試覆蓋率可以表示出測(cè)試的充分性,在測(cè)試分析報(bào)告中可以作為量化指標(biāo)的依據(jù),測(cè)試覆蓋率越高效果越好。但覆蓋率不是目標(biāo),只是一種手段。 測(cè)試覆蓋率包括功能點(diǎn)覆蓋率和結(jié)構(gòu)覆蓋率: 功能點(diǎn)覆蓋率大致用于表示軟件已經(jīng)實(shí)現(xiàn)的功能與軟件需要實(shí)現(xiàn)的功能之間的比例關(guān)系。 結(jié)構(gòu)覆蓋率包括語句覆蓋率、分支覆蓋率、循環(huán)覆蓋率、路徑覆蓋率等等。,10,學(xué)習(xí)交流PPT,3.2 邏輯覆

6、蓋法,根據(jù)覆蓋目標(biāo)的不同,邏輯覆蓋又可分為語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋。 語句覆蓋:選擇足夠多的測(cè)試用例,使得程序中的每個(gè)可執(zhí)行語句至少執(zhí)行一次。 判定覆蓋:通過執(zhí)行足夠的測(cè)試用例,使得程序中的每個(gè)判定至少都獲得一次“真”值和“假”值, 也就是使程序中的每個(gè)取“真”分支和取“假”分支至少均經(jīng)歷一次,也稱為“分支覆蓋”。 條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,使得程序中每個(gè)判定包含的每個(gè)條件的可能取值(真/假)都至少滿足一次。,11,學(xué)習(xí)交流PPT,邏輯覆蓋法(續(xù)),判定/條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,使得程序中每個(gè)判定包含的每個(gè)條件的所有情況(真/假)至少出現(xiàn)一

7、次,并且每個(gè)判定本身的判定結(jié)果(真/假)也至少出現(xiàn)一次。 滿足判定/條件覆蓋的測(cè)試用例一定同時(shí)滿足判定覆蓋和條件覆蓋。 組合覆蓋:通過執(zhí)行足夠的測(cè)試用例,使得程序中每個(gè)判定的所有可能的條件取值組合都至少出現(xiàn)一次。 滿足組合覆蓋的測(cè)試用例一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋。 路徑覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,要求覆蓋程序中所有可能的路徑。,12,學(xué)習(xí)交流PPT,邏輯覆蓋法(續(xù)),13,學(xué)習(xí)交流PPT,邏輯覆蓋法(續(xù)),void DoWork (int x,int y,int z) int k=0,j=0; if ( (x3) /語句塊3 ,14,學(xué)習(xí)交流PPT,邏輯覆蓋法(續(xù)),15,學(xué)習(xí)

8、交流PPT,語句覆蓋,要實(shí)現(xiàn)DoWork函數(shù)的語句覆蓋,只需設(shè)計(jì)一個(gè)測(cè)試用例就可以覆蓋程序中的所有可執(zhí)行語句。 測(cè)試用例輸入為: x=4、y=5、z=5 程序執(zhí)行的路徑是:abd 分析: 語句覆蓋可以保證程序中的每個(gè)語句都得到執(zhí)行,但發(fā)現(xiàn)不了判定中邏輯運(yùn)算的錯(cuò)誤,即它并不是一種充分的檢驗(yàn)方法。例如在第一個(gè)判定(x3) 3 int y=0; 4 while ( iRecordNum- 0 ) 5 6 If ( iType=0 ) 7x=y+2; 8 else 9 If ( iType=1 ) 10 x=y+10; 11 else 12 x=y+20; 13 14 ,33,學(xué)習(xí)交流PPT,基本路徑

9、測(cè)試方法(續(xù)),畫出控制流圖: 如右圖所示 計(jì)算環(huán)形復(fù)雜度: 10(條邊)- 8(個(gè)節(jié)點(diǎn))+ 2 = 4 導(dǎo)出獨(dú)立路徑(用語句編號(hào)表示) 路徑1:414 路徑2:46714 路徑3:4691013414 路徑4:4691213414,34,學(xué)習(xí)交流PPT,基本路徑測(cè)試方法(續(xù)),設(shè)計(jì)測(cè)試用例:,35,學(xué)習(xí)交流PPT,習(xí)題,1、使用基本路徑測(cè)試方法,為以下程序段設(shè)計(jì)測(cè)試用例。 void Do (int X,int A,int B) 1 if ( (A1) 5 2、在三角形問題中,要求輸入三個(gè)邊長(zhǎng):a,b,c。當(dāng)三邊不可能構(gòu)成三角形時(shí)提示錯(cuò)誤,可構(gòu)成三角形時(shí)計(jì)算三角形的周長(zhǎng)。若是等腰三角形打印“等

10、腰三角形”,若是等邊三角形,則打印“等邊三角形”。畫出相應(yīng)的程序流程圖,并采用基本路徑測(cè)試方法為該程序設(shè)計(jì)測(cè)試用例。,36,學(xué)習(xí)交流PPT,4.3 循環(huán)測(cè)試方法,從本質(zhì)上說,循環(huán)測(cè)試的目的就是檢查循環(huán)結(jié)構(gòu)的有效性。 通常,循環(huán)可以劃分為簡(jiǎn)單循環(huán)、嵌套循環(huán)、串接循環(huán)和 非結(jié)構(gòu)循環(huán)4類。 (1)測(cè)試簡(jiǎn)單循環(huán)。設(shè)其循環(huán)的最大次數(shù)為n ,可采用以下測(cè)試集: 跳過整個(gè)循環(huán); 只循環(huán)一次; 只循環(huán)兩次; 循環(huán) m 次,其中mn; 分別循環(huán) n-1、n 和 n+1 次。,37,學(xué)習(xí)交流PPT,循環(huán)測(cè)試方法(續(xù)),(2)測(cè)試嵌套循環(huán)。如果將簡(jiǎn)單循環(huán)的測(cè)試方法用于嵌套循環(huán),可能的測(cè)試次數(shù)會(huì)隨嵌套層數(shù)成幾何級(jí)數(shù)增

11、加。 此時(shí)可采用以下辦法減少測(cè)試次數(shù): 測(cè)試從最內(nèi)層循環(huán)開始,所有外層循環(huán)次數(shù)設(shè)置為最小值; 對(duì)最內(nèi)層循環(huán)按照簡(jiǎn)單循環(huán)的測(cè)試方法進(jìn)行; 由內(nèi)向外進(jìn)行下一個(gè)循環(huán)的測(cè)試,本層循環(huán)的所有外層循環(huán)仍取最小值,而由本層循環(huán)嵌套的循環(huán)取某些“典型”值; 重復(fù)上一步的過程,直到測(cè)試完所有循環(huán)。 (3)測(cè)試串接循環(huán)。若串接的各個(gè)循環(huán)相互獨(dú)立,則可分別采用簡(jiǎn)單循環(huán)的測(cè)試方法;否則采用嵌套循環(huán)的測(cè)試方法。 (4)對(duì)于非結(jié)構(gòu)循環(huán)這種情況,無法進(jìn)行測(cè)試,需要按結(jié)構(gòu)化程序設(shè)計(jì)的思想將程序結(jié)構(gòu)化后,再進(jìn)行測(cè)試。,38,學(xué)習(xí)交流PPT,Z路徑覆蓋下的循環(huán)測(cè)試方法,Z路徑覆蓋是路徑覆蓋的一種變體,它是將程序中的循環(huán)結(jié)構(gòu)簡(jiǎn)化為

12、選擇結(jié)構(gòu)的一種路徑覆蓋。 循環(huán)簡(jiǎn)化的目的是限制循環(huán)的次數(shù),無論循環(huán)的形式和循環(huán)體實(shí)際執(zhí)行的次數(shù),簡(jiǎn)化后的循環(huán)測(cè)試只考慮執(zhí)行循環(huán)體一次和零次(不執(zhí)行)兩種情況,即考慮執(zhí)行時(shí)進(jìn)入循環(huán)體一次和跳過循環(huán)體這兩種情況。,在循環(huán)簡(jiǎn)化的思路下,循環(huán)與判定分支的效果是一樣的,即:循環(huán)要么執(zhí)行、要么跳過。,39,學(xué)習(xí)交流PPT,4.4 產(chǎn)生測(cè)試用例,在實(shí)踐中,除了前面給出的各種方法外,通常還可以采用以下三種方法來補(bǔ)充設(shè)計(jì)測(cè)試用例: (1)通過非路經(jīng)分析得到測(cè)試用例 這種方法得到的測(cè)試用例是在應(yīng)用系統(tǒng)本身的實(shí)踐中提供的,基本上是測(cè)試人員憑工作經(jīng)驗(yàn)的得到,甚至是猜測(cè)得到的。 (2)尋找尚未測(cè)試過的路徑并生成相應(yīng)的測(cè)

13、試用例 這種方法需要窮舉被測(cè)程序的所有路徑,并與前面已測(cè)試路徑進(jìn)行對(duì)比。 (3)通過指定特定路徑并生成相應(yīng)的測(cè)試用例,40,學(xué)習(xí)交流PPT,5 最少測(cè)試用例數(shù)計(jì)算,為實(shí)現(xiàn)測(cè)試的邏輯覆蓋,必須設(shè)計(jì)足夠多的測(cè)試用例,并使用這些測(cè)試用例執(zhí)行被測(cè)程序,實(shí)施測(cè)試。我們關(guān)心的是:對(duì)于某個(gè)具體的程序來說,至少需要設(shè)計(jì)多少個(gè)測(cè)試用例。這里提供一種估算最少測(cè)試用例數(shù)的方法。 我們知道,結(jié)構(gòu)化程序是由 3 種基本控制結(jié)構(gòu)組成:順序型(構(gòu)成串行操作)、選擇型(構(gòu)成分支操作)和重復(fù)型(構(gòu)成循環(huán)操作)。 為了把問題化簡(jiǎn),避免出現(xiàn)測(cè)試用例極多的組合爆炸,把構(gòu)成循環(huán)操作的重復(fù)型結(jié)構(gòu)用選擇結(jié)構(gòu)代替。這樣,任一循環(huán)便改造成進(jìn)入

14、循環(huán)體或不進(jìn)入循環(huán)體的分支操作了。,41,學(xué)習(xí)交流PPT,最少測(cè)試用例數(shù)計(jì)算(續(xù)),用N-S圖表示程序的3種基本控制結(jié)構(gòu):,圖中A、B、C、D、S均表示要執(zhí)行的操作,P是可取真假值的謂詞,Y表真值,N表假值。 圖中的 (c) 和 (d) 兩種重復(fù)型結(jié)構(gòu)代表了兩種循環(huán)。在做了簡(jiǎn)化循環(huán)的假設(shè)以后,對(duì)于一般的程序控制流,我們只考慮選擇型結(jié)構(gòu)。事實(shí)上它已經(jīng)能體現(xiàn)順序型和重復(fù)型結(jié)構(gòu)了。,42,學(xué)習(xí)交流PPT,最少測(cè)試用例數(shù)計(jì)算(續(xù)),顯然,要測(cè)試這個(gè)小程序,需要至少提供4個(gè)測(cè)試用例才能作到邏輯覆蓋,使得ac、ad、bc及bd操作均得到檢驗(yàn)。其實(shí),這里的4是圖中的第1個(gè)分支謂詞引出的兩個(gè)操作,及第2個(gè)分支

15、謂詞引出的兩個(gè)操作組合起來而得到的,即 22=4。并且,這里的2是由于兩個(gè)并列的操作,即1+1=2 而得到的。,例如,下圖表達(dá)了兩個(gè)順序執(zhí)行的分支結(jié)構(gòu)。當(dāng)兩個(gè)分支謂詞P1和P2取不同值時(shí),將分別執(zhí)行a或b及c或d操作。,43,學(xué)習(xí)交流PPT,最少測(cè)試用例數(shù)計(jì)算(續(xù)),對(duì)于一般的、更為復(fù)雜的問題,估算最少測(cè)試用例個(gè)數(shù)的原則也是同樣的: 如果在N-S圖中存在有并列的層次A1、A2,A1和A2的最少測(cè)試用例個(gè)數(shù)分別為a1、a2,則由 A1、A2 兩層所組合的 N-S圖對(duì)應(yīng)的最少測(cè)試用例數(shù)為a1a2。 如果在N-S圖中不存在有并列的層次,則對(duì)應(yīng)的最少測(cè)試用例數(shù)由并列的操作數(shù)決定,即N-S圖中除謂詞之外的操作框的個(gè)數(shù)。,44,學(xué)習(xí)交流PPT,最少測(cè)試用例數(shù)計(jì)算(續(xù)),例:如下圖所示的兩個(gè)N-S圖,至少需要多少個(gè)測(cè)試用例完成邏輯覆蓋?,對(duì)于第一個(gè)N-S圖: 由于圖中并不存在并列的層次,最少測(cè)試用例數(shù)由并列的操作數(shù)決定,即為1+1+1=3。 對(duì)于第二個(gè)N-S圖: 由于圖中沒有包含并列的層次,最少測(cè)試用例數(shù)仍由并列的操作數(shù)決定,即為1+1+1+1+1=5。,45,學(xué)習(xí)交流PPT,最少測(cè)試用例數(shù)計(jì)算(續(xù)),例:如下圖所示的N-S圖,至少需要多少個(gè)測(cè)試用例完成邏輯覆蓋?,分析該N-S圖: 圖中的2345和67是并列的兩層。其中,2345層對(duì)應(yīng)的最少測(cè)試用例數(shù)為1+1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論