第4章黑盒測試_第1頁
第4章黑盒測試_第2頁
第4章黑盒測試_第3頁
第4章黑盒測試_第4頁
第4章黑盒測試_第5頁
已閱讀5頁,還剩142頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第4 4章章 黑盒測試黑盒測試 本章內容本章內容 4.1 概述 4.2 等價類劃分法 4.3 邊界值分析法 4.4 決策表法 4.5 因果圖法 4.6 場景法 4.1 4.1 概概 述述 黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看做一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,對程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產生正確的輸出信息。黑盒測試著眼于程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。 【例例4-14-1】 任意輸入三角形的三邊,判斷

2、三角形類型。如圖4.1所示,輸入三角形的三條邊a、b、c,設計測試用例數(shù)量。假設在字長為16位的計算機上運行,則每個整數(shù)可能的取值為216種,那么a、b、c三條邊的各種可能取值的排列組合就有21621621631014種,執(zhí)行完所有的測試大約需要執(zhí)行31014次,也就是說,大約需要執(zhí)行31014次才能做到“窮盡”測試。假設執(zhí)行1次需耗時1 ms,則執(zhí)行完所有的測試數(shù)據(jù)就需1萬年。問題描述問題描述 (1).三角形問題 輸入三個整數(shù)a,b,c,分別作為三角形的三條邊,現(xiàn)通過程序判斷三條邊構成三角形的類型為:一般三角形等邊三角形等腰三角形不構成三角形問題描述問題描述現(xiàn)在要求輸入的三個整數(shù)必須滿足以下

3、條件: 條件1: a 0 條件2: b 0 條件3: c 0 條件4: ab+c 條件5: ba+c 條件6: c確定測試用例確定測試用例4.2 4.2 等價類劃分法等價類劃分法 2 等價類劃分的原則(1) 如果輸入條件規(guī)定了取值范圍(閉區(qū)間),或值的個數(shù),則可以確立一個有效等價類和兩個無效等價類。4.2 4.2 等價類劃分法等價類劃分法 例如,在程序的規(guī)格說明中,對輸入條件有一句話: “ 項數(shù)可以從1到999 ” 則有效等價類是“1項數(shù)999”兩個無效等價類是“項數(shù)1”或“項數(shù)999”。在數(shù)軸上表示成: 4.2 4.2 等價類劃分法等價類劃分法(2) 如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)

4、定了“必須如何”的條件,這時可確立一個有效等價類和一個無效等價類。例如,在例如,在PascalPascal語言中對變量標識符規(guī)定語言中對變量標識符規(guī)定為為“以字母打頭的以字母打頭的串串”。那么所有以。那么所有以字母打頭的構成有效等價類,而不在此集字母打頭的構成有效等價類,而不在此集合內(不以字母打頭)的歸于無效等價類。合內(不以字母打頭)的歸于無效等價類。4.2 4.2 等價類劃分法等價類劃分法 (3) (3) 如果輸入條件是一個布爾量,則可以如果輸入條件是一個布爾量,則可以確定一個有效等價類和一個無效等價類。確定一個有效等價類和一個無效等價類。 (4) (4) 如果規(guī)定了輸入數(shù)據(jù)的一組值,而

5、且如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對每個輸入值分別進行處理。程序要對每個輸入值分別進行處理。這時這時可為可為 每一個輸入值確立一個有效等價類,每一個輸入值確立一個有效等價類,此外針對這組值確立一個無效等價類,它此外針對這組值確立一個無效等價類,它是所有不允許的輸入值的集合。是所有不允許的輸入值的集合。4.2 4.2 等價類劃分法等價類劃分法 例如,在教師上崗方案中規(guī)定對教授、副教授、講師和助教分別計算分數(shù),做相應的處理。因此可以確定4個有效等價類為教授、副教授、講師和助教,一個無效等價類,它是所有不符合以上身分的人員的輸入值的集合。4.2 4.2 等價類劃分法等價類劃分法 (5) 如果規(guī)

6、定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。 如:輸入數(shù)據(jù)是1到100之間的整數(shù)4.2 4.2 等價類劃分法等價類劃分法 3 確定測試用例等價類劃分的步驟:先考慮輸入數(shù)據(jù)的數(shù)據(jù)類型(合法類型和非法類型)再考慮數(shù)據(jù)范圍(合法類型中的合法區(qū)間和非法區(qū)間)確立了等價類后,建立等價類表,列出所有劃分的等價類.4.2 4.2 等價類劃分法等價類劃分法根據(jù)劃分的等價類,按以下原則選擇測試用例: (1) 為每一個等價類規(guī)定一個唯一編號; (2) 設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,重復這一步,直到所有的有效等價類都被覆

7、蓋為止; (3)設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。舉例舉例是否三角形的是否三角形的3 3條條邊邊a0a0b0b0c0c0a+bca+bcb+cab+caa+cba+cb(1)(1)(2)(2)(3)(3)(4)(4)(5)(5)(6)(6)a0a0b0b0c0c0a+b ca+b cb+c ab+c aa+c ba+c b(7)(7)(8)(8)(9)(9)(10)(10)(11)(11)(12)(12)等腰三角形等腰三角形? ?a=b & bca=b & bcb=c & cab=c & c

8、ac=a & abc=a & ab(13)(13)(14)(14)(15)(15)ab & ab & bc &bc &caca(16)(16)等邊三角形等邊三角形? ?a=b a=b &b=c&c=a&b=c&c=a(17)(17)ababbcbccaca(18)(18)(19)(19)(20)(20) 三角形問題的等價類13,4,5(1)-(6)2340,1,21,0,21,2,0(7)(8)(9)5671,2,33,1,21,3,2(10)(11)(12)89103,3,43,4,43,4,3(1)-(6),(

9、13)(1)-(6),(14)(1)-(6),(15)113,4,5(1)-(6),(16)123,3,3(1)-(6),(17)1314153,4,43,4,33,3,4(1)-(6),(14),(18)(1)-(6),(15),(19)(1)-(6),(13),(20)練習練習用例1:桌面系統(tǒng)登錄主事件流:當系統(tǒng)提示員工輸入員工編號和口令時,用例開始。員工可以掃描卡片再按回車提交員工編號,然后通過鍵盤輸入口令,并回車或點擊確認按鈕。系統(tǒng)就檢查員工的號碼和口令員工的號碼和口令輸入是否合法合法。如果是合法的,系統(tǒng)就顯示員工的基本信息和可選操作,然后結束這個用例??蛇x事件流:如果員工輸入了一個不

10、合法的編號或口令,系統(tǒng)就顯示錯誤消息,用戶可以選擇重新輸入或取消,重新輸入則回到主事件流,若取消則該用例結束??蛇x事件流:如果員工員工輸入的編號編號已過期過期或被禁用了,系統(tǒng)就顯示提示消息,并記錄該次登錄事件,該用例結束??蛇x事件流:如果員工連續(xù)員工連續(xù)3 3次輸入次輸入不合法,則顯示警告并鎖定屏幕,進入等待管理員解鎖用例。 假定編號范圍為編號范圍為1001999910019999的整數(shù),口令為長度不小于的整數(shù),口令為長度不小于6 6的的任意字符的組合任意字符的組合工資支付系統(tǒng)等價類測試設計工資支付系統(tǒng)等價類測試設計對編號和口令的判斷是基于數(shù)據(jù)庫中員工信息的,假定員工信息表簡化如下: BH和K

11、L必須滿足的條件:Con1:1001BH9999整數(shù)Con2:6length(KL)Con3:BH和KL必須合法(此處合法指數(shù)據(jù)庫中有)Con4:BH必須沒有過期Con5:BH和KL非法輸入必須小于3次工資支付系統(tǒng)等價類測試設計工資支付系統(tǒng)等價類測試設計測試用例TC1=(“1003”,“softwaretesting”)可以覆蓋有效等價類15。工資支付系統(tǒng)等價類測試設計工資支付系統(tǒng)等價類測試設計測試用測試用例標識例標識輸入輸入BHBH和和KLKL期望的輸出期望的輸出覆蓋等覆蓋等價類價類TC2TC21000.31000.3,softwaretestingsoftwaretesting提示提示“請

12、輸入請輸入1001999910019999之間的整數(shù)之間的整數(shù)”6 6TC3TC310021002,提示提示“請輸入口令請輸入口令”8 8TC4TC4,softwaretestingsoftwaretesting提示提示“請輸入編號請輸入編號”9 9TC5TC5999999,softwaretestingsoftwaretesting提示提示“請輸入請輸入1001999910019999之間的整數(shù)之間的整數(shù)”1010TC6TC61000010000,softwaretestingsoftwaretesting提示提示“請輸入請輸入1001999910019999之間的整數(shù)之間的整數(shù)”1111T

13、C7TC710031003,abc12abc12提示提示“請輸入長度大于等請輸入長度大于等于于6 6的口令的口令”1212TC8TC810211021,softwaretestingsoftwaretesting提示提示“無此編號無此編號”1313TC9TC910031003,softwaretestsoftwaretest提示提示“口令錯誤口令錯誤”1414TC10TC1010201020,zhaochong2000-01-18zhaochong2000-01-18提示提示“編號已過期編號已過期”15154.3 邊界值分析方法 1 概述人們從長期的測試工作經驗得知,大量的錯誤是發(fā)生在輸入或輸

14、出范圍的邊界上,而不是在輸入范圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。邊界值分析方法 比如,在做三角形計算時,要輸入三角形的三個邊長:A、B和C。 我們應注意到這三個數(shù)值應當滿足 A0、B0、C0、 ABC、ACB、BCA,才能構成三角形。但如果把六個不等式中的任何一個大于號“”錯寫成大于等于號“”,那就不能構成三角形。問題恰出現(xiàn)在容易被疏忽的邊界附近。邊界值分析方法邊界值分析方法也是一種黑盒測試方法測試用例主要來自于等價類的邊界.具有發(fā)現(xiàn)程序錯誤的能力.邊界值分析方法邊界值分析測試的基本原理:故障往往出故障往往出現(xiàn)在輸入變量的邊界值附近現(xiàn)在輸入變量的邊界值附近. .使

15、用邊界值分析方法設計測試用例,首先應確定邊界情況.通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況.邊界值分析方法 邊界值分析利用輸入變量的最小值(min)、略大于最小值(min+)、輸入值域內的任意值(nom)、略小于最大值(max-)和最大值(max)來設計測試用例。邊界值分析方法 2 邊界值分析方法選擇測試用例的原則 (1)若輸入條件指定為以a和b為邊界的范圍,則測試用例應該包括a、b、略大于a和略小于b; (2)如果輸入條件規(guī)定了一個取值范圍,那么從范圍的邊界生成合法測試用并為恰好超出邊界的輸入值生成非法測試用例。 (3)若輸入條件指定為一組值,則測試用例應當執(zhí)行其中的最大值和最小

16、值,以及略大于最小值和略小于最大值的值。 (4)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù),最小個數(shù),比最小個數(shù)少1,比最大個數(shù)多1的數(shù)創(chuàng)建測試用例。邊界值分析方法 (5)指導原則1、2和3也適用于輸出條件。例如,工程分析程序要求輸出溫度和壓強的對照表,測試用例應該能夠創(chuàng)建表項所允許的最大值和最小值的輸出報告; (6)若內部程序數(shù)據(jù)結構有預定義的邊界值(如:數(shù)組有100項),要在其邊界處測試數(shù)據(jù)結構。 (7)如果程序的輸入或輸出是一個有序的集合 (例如順序文件、線性列表、表格等),那么需要關注集合的第一個和最后一個元素。 邊界值分析測試 3 邊界值分析測試邊界值分析是基于“單缺陷”假設:軟件失效

17、基本上是由單缺陷引起的,很少是由兩個或者兩個以上的故障引起的.在設計測試用例時,通常是使得其中一個變量的值取極值,其余變量的值取正常值.邊界值分析測試 假設函數(shù)F有兩個變量x1,x2,兩個變量的取值范圍:a x1b, cx2 dabcdx2x1邊界值分析測試 基于單缺陷假設,利用輸入變量的,來設計測試用例.abcdx2x1邊界值分析測試;邊界值分析測試 對于一個含有n個變量的程序,只讓其中一個變量取極值,讓其余的變量取正常值,被保留的變量依次取min、min+、nom、max-、max值,對每個變量都重復進行。這樣,對于一個有n個變量的程序,邊界值分析測試程序會產生4n+1個測試用例。三角形問

18、題的邊界值分析測試用例設計 三角形問題: 要求三角形的三條邊a,b,c都在1到100之內Test1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等邊三角形等腰三角形不構成三角形 三角形問題的邊界值分析測試用例設計Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形不構成三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形不構成三角形三角形NextDate函數(shù)的邊界值分析測試用例Tes

19、t1Test2Test3Test4Test5Test6Test7Test8Test9Test10Test11Test12Test1366666666612111215151515151230311515151519121913197520492050200120012001200120012001200120011912.6.161912.6.161913.6.161913.6.161975.6.161975.6.162049.6.162049.6.162050.6.162050.6.162001.6.22001.6.22001.6.32001.6.32001.7.12001.7.1輸入日期超

20、界輸入日期超界2001.1.162001.1.162001.2.162001.2.162001.11.162001.11.162001.12.162001.12.16邊界值分析的特點和局限性l對于一個對于一個n n變量函數(shù),邊界值分析會產生變量函數(shù),邊界值分析會產生4n4n1 1個測試用例。個測試用例。l邊界值的取值取決于變量本身的性質。邊界值的取值取決于變量本身的性質。l邊界值分析對布爾變量沒有什么意義。邊界值分析對布爾變量沒有什么意義。l邊界值分析假設變量是完全獨立的。邊界值分析假設變量是完全獨立的。 4 邊界值分析的邊界值分析的擴展除了考慮5個邊界值外,還需要考慮采用一個略超過最大值ma

21、x+以及略小于最小值min-的取值。即:abcdx2x1 健壯性測試的主要價值是:觀察例外處理情況。三角形問題的健壯性測試用例設計 考慮 max+,max,max-,nom,min+, min, min-。nNextDate函數(shù)的健壯性測試用例設計Test1Test1Test2Test2Test3Test3Test4Test4Test5Test5Test6Test6Test7Test7Test8Test8Test9Test9Test10Test10Test11Test11Test12Test12Test13Test136 66 66 66 66 66 66 66 66 66 66 66 66

22、61515151515151515151515151515-1-11 12 230303131323219111911191219121913191319751975204920492050205020512051200120012001200120012001200120012001200120012001yearyear超出超出1912.6.161912.6.161913.6.161913.6.161975.6.161975.6.162049.6.162049.6.162050.6.162050.6.16yearyear超出超出dayday超出超出2001.6.22001.6.22001.

23、6.32001.6.32001.7.12001.7.1輸入日期超界輸入日期超界dayday超出超出NextDate函數(shù)的健壯性測試用例設計Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001monthmonth超出超出2001.1.162001.1.162001.2.162001.2.162001.11.162001.11.162001.12.162001.12.16monthmonth超出超出最壞情況測試 5 最壞情況測試 邊界值分析采用可靠性理論中的單缺陷假設,如果不考慮這種假設

24、,那么,應該關心當多個變量取極值時會出現(xiàn)什么情況。最壞情況測試 使用這種思想生成最壞情況的測試用例, 首先對每個變量進行包含最小值min,略高于最小值min+,正常值nom,略低于最大值max-和最大值max五個元素集合的測試, 然后對這些集合進行笛卡兒積計算,以生成測試用例。最壞情況測試adcbx1x2最壞情況測試 最壞情況測試比邊界值分析測試以及健壯性測試要徹底,邊界值分析測試用例是最壞情況測試用例的真子集。 N變量函數(shù)的最壞情況測試,會產生5n個測試用例,而邊界值分析只產生4n+1個測試用例健壯最壞情況測試 首先對每個變量進行包含略小于最小值min-,最小值min,略高于最小值min+,

25、正常值nom,略低于最大值max-,最大值max,和略大于最大值max+,七個元素集合的測試, 然后對這些集合進行笛卡兒積計算,以生成測試用例。健壯最壞情況測試adcbx1x2工資支付系統(tǒng)邊界值測試設計 Con1和Con2是帶有明顯的邊界條件的 變量變量minmin+nommax-maxmax+min-BH10011002120099989999100001000Length(KL)67125BH和KL必須滿足的條件:Con1:1001BH9999整數(shù)Con2:6length(KL)Con3:BH和KL必須合法Con4:BH必須沒有過期Con5:BH和KL非法輸入必須小于3次工資支付系統(tǒng)邊界值

26、測試設計 測試用例標識測試用例標識BHBHKLKL預期輸出預期輸出TC11200Abc123提示“口令錯誤”TC21200Abc1234提示“口令錯誤”TC31200softwaretest提示“口令錯誤”TC41001softwaretest提示“無此編號”TC51002softwaretest提示“口令錯誤”TC69998softwaretest提示“無此編號”TC79999softwaretest提示“無此編號”邊界值分析測試用例:邊界值分析測試用例:測試用例標識測試用例標識BHBHKLKL預期輸出預期輸出TC11200Abc123提示“口令錯誤”TC21200Abc1234提示“口令錯

27、誤”TC31200softwaretest提示“口令錯誤”TC41001softwaretest提示“無此編號”TC51002softwaretest提示“口令錯誤”TC69998softwaretest提示“無此編號”TC79999softwaretest提示“無此編號”TC81200Abc12提示“請輸入長度大于等于6的口令”TC91000softwaretest提示“請輸入1001-9999之間的整數(shù)”TC1010000softwaretest提示“請輸入1001-9999之間的整數(shù)”健壯邊界值分析測試用例健壯邊界值分析測試用例4.4 決策表法 1 概述 在一個程序中,如果輸入輸出比較多

28、,輸入之在一個程序中,如果輸入輸出比較多,輸入之間、輸出之間相互制約的條件比較多,在這種間、輸出之間相互制約的條件比較多,在這種情況下使用決策表更合適,它可以清楚地表達情況下使用決策表更合適,它可以清楚地表達它們之間的各種復雜關系。它們之間的各種復雜關系。 決策表法是黑盒測試方法中最為嚴格、最具有決策表法是黑盒測試方法中最為嚴格、最具有邏輯性的測試方法邏輯性的測試方法4.4 決策表法 2 決策表:4.4 決策表法 決策表通常由四部分組成:條件樁動作樁條件項動作項規(guī)則 條件樁條件樁: : 列出問題的所有條件列出問題的所有條件 條件項:針對條件樁給出的條件列出所有條件項:針對條件樁給出的條件列出所

29、有可能的取值可能的取值 動作樁:給出問題規(guī)定的可能采取的操作動作樁:給出問題規(guī)定的可能采取的操作 動作項:與條件項緊密相關,指出在條件動作項:與條件項緊密相關,指出在條件項的各組取值情況下應采取的動作項的各組取值情況下應采取的動作 項中的每一列是一條項中的每一列是一條 規(guī)則規(guī)則4.4 決策表法規(guī)則指示在規(guī)則的條件部分中指示的條件環(huán)境下要采取什么行動.在上圖的決策表中,如果條件1條件2為真,而條件3條件4為假,那么采取行動3.規(guī)則1中的條件1.2.3稱為“不關心”條目.不關心條目解釋有兩種:條件無關或條件不適用.3 決策表的化簡有n個條件的決策表,對應的規(guī)則將有2n條,當n非常大的時候,這是非常

30、繁瑣的。因此,應對決策表進行化簡.決策表的化簡包括兩個方面: (1)合并如果一個條件項如果一個條件項( (表中某列中的條件值表中某列中的條件值) )和另外一個條件項所和另外一個條件項所產生的動作是相同產生的動作是相同的的, ,且兩個條件項對應的每一行的值只有且兩個條件項對應的每一行的值只有一個是不同的一個是不同的, ,則可以將其合并則可以將其合并. .合并的合并的項除了不同值變成項除了不同值變成“不關心不關心”條目外條目外, ,其其余不變余不變3 決策表的化簡 (2)包含 如果兩個條件項的如果兩個條件項的動作是相同的動作是相同的, ,對任意條對任意條件件1 1的值和條件的值和條件2 2中對應的

31、值中對應的值, ,如果滿足如果滿足: : A.A.如果條件如果條件1 1的值是的值是T(F),T(F),則條件則條件2 2中的值也是中的值也是T(F).T(F). B.B.如果條件如果條件1 1的值是的值是-(-(不關心不關心),),則條件則條件2 2中的值中的值是是T(F)-T(F)-稱條件稱條件1 1包含條件包含條件2 2條件條件2 2可以撤去可以撤去. . 重復重復A,BA,B就可以得到精簡的決策表就可以得到精簡的決策表. .3 決策表的化簡8F-TF3 決策表的化簡4.4 決策表法 構造決策表的步驟:(1)確定規(guī)則的個數(shù)(2)列出所有的條件樁和動作樁(3)填入條件項(4)填入動作項,得

32、到初始的決策表(5)對初始的決策表化簡4.4決策表法C1:abcC1:abc能否構成三角形能否構成三角形? ?C2:a=b?C2:a=b?C3:a=c?C3:a=c?C4:b=c?C4:b=c?N N- - - -Y YY YY YY YY YY YY YN NY YY YN NY YY YY YN NN NY YN NY YY YY YN NY YN NY YN NN NY YY YN NN NN NA1:A1:非三角形非三角形A2:A2:一般三角形一般三角形A3:A3:等腰三角形等腰三角形A4:A4:等邊三角形等邊三角形A5:A5:不可能不可能 4 三角形問題的決策表用例設計該條件可以擴展

33、成:該條件可以擴展成:a+bca+bcb+cab+cac+abc+ab4.4 決策表法C1:ab+c?C1:ab+c?C2:ba+c?C2:ba+c?C3:ca+b?C3:ca+b?C4:a=b?C4:a=b?C5:a=c?C5:a=c?C6:b=c?C6:b=c?N N- - - - - -Y YN N- - - - -Y YY YN N- - - -Y YY YY YY YY YY YY YY YY YY YY YN NY YY YY YY YN NY YY YY YY YY YN NN NY YY YY YN NY YY YY YY YY YN NY YN NY YY YY YN NN

34、NY YY YY YY YN NN NN NA1:A1:非三角形非三角形A2:A2:一般三角形一般三角形A3:A3:等腰三角形等腰三角形A4:A4:等邊三角形等邊三角形A5:A5:不可能不可能n三角形問題的擴展決策表條件條件:a,b,c:a,b,c是否可以是否可以構成三角形構成三角形根據(jù)決策表測試用例編號編號a,b,ca,b,c期望輸出期望輸出DT1DT2DT3DT4DT5DT6DT7DT8DT9DT10DT114 1 21 4 21 2 45 5 5? ? ? ? ?2 2 3? ? ?2 3 23 2 23 4 5非三角形非三角形非三角形非三角形非三角形非三角形等邊三角形等邊三角形不可能不

35、可能不可能不可能等腰三角形等腰三角形不可能不可能等腰三角形等腰三角形等腰三角形等腰三角形一般三角形一般三角形NextDate函數(shù)的決策表 5 NextDate函數(shù)的決策表涉及的操作:na1:不可能na2:day加1na3:day復位na4:month加1na5:month復位na6:year加1 M1:月:月有30天 M2:月:月有31天,12月除外 M3:月:月是12月 M4:月:月是2月 D1: day:1day 27 D2: day:day=28 D3: day:day=29 D4: day:day=30 D5: day:day=31 Y1: year:year是閏年 Y2: year:

36、year不是閏年根據(jù)如下等價類: 建立條件:c1:month在Mi中(如M1,M2)c2:day在Di中c3:year在Yi中c1: month在c2: day在c3: year在M1D1-M1D2-M1D3-M1D4-M1D5-M2D1-M2D2-M2D3-M2D4-M2D5-M3D1-a1: 不可能a2: day加1a3: day復位a4: month加1a5: month復位a6:year加1c1: month在c2: day在c3: year在M3D2-M3D3-M3D4-M3D4-M4D1-M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4-M4D5-a1: 不可能a2: da

37、y加1a3: day復位a4: month加1a5: month復位a6:year加1c1: month在c2: day在c3: year在M1D1D3-M1D4-M1D5-M2D1D4-M2D5-M3D1D4-M3D5-a1: 不可能a2: day加1a3: day復位a4: month加1a5: month復位a6:year加1 化簡決策表:c1: month在c2: day在c3: year在M4D1-M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4-D5-a1: 不可能a2: day加1a3: day復位a4: month加1a5: month復位a6:year加1 Test1

38、Test3Test4Test5Test6Test9Test10Test1114Test15Test16Test17Test18Test19Test20Test21228 16 20018 30 20049 31 20011 16 20041 31 200112 16 200412 31 20012 16 20042 28 20042 28 20012 29 20042 29 20012 30 200417/8/200117/8/200131/8/200431/8/2004不可能不可能17/1/200417/1/20041/2/20011/2/200117/12/200417/12/20041/

39、1/20021/1/200217/2/200117/2/200129/2/200429/2/20041/3/20011/3/20011/3/20041/3/2004不可能不可能不可能不可能 根據(jù)決策表設計測試用例根據(jù)決策表設計測試用例: :4.4 決策表法 6 決策表測試法的適用范圍決策表測試法適用于具有以下特征的應用程序:決策表測試法適用于具有以下特征的應用程序:(1)if-then-else邏輯突出(2)輸入變量之間存在邏輯關系(3)涉及輸入變量子集的計算(4)輸入和輸出之間存在因果關系(5)很高的圈復雜度4.4 決策表法 適用于使用決策表設計測試用例的情況適用于使用決策表設計測試用例的情

40、況: : (1)規(guī)格說明以決策表形式給出,或較容易轉換為決策表. (2)條件的排列順序不會也不應該影響執(zhí)行的操作 (3)規(guī)則的排列順序不會也不應該影響執(zhí)行的操作 (4)當某一規(guī)則的條件已經滿足,并確定要執(zhí)行的操作后,不必檢驗別的規(guī)則. (5)如果某一規(guī)則的條件要執(zhí)行多個操作任務,這些操作的執(zhí)行順序無關緊要.4.5 4.5 因果圖法因果圖法 1 概述等價類劃分方法和邊界值分析方法著重考慮輸入條件,而不考慮輸入條件的各種組合,也不考慮輸入條件之間的相互制約的關系,但有時一些具體問題中的輸入之間存在著相互依賴的關系,如:NextDate函數(shù)問題。4.5 4.5 因果圖法因果圖法 如果輸入之間有關系,

41、我們在測試時必須考慮輸入條件的各種組合,那么可以考慮使用一種適合于描述對于多種條件的組合,相應產生多個動作的形式來設計測試用例,這就需要利用因果圖。 因果圖方法最終生成的就是決策表。它適合于檢查程序輸入條件的各種組合情況。4.5 4.5 因果圖法因果圖法使用因果圖法設計測試用例時:(1)首先從的描述中,找出(輸入條件)和(輸出結果或者程序狀態(tài)的改變),繪出。(2)然后通過轉換為,最后為決策表中的每一列設計一個測試用例.4.5 4.5 因果圖法因果圖法 2 因果圖中出現(xiàn)的基本符號原因原因結果結果n通常在因果圖中用Ci表示原因,用Ei表示結果,各結點表示狀態(tài),可取值“0”或“1”?!?”表示某狀態(tài)

42、不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。4.5 4.5 因果圖法因果圖法 主要的原因和結果之間的關系有主要的原因和結果之間的關系有: :c1e1c1e1c2e1c1c3Vc2e1c1V(a)恒等(b)非(c)或(d)與 恒等: 非: 或: 與: 4.5 4.5 因果圖法因果圖法 實際問題中,輸入狀態(tài)之間可能存在某些依賴關系,這種依賴關系被稱為“約束”. 在因果圖中使用特定的符號來表示這些約束關系:4.5 4.5 因果圖法因果圖法 約束關系說明:約束(異): a,b最多有一個可能為1,不能同時為1.abE異4.5 4.5 因果圖法因果圖法約束(或): a,b,c中至少有一個必須為1,不能同時為0.acI或

43、b4.5 4.5 因果圖法因果圖法約束(惟一): a和b必須有一個且僅有一個為1abO唯一4.5 4.5 因果圖法因果圖法約束(要求):a是1時,b必須是1,即a為1時,b不能為0abR要求4.5 4.5 因果圖法因果圖法約束:對輸出條件的約束,若結果a為1,則結果b必須為0.ab強制M4.5 4.5 因果圖法因果圖法 3 用因果圖生成測試用例的基本步驟(1)(1) 分析軟件規(guī)格說明描述中,哪些是原因分析軟件規(guī)格說明描述中,哪些是原因 ( (即輸入條件即輸入條件或輸入條件的等價類或輸入條件的等價類) ),哪些是結果,哪些是結果 ( (即輸出條件即輸出條件) ),并給,并給每個原因和結果賦予一個

44、標識符。每個原因和結果賦予一個標識符。(2)(2) 分析軟件規(guī)格說明描述中的語義,找出原因與結果之分析軟件規(guī)格說明描述中的語義,找出原因與結果之間,原因與原因之間對應的是什么關系間,原因與原因之間對應的是什么關系? ? 根據(jù)這些關系,根據(jù)這些關系,畫出因果圖。畫出因果圖。(3) (3) 由于語法或環(huán)境限制,有些原因與原因之間,原因與由于語法或環(huán)境限制,有些原因與原因之間,原因與結果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,結果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號標明約束或限制條件。在因果圖上用一些記號標明約束或限制條件。(4) (4) 把因果圖轉換成決策表。把

45、因果圖轉換成決策表。(5) (5) 把決策表的每一列拿出來作為依據(jù),設計測試用例。把決策表的每一列拿出來作為依據(jù),設計測試用例。什么是因果關系?什么是因果關系? 拿破侖說: 失了一個釘子,壞了一只蹄鐵; 壞了一只蹄鐵,折了一匹戰(zhàn)馬; 折了一匹戰(zhàn)馬,傷了一位騎士; 傷了一位騎士,輸了一場戰(zhàn)斗; 輸了一場戰(zhàn)斗,亡了一個帝國。 這就是因果關系應用舉例應用舉例 某個軟件的規(guī)格說明書中規(guī)定:第一個字符必須是A或B,第二個字符必須是一個數(shù)字,在此情況下進行文件的修改,但如果第一個字符不正確,則給出信息L;如果第二個字符不正確,則給出信息M.應用舉例應用舉例 分析問題,按照如下步驟進行:(1)根據(jù)軟件規(guī)格說

46、明書,列出原因和結果.(2)找出原因和結果之間的關系,原因和原因之間的約束關系,畫出因果圖.(3)將因果圖轉化為決策表(4)根據(jù)決策表設計測試用例.應用舉例應用舉例 原因:C1:第一個字符是A;C2:第一個字符是B;C3:第二個字符是一個數(shù)字. 中間結果:11:第一個字符是A或B 結果:E1:修改文件;E2:給出信息L;(第一個字符不對給出信息L)E3:給出信息M;(第二個字符不對給出信息M)第一個字符必須是A或B,第二個字符必須是一個數(shù)字,在此情況下進行文件的修改,但如果第一個字符不正確,則給出信息L;如果第二個字符不正確,則給出信息M.帶有帶有E E約束的因果圖約束的因果圖 C1 C2 C

47、3 11 E2 E1 E3 E將因果圖轉化為決策表將因果圖轉化為決策表123456C1C2C311101110010111010100100000E1E2E3測試用例A3A5AMA&B3B5BMB*C2X6CMD*設計測試用例設計測試用例 測試用例1: 輸入數(shù)據(jù):A3 預期輸出:修改文件 測試用例2: 輸入數(shù)據(jù):AM 預期輸出:給出信息M 測試用例3: 輸入數(shù)據(jù):B3 預期輸出:修改文件 測試用例4: 輸入數(shù)據(jù):B* 預期輸出:給出信息M 測試用例5: 輸入數(shù)據(jù):C2 預期輸出:給出信息L 測試用例6: 輸入數(shù)據(jù):CM 預期輸出:給出信息LM練習題練習題例如,一個處理單價為5角錢的飲料

48、的自動售貨機軟件測試用例的設計。其規(guī)格說明如下: 若投入5角錢或1元錢的硬幣,按下橙汁或啤酒的按鈕,則相應的飲料就送出來。若售貨機沒有零錢找,則一個顯示零錢找完的紅燈亮,這時在投入1元硬幣并按下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示零錢找完的紅燈滅,在送出飲料的同時退還5角硬幣?!背戎戎【破【凭毩曨}練習題練習題練習題練習題練習題(2) (2) 畫出因果圖。畫出因果圖。所有原因結點列在左邊,所有原因結點列在左邊,所有結果結點列在右邊。所有結果結點列在右邊。練習題練習題Test1Test2Test3Test4Test5Test6Test7Test8Test9Test10T

49、est11Test12Test13Test14Test15Test161101011001110001011010101101001001010001010100100101000001100010100100000100000123,2423,2423,2523,25.24242525.21,2221,2221,2221,22212121,2421,2421,2521,25212121212121使用因果圖法的優(yōu)點使用因果圖法的優(yōu)點o考慮了多個輸入之間的相互組合、相互制約關考慮了多個輸入之間的相互組合、相互制約關系;系;o能夠幫助我們按一定步驟,高效率地選擇測試能夠幫助我們按一定步驟,高效率

50、地選擇測試用例,同時還能為我們指出,程序規(guī)格說明描用例,同時還能為我們指出,程序規(guī)格說明描述中存在著什么問題述中存在著什么問題習題習題某軟件的一個模塊的需求規(guī)格說明書中描述:某軟件的一個模塊的需求規(guī)格說明書中描述:(1 1)年薪制員工:嚴重過失,扣年終風險金)年薪制員工:嚴重過失,扣年終風險金的的4%4%;過失,扣年終風險金的;過失,扣年終風險金的2%2%。(2 2)非年薪制員工:嚴重過失,扣當月薪資)非年薪制員工:嚴重過失,扣當月薪資的的8%8%;過失,扣當月薪資的;過失,扣當月薪資的4%4%。請繪制出因果圖和決策表,并給出相應的測試請繪制出因果圖和決策表,并給出相應的測試用例。用例。原因:

51、C1. 年薪制員工 C2. 嚴重過失中間狀態(tài):11. 非年薪制員工 12. 過失結果:E1. 扣年終風險金的4% E2. 扣年終風險金的2% E3. 扣當月薪資的8% E4. 扣當月薪資的4% 因果圖因果圖決策表決策表測試用例:測試用例1: 輸入數(shù)據(jù): 年薪制員工,嚴重過失 預期輸出: 扣年終風險金的4% 測試用例2: 輸入數(shù)據(jù): 年薪制員工,過失 預期輸出: 扣年終風險金的2% 測試用例3: 輸入數(shù)據(jù): 非年薪制員工,嚴重過失預期輸出: 扣當月薪資的8% 測試用例4: 輸入數(shù)據(jù): 非年薪制員工,過失 預期輸出: 扣當月薪資的4% 有一個處理單價為1元5角的盒裝飲料的自動售貨機軟件,若投入1元

52、5角的硬幣,按下“可樂”“雪碧”或“紅茶”按鈕,相應的飲料就會送出來,若投入的是兩圓硬幣,在送出飲料的同時,退還5角硬幣。(1 1)分析原因及結果)分析原因及結果原因原因c1:c1:投入投入1 1元元5 5角硬幣;角硬幣;c2:c2:投入投入2 2元硬幣;元硬幣;c3:c3:按按“可樂可樂”按鈕;按鈕;c4:c4:按按“雪碧雪碧”按鈕;按鈕;c5:c5:按按“紅茶紅茶”按鈕按鈕; ;中間狀態(tài)中間狀態(tài)1111:已投幣:已投幣1212:已按鈕:已按鈕結果結果e1:e1:退還退還5 5角硬幣;角硬幣;e2:e2:送出送出“可樂可樂”飲料;飲料;e3:e3:送出送出“雪碧雪碧”飲料;飲料;e4:e4:

53、送出送出“紅茶紅茶”飲料飲料; ;(2 2)畫出因果圖)畫出因果圖(3 3)決策表)決策表1 12 23 34 45 56 67 78 89 910101111c1:c1:投入投入1 1元元5 5角硬幣角硬幣c2:c2:投入投入2 2元硬幣元硬幣c3:c3:按按“可樂可樂”按鈕按鈕c4:c4:按按“雪碧雪碧”按鈕按鈕c5:c5:按按“紅茶紅茶”按鈕按鈕1 10 01 10 00 01 10 00 01 10 01 10 00 00 01 11 10 00 00 00 00 01 11 10 00 00 01 10 01 10 00 01 10 00 01 10 01 10 00 00 00 0

54、0 01 10 00 00 00 00 01 10 00 00 00 00 01 11111:已投幣:已投幣1212:已按鈕:已按鈕1 11 11 11 11 11 11 10 01 11 11 11 11 11 11 10 00 01 10 01 10 01 1a1:a1:退還退還5 5角硬幣角硬幣a2:a2:送出送出“可樂可樂”飲料飲料a3:a3:送出送出“雪碧雪碧”飲料飲料a4:a4:送出送出“紅茶紅茶”飲料飲料(4 4)設計測試用例)設計測試用例用例用例編號編號測試用例測試用例預期輸出預期輸出1 1投入投入1 1元元5 5角,按角,按“可樂可樂”送出送出“可樂可樂”飲料飲料2 2投入投

55、入1 1元元5 5角,按角,按“雪碧雪碧”送出送出“雪碧雪碧”飲料飲料3 3投入投入1 1元元5 5角,按角,按“紅茶紅茶”送出送出“紅茶紅茶”飲料飲料4 4投入投入2 2元,按元,按“可樂可樂”找找5 5角,送出角,送出“可樂可樂”5 5投入投入2 2元,按元,按“雪碧雪碧”找找5 5角,送出角,送出“雪碧雪碧”6 6投入投入2 2元,按元,按“紅茶紅茶”找找5 5角,送出角,送出“紅茶紅茶”4.6 場景法 場景法的思想 場景法的步驟 舉例基本原理 現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,象GUI軟件、游戲等。事件觸發(fā)時的情景并形成了場景,而同一事件不同的觸發(fā)順序和處理結果就形成了事件流。

56、這種在軟件設計方面的思想可以引入到軟件測試中,可以生動地描繪出事件觸發(fā)時的情景,有利于設計測試用例,同時使測試用例更容易理解和執(zhí)行。 基本概念 1.基本流基本流 和 備選流備選流 在測試一個軟件的時候,在場景法中,測試流程是軟件功能按照正確的事件流實現(xiàn)的一條正確流程正確流程,那么我們把這個稱為該軟件的基本流; 出現(xiàn)故障或缺陷的過程,就用備選流備選流加以標注,這樣,備選流就可以是從基本流來的,或是由備選流中引出的。分析 圖中經過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流直黑線表示基本流,是經過用例的最簡單的路徑。備選流用不同的色彩表示,一個備選流可能從基本流開始,在某個特定條件下執(zhí)

57、行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個備選流(如備選流2),或者終止用例而不再重新加入到某個流(如備選流2和4)。 場景 場景 1: 基本流 場景 2: 基本流 備選流 1 場景 3: 基本流 備選流 1 備選流 2 場景 4: 基本流 備選流 3 場景 5: 基本流 備選流 3 備選流 1 場景 6: 基本流 備選流 3 備選流 1 備選流 2 場景 7: 基本流 備選流 4 場景 8: 基本流 備選流 3 備選流 4場景法設計測試用例的步驟 根據(jù)說明,描述出程序的基本流及各項備選流. 根據(jù)基本流和各項備選流生成不同的場景. 對每一個場景生成相應的測試用例. 對生成的

58、所有測試用例重新復審,去掉多余的測試用例,測試用例確定后,對每一個測試用例確定測試數(shù)據(jù)值.例題:在線購物系統(tǒng) 在當當網(wǎng)網(wǎng)上書店都訂購過書籍,整個訂購過程為:用戶訪問網(wǎng)站,進行書籍的選擇,當選好自己心儀的書籍后進行訂購,這時把所需圖書放進購物車,等進行結帳的時候,用戶需要登錄自己注冊的帳號,登錄成功后,進行結帳并生成訂單,整個購物過程結束,退出系統(tǒng)。 確定基本流和備選流基本流步驟1:用戶到網(wǎng)站,書籍的選擇,進行訂購,把所需圖書放進購物車;步驟2:進行結帳的時候,輸入自己的帳號;步驟3:輸入密碼;步驟4:登錄成功后,檢查訂購圖書有庫存,生成訂單;步驟5:退出系統(tǒng) 備選流1帳號錯誤備選流2密碼錯誤備

59、選流3無選購書籍備選流x退出系統(tǒng)確定場景場景1-購物成功基本流場景2-帳號錯誤基本流備選流1場景3-密碼錯誤基本流備選流2場景4-無選購書籍基本流備選流3確定測試用例 對于每一個場景都需要確定測試用例。可以采用矩陣或決策表來確定和管理測試用例。 對于每個測試用例,存在一個測試用例ID、條件(或說明)、測試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經存在于數(shù)據(jù)庫中)以及預期結果。 測試用例IDID場景場景/ /條件條件帳號帳號 密碼密碼選購書選購書籍籍預期結果預期結果1場景1:購物成功VVV成功購物2場景2:帳號錯誤IVn/a提示帳號錯誤,返回基本流步驟23場景3:密碼錯誤VIn/a提示密碼錯誤,返

60、回基本流步驟34場景4:無選購書籍VVI提示選購書籍,返回基本流步驟5IDID場景場景/ /條件條件帳號帳號密碼密碼選購書籍選購書籍預期結果預期結果1 1場景場景1 1:購:購物成功物成功xuxu123456123456軟件測試藝術軟件測試藝術成功購物成功購物2 2場景場景2 2:帳:帳號錯誤號錯誤zhouzhou123456123456n/an/a提示帳號錯誤,返提示帳號錯誤,返回基本流步驟回基本流步驟2 23 3場景場景3 3:密:密碼錯誤碼錯誤xuxu123$%123$%n/an/a提示密碼錯誤,返提示密碼錯誤,返回基本流步驟回基本流步驟3 34 4場景場景4 4:無:無選購書籍選購書籍xuxu123456123456空空提示選購書籍,返提示選購書籍,返回基本流步驟回基本流步驟5 5例題:加油

溫馨提示

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

評論

0/150

提交評論