[計算機軟件及應用]軟件測試-白盒測試ppt課件_第1頁
[計算機軟件及應用]軟件測試-白盒測試ppt課件_第2頁
[計算機軟件及應用]軟件測試-白盒測試ppt課件_第3頁
[計算機軟件及應用]軟件測試-白盒測試ppt課件_第4頁
[計算機軟件及應用]軟件測試-白盒測試ppt課件_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、白盒測試白盒測試o理解白盒測試的定義理解白盒測試的定義o掌握白盒測試的常用方法掌握白盒測試的常用方法教學目的:教學目的:教學重點:教學重點:教學難點:教學難點:教學方法:教學方法:多媒體多媒體教學課時:教學課時:6課時課時o白盒測試的覆蓋測試法和途徑測試法白盒測試的覆蓋測試法和途徑測試法o白盒測試案例應用白盒測試案例應用白盒測試白盒測試o什么是白盒測試什么是白盒測試o白盒測試的常用方法白盒測試的常用方法o白盒測試案例運用白盒測試案例運用一、什么是白盒測試一、什么是白盒測試 1、白盒測試的定義、白盒測試的定義n白盒測試White-box Testing也稱作構造測試或邏輯驅動測試,它是知道產品的

2、內部工作過程,可通過測試來檢測產品內部動作是否按照規(guī)格說明書的規(guī)定正常進展。按照程序內部的構造測試程序,檢驗程序中的每條通路是否都能按預定要求正確工作,而不顧它的功能。n白盒測試的主要方法有邏輯覆蓋、根本途徑測試等,主要用于軟件驗證。一、什么是白盒測試一、什么是白盒測試 2、為什么不采用窮舉途徑測試法、為什么不采用窮舉途徑測試法n窮舉途徑測試法無法檢查出程序本身是否違背了設計標準,即程序是否是一個錯誤的程序。n窮舉途徑測試不能查出程序因為遺漏途徑而出錯。n窮舉途徑測試發(fā)現不了一些與數據相關的錯誤。一、什么是白盒測試一、什么是白盒測試 3、白盒測試方法遵循的原那、白盒測試方法遵循的原那么么n確保

3、一個模塊中的所有獨立途徑至少被測試一次。n所有邏輯值均需測試真true和假false兩種情況。n檢查程序的內部數據構造,保證其構造的有效性。n在取值上、下邊界即可操作范圍內運行所有循環(huán)。一、什么是白盒測試一、什么是白盒測試 4、控制流圖、控制流圖n白盒測試是針對軟件產品內部邏輯構造進展測試的,測試人員必須對測試中的軟件有深化的理解,包括其內部構造、各單元部分及之間的內在聯絡,還有程序運行原理等等。因此這是一項龐大并且復雜的工作。為了更加突出程序的內部構造,便于測試人員理解源代碼,可以對程序流程圖進展簡化,生成控制流圖Control Flow Graph。n簡化后的控制流圖是由節(jié)點和控制邊組成的

4、。一、什么是白盒測試一、什么是白盒測試 4、控制流圖、控制流圖n控制流圖的特點:n具有唯一入口節(jié)點,即源節(jié)點,表示程序段的開場語句;n具有唯一出口節(jié)點,即匯節(jié)點,表示程序段的完畢語句;n節(jié)點由帶有標號的圓圈表示,表示一個或多個無分支的源程序語句;n控制邊由帶箭頭的直線或弧表示,代表控制流的方向。n常見的控制流圖如圖3-1所示。n包含條件的節(jié)點被稱為判斷節(jié)點也稱謂詞結點,由判斷節(jié)點發(fā)出的邊必須終止于某一個節(jié)點。n由邊和結點所限定的范圍稱為區(qū)域。圖3-1 常見的控制流圖一、什么是白盒測試一、什么是白盒測試4、控制流圖、控制流圖n將一個典型的程序流程圖轉換成控制流圖一、什么是白盒測試一、什么是白盒測

5、試4、控制流圖、控制流圖圖3-2 控制流圖例如n對于復合條件,可將其分解為多個單個條件,并映射成控制流圖。一、什么是白盒測試一、什么是白盒測試4、控制流圖、控制流圖n控制流圖的矩陣表示形式,其維數等于流圖的結點數,矩陣元素對應于結點的邊。n假設矩陣記為M,那么M4,1=“d。一、什么是白盒測試一、什么是白盒測試5、圖矩陣、圖矩陣流圖對應的矩陣圖結點12341a2b3c4d二、白盒測試的常用方法二、白盒測試的常用方法1、覆蓋率測試、覆蓋率測試n白盒測試技術的常見方法之一就是覆蓋測試,它是利用程序的邏輯構造設計相應的測試用例。測試人員要深化理解被測程序的邏輯構造特點,完全掌握源代碼的流程,才能設計

6、出恰當的用例。n根據不同的測試要求,覆蓋測試可以分為語句覆蓋、判斷覆蓋、條件覆蓋、判斷/條件覆蓋、條件組合覆蓋和途徑覆蓋。二、白盒測試的常用方法二、白盒測試的常用方法1、覆蓋率測試、覆蓋率測試n下面是一段簡單的C語言程序,作為公共程序段來說明五種覆蓋測試的各自特點。n程序3-1:n1If A1& B=0 thenn2 X=X/An3If A2| X1 thenn4 X=X+1n邏輯運算符“&表示“與的關系,邏輯運算符“|表示“或的關系。其程序控制流圖如圖3-3所示。二、白盒測試的常用方法二、白盒測試的常用方法1、覆蓋率測試、覆蓋率測試圖3-3 例如程序流程圖及流圖二、白盒測試的

7、常用方法二、白盒測試的常用方法2、語句覆蓋、語句覆蓋n語句覆蓋Statement Coverage是指設計假設干個測試用例,程序運行時每個可執(zhí)行語句至少被執(zhí)行一次。在保證完成要求的情況下,測試用例的數目越少越好。n以下是針對公共程序段設計的測試用例:測試用例A,B,XA1andB=0A=2or X1執(zhí)行途徑Test Case 12,0,3TrueTrueaceBCEF程序按途徑a,c,e流圖上的途徑BCEF或1-2-3-4-5順序執(zhí)行,程序中的4個語句都被執(zhí)行一次,符合語句覆蓋的要求。二、白盒測試的常用方法二、白盒測試的常用方法2、語句覆蓋、語句覆蓋n從外表上看,語句覆蓋用例測試了程序中的每一

8、個語句行,好似對程序覆蓋得很全面,但實際上語句覆蓋測試是最弱的邏輯覆蓋方法。例如,第一個判斷的邏輯運算符“&錯誤寫成“|,或者第二個判斷的邏輯運算符“|錯誤地寫成“&,這時假如仍采用Test Case 1測試用例那么程序仍按流程圖上的途徑ace執(zhí)行;當第二個條件語句中X1誤寫成X0時,上述的測試用例也不能發(fā)現這一錯誤。n根據上述分析可知,語句覆蓋測試只是外表上的覆蓋程序流程,沒有針對源程序各個語句間的內在關系,設計更為細致的測試用例。二、白盒測試的常用方法二、白盒測試的常用方法3、判斷覆蓋、判斷覆蓋n判斷覆蓋Branch Coverage是指設計假設干個測試用例,執(zhí)行被測試程序

9、時,程序中每個判斷條件的真值分支和假值分支至少被執(zhí)行一遍。在保證完成要求的情況下,測試用例的數目越少越好。判斷覆蓋又稱為分支覆蓋。n對上述例如程序段,設計兩個測試用例,使它們能通過途徑ace和abd或通過途徑acd及ade,即可到達“斷定覆蓋的標準。二、白盒測試的常用方法二、白盒測試的常用方法3、判斷覆蓋、判斷覆蓋測試用例A,B,XA1andB=0A=2or X1執(zhí)行途徑Test Case 12,0,3TrueTrueaceTest Case 21,0,1FalseFalseabdn采用這一組測試用例,公共程序段的4個判斷分支b,c,d,e都被覆蓋到了。二、白盒測試的常用方法二、白盒測試的常用

10、方法3、判斷覆蓋、判斷覆蓋測試用例A,B,XA1andB=0A=2or X1執(zhí)行途徑Test Case 33,0,1TrueFalseacdTest Case 42,1,3FalseTrueaben采用這一組測試用例,公共程序段的4個判斷分支b,c,d,e也都被覆蓋到了。n需要注意的是,上述兩組測試用例在滿足斷定覆蓋的同時,還完成了語句覆蓋,因此斷定覆蓋要比語句覆蓋更強一些。n但是,此時假如程序段中的第二個斷定條件X1誤寫成X1andB=0包含了兩個條件A1和B=0,此時,一個更強的覆蓋標準是條件覆蓋。n條件覆蓋Condition Coverage是指設計假設干個測試用例,執(zhí)行被測試程序時,程

11、序中每個判斷條件中的每個判斷式的真值和假值至少被執(zhí)行一遍。二、白盒測試的常用方法二、白盒測試的常用方法4、條件覆蓋、條件覆蓋n因此,在第一個斷定A1ANDB=0中應考慮到各種條件取值的情況:nA1為true,記為T1;nA1為false,記為-T1;nB=0為true,記為T2;nB=0為false,記為-T2;n同樣,對于第二個斷定A=2ORX1應考慮到:nA=2為true,記為T3;nA=2為false,記為-T3;nX1為true,記為T4;nX1為false,記為-t4;二、白盒測試的常用方法二、白盒測試的常用方法4、條件覆蓋、條件覆蓋n這兩個測試用例不但覆蓋了4個條件的全部8種情況,

12、而且將兩個斷定的4個分支b、c、d、e也同時覆蓋了,即同時到達了條件覆蓋和斷定覆蓋。測試用例A,B,X執(zhí)行途徑覆蓋條件Test Case 12,0,3aceT1,T2,T3,T4Test Case 51,1,1abd-T1,-T2,-T3,-T4二、白盒測試的常用方法二、白盒測試的常用方法4、條件覆蓋、條件覆蓋n但是并不可以說判斷覆蓋是條件覆蓋的子集。n上表中雖然覆蓋了4個內部判斷式的8種真假值情況。但是這組測試用例的執(zhí)行途徑是abe,僅是覆蓋了判斷條件的4個真假分支中的2個。n所以,需要設計一種能同時滿足判斷覆蓋和條件覆蓋的覆蓋測試方法,即判斷/條件覆蓋測試。測試用例A,B,X執(zhí)行途徑覆蓋條

13、件Test Case 61,0,3abe-T1,T2,-T3,T4Test Case 41,1,1abeT1,-T2,T3,-T4二、白盒測試的常用方法二、白盒測試的常用方法5、斷定、斷定/條件覆蓋條件覆蓋n判斷/條件覆蓋是指設計假設干個測試用例,執(zhí)行被測試程序時,程序中每個判斷條件的真假值分支至少被執(zhí)行一遍,并且每個判斷條件的內部判斷式的真假值分支也要被執(zhí)行一遍。n上表雖然滿足了判斷覆蓋和條件覆蓋,但是沒有對每個判斷條件的內部判斷式的所有真假值組合進展測試。條件組合判斷是必要的,因為條件判斷語句中的“與和“或,即“&和“|,會使內部判斷式之間產生抑制作用。例如,C=A & B

14、中,假如A為假值,那么C就為假值,測試程序就不檢測B了,B的正確與否就無法測試了。同樣,C=A | B中,假如A為真值,那么C就為真值,測試程序也不檢測B了,B的正確與否也就無法測試了。測試用例A,B,X執(zhí)行途徑覆蓋條件A1andB=0A=2or X1Test Case 12,0,3ace-T1,T2,-T3,T4TrueTrueTest Case 51,1,1abdT1,-T2,T3,-T4FalseFalse二、白盒測試的常用方法二、白盒測試的常用方法6、組合覆蓋、組合覆蓋n條件組合覆蓋是指設計假設干個測試用例,執(zhí)行被測試程序時,程序中每個判斷條件的的內部判斷式的各種真假組合可能都至少被執(zhí)

15、行一遍??梢?,滿足條件組合覆蓋的測試用例組一定滿足判斷覆蓋、條件覆蓋和判斷/條件覆蓋。n在上述例如程序段中,每個斷定各包含有兩個條件,這兩個條件在斷定中有8種可能的組合:nA1,B=0,記為T1,T2;nA1,B0,記為T1,-T2;nA=1,B=0,記為-T1,T2;nA=1,B0,記為-T1,-T2;nA=2,X1,記為T3,T4;nA=2,X=1,記為T3,-T4;nA2,X1,記為-T3,T4;nA2,X0ifitype=0break;elseifitype=1x=x+10;elsey=y+20;二、白盒測試的常用方法二、白盒測試的常用方法8、根本途徑測試方法、根本途徑測試方法n第一步

16、:畫出控制流圖:n圖中每一個圓稱做流圖的結點,代表一條或多條語句。流圖中的箭頭稱作邊或連接,代表控制流。二、白盒測試的常用方法二、白盒測試的常用方法8、根本途徑測試方法、根本途徑測試方法n第二步:求出程序環(huán)形復雜度n根據程序環(huán)形復雜度的計算公式,求出程序途徑集合中的獨立途徑數目。n公式1:VG=10-8+2,其中10是控制流圖G中邊的數量,8是控制流圖中節(jié)點的數目。n公式2:VG=3+1,其中3是控制流圖G中判斷節(jié)點的數目。n公式3:VG=4,其中4是控制流圖G中區(qū)域的數目。n因此,控制流圖G的環(huán)形復雜度是4。就是說至少需要4條獨立途徑組成根本途徑集合,并由此得到可以覆蓋所有程序語句的測試用例

17、。二、白盒測試的常用方法二、白盒測試的常用方法8、根本途徑測試方法、根本途徑測試方法n第三步:導出測試用例Test Case n可得出程序的根本途徑集中有4條獨立途徑:n途徑1:4-14n途徑2:4-6-7-14n途徑3:4-6-9-10-13-4-14n途徑4:4-6-9-12-13-4-14二、白盒測試的常用方法二、白盒測試的常用方法8、根本途徑測試方法、根本途徑測試方法n第四步:設計測試用例Test Case n根據第三步中的獨立途徑,設計測試用例的輸入數據和預期輸出。測試用例輸入數據預期輸出Test Case 1Irecordnum=0Itype=0 x=0y=0Test Case 2

18、Irecordnum=1Itype=0 x=0y=0Test Case 3Irecordnum=1Itype=1x=10y=0Test Case 4Irecordnum=1Itype=2x=0y=20例如:程序3-3:1if a or b2then 3 procedure x 4else 5 procedure y; 6 對應的控制流圖如圖2-12所示,程序行1的a,b都是獨立的判斷節(jié)點,所以共計2個判斷節(jié)點。圖3-4的環(huán)形復雜度為VG=2+1,其中2是圖3-4中判斷節(jié)點的數目。二、白盒測試的常用方法二、白盒測試的常用方法8、根本途徑測試方法、根本途徑測試方法二、白盒測試的常用方法二、白盒測試的常用方法8、根本途徑測試方法、根本途徑測試方法圖3-4 程序3-3的控制流圖三、白盒測試案例運用三、白盒測試案例運用 n書P3840作業(yè)作業(yè) n1下面是一段簡單的C語言程序,請分別用語句覆蓋、斷定覆蓋、條件覆蓋、斷定/條件覆蓋、組合覆蓋和途徑覆蓋方法為其設計測試用例。n1 If x100& y500 thenn2 score=score+1n3 If x=1000| z5000 thenn4 score=score+5作業(yè)作業(yè) n2下面通過一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論