白盒測試、黑盒測試.ppt_第1頁
白盒測試、黑盒測試.ppt_第2頁
白盒測試、黑盒測試.ppt_第3頁
白盒測試、黑盒測試.ppt_第4頁
白盒測試、黑盒測試.ppt_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,白盒法,白盒測試測試用例一般采用邏輯覆蓋法進行設計。,語 句 覆 蓋,判 定 覆 蓋,條 件 覆 蓋,判 定 條 件 覆 蓋,條 件 組 合 覆 蓋,弱,強,軟件測試方法,路 徑 覆 蓋,2, 語句覆蓋: 選擇足夠的測試用例,使得程序中每個語句至少都能被執(zhí)行一次。 判定覆蓋: 執(zhí)行足夠的測試用例,使得程序中每個判定至少都獲得一次“真”值和“假”值。 條件覆蓋: 執(zhí)行足夠的測試用例,使得所有判定中的每個條件至少都獲得一次“真”值和“假”值。,白盒法常用的覆蓋標準,軟件測試方法,3, 判定/條件覆蓋: 執(zhí)行足夠的測試用例,使得判定中每個條件取到各種可能的值,并使每個判定取到各種可能的結果。 條

2、件組合覆蓋: 執(zhí)行足夠的例子,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。 路徑覆蓋: 路徑覆蓋是相當強的邏輯覆蓋,它保證程序中每條可能的路徑都至少執(zhí)行一次。,白盒法常用的覆蓋標準,軟件測試方法,4,白盒法步驟:,1)選擇邏輯覆蓋標準。 2)按照覆蓋標準列出所有情況。 3)選擇確定測試用例。 4)驗證分析運行結果與預期結果。,5,白盒法舉例,Procedure (VAR A,B,X:REAL); BEGIN IF(A1) AND (B=0) THEN X:=X/A ; IF (A=2) OR (X1) THEN X:=X+1 END;,6,1、語句覆蓋,使得程序中每個語句至少都能被執(zhí)行一次

3、。,A1 AND B=0,X:=X/A,A=2 OR X1,X:=X+1,a,b,c,d,e,滿足語句覆蓋的情況: 執(zhí)行路徑:sacbed,選擇用例: (2,0,4),(2,0,3),用例格式: 輸入(A,B,X),輸出(A,B,X),Y,N,Y,N,開始,結束,s,7,2、判定覆蓋,使得程序中每個判定至少為TRUE和FALSE各一次。,覆蓋情況:應執(zhí)行路徑 sabd sacbed 或: sacbd sabed,選擇用例(其一): (2,0,4),(2,0,3) sacbed (1,1,1),(1,1,1) sabd (2,1,1),(2,1,2) sabed (3,0,3),(3,1,1)

4、sacbd,A1 AND B=0,X:=X/A,A=2 OR X1,X:=X+1,a,b,c,d,e,Y,N,Y,N,開始,結束,s,8,3、條件覆蓋,使得判定中的每個條件至少都獲得一次“真”值和“假”值。,應滿足以下覆蓋情況: 判定一: A1, A1, B=0, B0 判定二: A=2, A2, X1, X1,選擇用例: (2,0,4),(2,0,3) (1,1,1),(1,1,1),2,A1,A2,0,B=0,4,X1,1,A1,A=2,1,B0,1,X1,A1 AND B=0,X:=X/A,A=2 OR X1,X:=X+1,a,b,c,d,e,Y,N,Y,N,開始,結束,s,9,4、判定

5、/條件覆蓋,同時滿足判定覆蓋和 條件覆蓋。,應滿足以下覆蓋情況: 條件: A1, A1, B=0, B0 A=2, A2, X1, X1 應執(zhí)行路徑 sacbed sabd,選擇用例: (2,0,4),(2,0,3)(sacbed ) (1,1,1),(1,1,1) (sabd),A1 AND B=0,X:=X/A,A=2 OR X1,X:=X+1,a,b,c,d,e,Y,N,Y,N,開始,結束,s,10,5、條件組合覆蓋,使得每個判定中條件的各種“真”“假”可能組合都至少出現(xiàn)一次,A1,X:=X/A,A=2,X:=X+1,a,b,c,d,e,B=0,X1,Y,N,Y,N,Y,N,Y,N,編譯

6、系統(tǒng)下的執(zhí)行情況: 部分路徑未被執(zhí)行。,滿足以下覆蓋情況: A1, B =0 A1, B0 A1, B =0 A1, B0 A=2, X1 A=2, X1 A2, X1 A2, X1,選擇用例: (2,0,4),(2,0,3) (2,1,1),(2,1,2) (1,0,3),(1,0,4) (1,1,1),(1,1,1),c,結束, , , , ,11,6、路徑覆蓋法,A1 AND B=0,X:=X/A,A=2 OR X1,X:=X+1,a,b,c,d,e,Y,N,Y,N,開始,結束,s,每條可能的路徑都至少執(zhí)行一次,12,例題:三角形問題,輸入三整數(shù),判斷是否構成三角形,如構成三角形,則輸出

7、三條邊的值,否則輸出“不能構成三角形”。 要求:1、用程序流程圖表示該問題的算法; 2、設計路徑覆蓋的測試用例。,13,解法1:,覆蓋路徑: 1 2,14,解法2:,覆蓋路徑: 測試用例 1 (3,4,5) 2 (2,2,5) 3 (2,5,2) 4 (5,2,2),15,解法2:路徑覆蓋法測試用例設計,16,思考,解法1與解法2有何不同?哪一種設計得更合理?,17,基本路徑測試,1,畫出流程圖,18,基本路徑測試,1,2,3,4,5,10,11,2,簡化流程圖,19,V(G) = 區(qū)域數(shù)量(由節(jié)點、連線包圍的區(qū)域,包括圖形外部區(qū)域) V(G) = 連線數(shù)量 - 節(jié)點數(shù)量 + 2 V(G) =

8、 簡單可預測節(jié)點數(shù)量 + 1,環(huán)路復雜度(Cyclomatic complexity):代碼邏輯復雜度的 度量。用V(G) 表示。通過V(G) 確定基本路徑數(shù)。,基本路徑測試,3,計算環(huán)路復雜度,20,V(G)=4,Region 4,基本路徑測試,21,基本路徑集合: 由獨立路徑構成的集合 由基本路勁集合導出的測試用例,保證被測程序的每條可執(zhí)行語句至少被執(zhí)行一次。 基本集合不一定唯一,基本路徑測試,3,確定基本路徑集合,22,Path1: 1-2-3-6-7-9-10-1-11,示例:基本路徑測試用例,Path2: 1-2-3-6-8-9-10-1-11,Path3: 1-2-3-4-5-10

9、-1-11,Path4: 1-11,還有其它路徑集合嗎?,23,基本路徑測試:練習,A,E,C,D,B,Path1: A-C-E,Path2: A-B-C-E,Path3: A-B-C-D-E,V(G)= ?,還有其它路徑集合嗎?,3,另外兩組路徑集合?,24,等 價 分 類 法,邊 值 分 析 法,錯 誤 推 測 法,因 果 圖 法,不考慮程序的內(nèi)部結構與特性,只根據(jù)程序功能或程序的外部特性設計測試用例。,黑盒法,判 定 表 法,25,1、等價分類法,基本思想:根據(jù)程序的I/O特性,將程序的定義域劃分為有限個等價區(qū)段 “等價類”,從等價類中選擇出的用例,具有“代表性”。,等價類分為: 有效等

10、價類 對于程序的規(guī)格說明是合理的、有意義的輸入數(shù)據(jù)構成的集合。 無效等價類 對于程序的規(guī)格說明,是不合理的,是沒有意義的輸入數(shù)據(jù)構成的集合。,26,等價分類法步驟,顯然,關鍵是 如何劃分等價類,應按照輸入條件(如輸入值的范圍,值的個數(shù),值的集合,輸入條件必須如何)劃分為有效等價類和無效等價類。 例如:每個學生可選修1-3門課程 可以劃分一個有效等價類:選修1-3門課程。 可以劃分兩個無效等價類:未選修課,選修課超過3門。 又如:標識符的第一個字符必須是字母。 可以劃分為一個有效等價類:第一個字符是字母。 可以劃分一個無效等價類:第一個字符不是字母。,A、為每個等價類編號; B、使一個測試用例盡

11、可能覆蓋多個有效等價類 C、特別要注意的是:一個測試用例只能覆蓋一個無效等價類。,劃分等價類,選擇測試用例,27,2、邊值分析法,基本思想: 選擇等價類的邊緣值作為測試用例,讓每個等價類的邊界都得到測試,選擇測試用例既考慮輸入亦考慮輸出。,分析步驟: A、先劃分等價類。 B、選擇測試用例,測試等價類邊界。,邊界選擇原則: A、按照輸入值范圍的邊界。 B、按照輸入/輸出值個數(shù)的邊界。 C、輸出值域的邊界。 D、輸入/輸出有序集的邊界。,28,A、按照輸入值范圍的邊界。 例如:輸入值的范圍是-1.0至1.0,則可選擇用例 1.0、1.0、-1.001、1.001。 B、按照輸入/輸出值個數(shù)的邊界。

12、 例如:輸入文件可有1-255個記錄,則 設計用例:文件的記錄數(shù)為 0個、1個、255個、256個。 C、輸出值域的邊界。 例如:檢索文獻摘要,最多4篇。設計用例:可檢索0篇、1篇、4篇,和5篇(錯誤)。 D、輸入/輸出有序集(如順序文件、線性表)的邊界。 應選擇第一個元素和最后一個元素。,邊值分析法舉例,29,等價類劃分法舉例,等價分類法步驟,程序功能說明書指出,某程序的輸入條件為:每個學生可以選修1至3門課程,試用黑盒法設計測試用例。 (1)按等價分類法設計測試用例(要求列出設計過程) (2)按邊緣值分析法設計測試用例。,30,黑盒測試舉例,等價分類法步驟,答:等價類法 (1)列出等價類表

13、,設輸入選修課數(shù)目為X:,(2)設計測試用例: 測試用例1: 輸入X=2,覆蓋等價類(1) 測試用例2: 輸入X=5,覆蓋等價類(2) 測試用例3: 輸入X=0,覆蓋等價類(3) 邊界值法:X=0,X=1,X=3,X=4,31,例: 某報表處理系統(tǒng)要求用戶輸入處理報表的日期,日期限制在2003年1月至2008年12月,即系統(tǒng)只能對該段期間內(nèi)的報表進行處理,如日期不在此范圍內(nèi),則顯示輸入錯誤信息。 系統(tǒng)日期規(guī)定由年、月的6位數(shù)字字符組成,前四位代表年,后兩位代表月。 如何用等價類劃分法設計測試用例,來測試程序的日期檢查功能?,用等價類劃分法設計測試用例,32,第一步:等價類劃分,“報表日期”輸入

14、條件的等價類表,33,第二步:為有效等價類設計測試用例,對表中編號為1,2,3的3個有效等價類用一個測試用例覆蓋:,(1) 6位數(shù)字字符 (2) 年在20032008之間 (3) 月在112之間,34,第三步:為每一個無效等價類至少設計一個測試用例,本例的10個等價類至 少需要8個測試用例,35,習題,某城市電話號碼由三部分組成,分別是: 地區(qū)碼 空白或三位數(shù)字; 前 綴 非0且非1開頭的三位數(shù)字; 后 綴 4位數(shù)字。 假定被測程序能接受一切符合上述規(guī)定的電話號碼, 拒絕所有不符合規(guī)定的電話號碼。要求: (1)請選擇適當?shù)暮诤袦y試方法,寫出選擇該方法的原因,并使用該方法的步驟,給出測試用例表。

15、 (2)如果所生成的測試用例不夠全面,請考慮用別的測試方法生成一些補充的測試用例。,36,3,4,1 2,5 6 7,8 9 10 11 12,13 14 15,等價類劃分法,37,38,習題:三角形問題,一個程序輸入三個數(shù)a、b、c,分別作為三角形的三條邊,現(xiàn)通過程序判斷由三條邊構成的三角形的類型為等邊三角形、等腰三角形、一般三角形(特殊的還有直角三角形),以及是否構成三角形。 問題:設三角形3條邊分別為a、b、c。試用等價分類法設計測試用例,寫出設計過程。,39,在多數(shù)情況下,是從輸入域劃分等價類的,但并非不能從被測程序的輸出域反過來定義等價類,事實上,這對于三角形問題卻是最簡單的劃分方法

16、。 在三角形問題中,有四種可能的輸出:等邊三角形、等腰三角形、一般三角形和非三角形。利用這些信息能夠確定下列輸出(值域)等價類。 R1 = : 邊為a,b,c的等邊三角形 R2 = : 邊為a,b,c的等腰三角形 R3 = : 邊為a,b,c的一般三角形 R4 = : 邊為a,b,c不能組成三角形 ,分析: 三角形問題,40,解:輸入條件等價類劃分,41,42,三角形問題,加入條件a、b、c在1,100之間。 輸入三個數(shù)a、b、c,分別作為三角形的三條邊,現(xiàn)通過程序判斷由三條邊構成的三角形的類型為等邊三角形、等腰三角形、一般三角形(特殊的還有直角三角形),以及構不成三角形。 現(xiàn)在要求輸入三個整

17、數(shù)a、b、c,必須滿足以下條件: 條件1 1a100 條件4 ab+ c 條件2 1b100 條件5 ba+ c 條件3 1c100 條件6 ca+ b,習題:,題目:結合所學的黑盒測試用例設計方法,設計出合理的測試用例。要求列出設計過程。如果所生成的測試用例不夠全面,請考慮用別的測試方法生成一些補充的測試用例。,43,等價類劃分:,44,等價類測試用例,與上題分析有何不同呢?,45,邊界值法繼續(xù)設計無效等價類測試用例:,還可以設計哪些測試用例呢?,46,繼續(xù)設計無效等價類測試用例:,輸入非法字符:,47,決策表,在一些數(shù)據(jù)處理問題當中,某些操作的實施依賴于多個邏輯條件的組合,即:針對不同邏輯

18、條件的組合值,分別執(zhí)行不同的操作。 決策表(也稱判定表),最適合描述在多邏輯條件取值的組合所構成的復雜情況下,分別執(zhí)行哪些不同的動作。,決策表實例,48,規(guī)則,選項,“閱讀指南”決策表,49,決策表的組成,決策表通常由以下4部分組成: 條件樁左上部分,列出各種可能的單個條件 動作樁左下部分,列出可能采取的單個動作 條件項右上部分,針對各種條件給出多組條件取值的組合 動作項右下部分,指出在條件項的各組取值情況下應采取的動作,將任何一個條件組合的特定取值及相應要執(zhí)行的動作稱為一條規(guī)則。在決策表中貫穿條件項和動作項的一列就是一條規(guī)則。,50,決策表分類,有限條目決策表 所有條件都是二元條件的決策表。

19、 擴展條目決策表 若條件可以有多個值,則對應的決策表稱擴展條目決策表。,51,決策表的生成,構造決策表的5個步驟: (1) 確定規(guī)則的個數(shù)。 有n個條件的決策表有2n個規(guī)則(每個條件取真、假值)。 (2) 列出所有的條件樁和動作樁。 (3) 填入條件項。 (4) 填入動作項,得到初始決策表。 (5) 簡化決策表,合并相似規(guī)則。 若表中有兩條以上規(guī)則具有相同的動作,并且在條件項之間存在極為相似的關系,便可以合并。 合并后的條件項用符號“-”表示,說明執(zhí)行的動作與該條件的取值無關,稱為無關條件。,三角形問題的決策表,52,三角形問題的決策表,規(guī)則,選項,53,決策表應用,例題:NextDate函數(shù)

20、的決策表測試用例設計 NextDate函數(shù)要求函數(shù)的輸出是輸入日期后一天的日期。 例如:若輸入為2011年3月7日,則函數(shù)輸出應為2011年3月8日。 問題:對上述函數(shù)采用判定表方法設計測試用例。,54,決策表應用,問題分析:NextDate函數(shù)的三個變量之間在輸入定義域中存在一定的邏輯依賴關系,由于等價類劃分和邊界值分析測試都假設了變量是獨立的,如果采用上述兩種方法設計測試用例,那么這些依賴關系在機械的選取輸入值時可能會丟失。而采用決策表法則可以通過使用“不可能動作”的概念表示條件的不可能組合,來強調這種依賴關系。 說明:當決策表規(guī)模(指規(guī)則的數(shù)目,n個條件的決策表有2n個規(guī)則)較大時,可以

21、通過擴展條目決策表(條件使用等價類)、代數(shù)簡化表、將大表“分解”為小表等方法。,實例分析,55,NextDate函數(shù),為了獲得下一個日期,NextDate函數(shù)執(zhí)行如下操作: 如果輸入日期不是當月最后一天,則把day變量的值加1; 如果輸入日期是111月份中某月的最后一天,則把day變量的值復位為1,month變量的值加1; 如果輸入日期是12月的最后一天,則day變量和month變量的值都復位為1,year變量的值加1。 關于最后一天的判斷: 如果是有31天的月份(1,3,5,7,8,10,12),day變量值為31; 如果是有30天的月份(4,6,9,11), day變量值為30; 如果是有

22、29天的月份(閏年的2月),day變量值為29; 如果是有28天的月份(非閏年的2月),day變量值為28。,56,NextDate函數(shù)的條件樁,考慮到?jīng)Q策表的規(guī)模,條件使用month、day、year變量的等價類,在以下等價類集合上建立決策表: (1)對于month變量的取值 M1: month : month共有30天; M2: month : month共有31天,12月除外; M3: month : month是12月; M4: month : month是2月; (2)對于day變量的取值 D1:day:1day27; D2: day:day=28; D3: day:day=29;

23、D4: day:day=30; D5: day:day=31;,(3)對于year變量的取值 Y1:year:year是閏年; Y2: year:year不是閏年,決策表,57,NextDate函數(shù)的動作樁,根據(jù)所執(zhí)行的操作,可列出NextDate函數(shù)的動作樁: a1: 不可能; a2: day加1; a3: day復位; a4: month加1; a5: month復位; a6: year加1,決策表,58,NextDate函數(shù)的決策表,back,59,簡化后的函數(shù)決策表,60,測試用例,61,作業(yè):,1、某軟件的一個模塊的需求規(guī)格說明書中描述: 在供應商業(yè)務處理中,有一個“檢查訂貨單”的功

24、能;檔客戶訂貨款項大于5000元時,如果客戶拖欠款超過60天,向客戶發(fā)一份拒絕供貨備忘錄,在客戶沒有還清貨款前不發(fā)供貨單;如果客戶拖欠款沒有超過60天,可以發(fā)供貨單。 如果客戶訂款沒有超過5000元,而客戶拖欠款超過60元,仍可以發(fā)供貨單,但還要發(fā)一份催款通知單;如果客戶拖欠款沒有超過60天,可以發(fā)供貨單。 要求:畫出決策表,62,因果圖法的簡介,因果圖法產(chǎn)生的背景: 等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關系。這樣雖然各種輸入條件可能出錯的情況已經(jīng)測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。 如果在測試時必須考慮輸

25、入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應產(chǎn)生多個動作的形式來進行測試用例的設計,這就需要利用因果圖(邏輯模型)。,63,因果圖法的簡介(續(xù)),因果圖法是基于這樣的一種思想:一些程序的功能可以用判定表(或稱決策表)的形式來表示,并根據(jù)輸入條件的組合情況規(guī)定相應的操作。 因果圖法的定義:是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。 采用因果圖法設計測試用例的步驟: (1)根據(jù)程序規(guī)格說明書描述,分析并確定因(輸入條件)和果(輸出結果或程序狀態(tài)的改變),畫出因果圖。 (2)將得到的因

26、果圖轉換為判定表。 (3)為判定表中每一列所表示的情況設計一個測試用例。,64,因果圖法的簡介(續(xù)),使用因果圖法的優(yōu)點: (1)考慮到了輸入情況的各種組合以及各個輸入情況之間的相互制約關系。 (2)能夠幫助測試人員按照一定的步驟,高效率的開發(fā)測試用例。 (3)因果圖法是將自然語言規(guī)格說明轉化成形式語言規(guī)格說明的一種嚴格的方法,可以指出規(guī)格說明存在的不完整性和二義性。,65,因果圖,因果圖中用來表示4種因果關系的基本符號:,66,因果圖(續(xù)),因果圖中的4種基本關系 在因果圖的基本符號中,圖中的左結點ci表示輸入狀態(tài)(或稱原因),右結點ei表示輸出狀態(tài)(或稱結果)。ci 與 ei 取值0或1,0表示某狀態(tài)不出現(xiàn),1則表示某狀態(tài)出現(xiàn)。 恒等:若 c1 是1,則 e1 也為1,否則 e1 為0。 非:若 c1 是1,則 e1 為0,否則e1為1。 或:若 c1 或 c2 或 c3 是1,則 e1 為1,否則 e1 為0。 與:若 c1 和 c2 都是1,則 e1 為1,否則 e1 為0。,67,因果圖(續(xù)),因果圖中的

溫馨提示

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

最新文檔

評論

0/150

提交評論