第4章 黑盒測試第2節(jié)等價類測試_第1頁
第4章 黑盒測試第2節(jié)等價類測試_第2頁
第4章 黑盒測試第2節(jié)等價類測試_第3頁
第4章 黑盒測試第2節(jié)等價類測試_第4頁
第4章 黑盒測試第2節(jié)等價類測試_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Software Testing第4章 黑 盒 測 試 Software Testing黑盒測試黑盒測試w軟件測試方法w邊界值測試w等價類測試等價類測試w基于判定表的測試w因果圖Software Testingw等價類w等價類測試類型w案例主要內(nèi)容主要內(nèi)容Software Testing問題引入問題引入w測試的矛盾測試的矛盾為保證軟件產(chǎn)品的質(zhì)量,我們需要進(jìn)行完備(徹底)的測試;但這是不現(xiàn)實的,因為:輸入量太大輸出結(jié)果太多軟件實現(xiàn)途徑太多Software Testing問題引入問題引入w測試的矛盾測試的矛盾從經(jīng)濟(jì)的角度來說,我們希望測試沒有冗余;一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成

2、功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。Software Testingw等價類方法可令測試事半功倍。等價類方法可令測試事半功倍。w目的:為了在有限的測試資源的情況下,用少量有代表性的數(shù)據(jù)得到比較好的測試效果。w方法:把所有輸入數(shù)據(jù)劃分為若干部分,然后從每個子集選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。問題引入問題引入 實現(xiàn)一個對所有實數(shù)進(jìn)行開平方運(yùn)算( y = sqrt(x) )的程序的測試。提示:提示:逐一測試,采用窮舉法!逐一測試,采用窮舉法!局部代表整體局部代表整體!正實數(shù)正實數(shù):+1.4444+1.4444負(fù)實數(shù)負(fù)實數(shù):-2.345-2.3450 0等價類等價類劃分劃分Software

3、Testing4.2.1 等價類等價類劃分等價類測試等價類的分類劃分等價類的方法用等價類設(shè)計測試用例Software Testing1. 劃劃 分分w劃分劃分是指互不相交的一組子集,這些子集的并是整個集合。劃分的定義給定集合B,以及B的一組子集A1、A2、An,這些子集是B的一個劃分,當(dāng)且僅當(dāng): A1A2AnB,且 ij AiAjSoftware Testing劃分在軟件測試中的作用劃分在軟件測試中的作用w劃分對于測試的作用:完備性無冗余性w邊界值分析方法的固有弱點(diǎn)是漏洞和冗余性Software Testing2. 等價類等價類測試測試w等價類定義等價類是輸入域的某個子集合子集合,而所有的等價

4、類的并集是整個輸入域。在子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤是等效等效的。w等價類的特點(diǎn)完備性無冗余性等價性Software Testingw等價類測試的假設(shè):測試某等價類的代表值,就等效于對這個等價類中其他值的測試。w等價類測試的思想:把全部的輸入數(shù)據(jù)劃分成若干個等價類劃分成若干個等價類,在每在每一個等價類中取一個數(shù)據(jù)一個等價類中取一個數(shù)據(jù)來進(jìn)行測試。2. 等價類測試等價類測試輸入域輸入域劃分劃分1234少數(shù)、少數(shù)、代表性代表性子子集集1子子集集3子子集集4子子集集2等價類等價類Software Testing3. 等價類的分類等價類的分類w有效等價類有效等價類對于程序的規(guī)格說明來說,

5、是合理的、有意義的輸入數(shù)據(jù)所構(gòu)成的集合;w無效等價類無效等價類對于程序的規(guī)格說明來說,是不合理的、沒有意義的輸入數(shù)據(jù)所構(gòu)成的集合;有效等價類有效等價類無效等價類無效等價類有意義的、有意義的、合理的輸入合理的輸入數(shù)據(jù)所組成數(shù)據(jù)所組成的集合的集合無意義的、無意義的、不合理的輸不合理的輸入數(shù)據(jù)所構(gòu)入數(shù)據(jù)所構(gòu)成的集合成的集合等價類等價類 一個有效等價類:為非空密碼; 一個無效等價類為:空密碼 兩個有效等價類:男,女 一個無效等價類:其他值Software Testing4. 4. 劃分等價類的方法劃分等價類的方法w(1)如果輸入條件規(guī)定了取值范圍或值的個數(shù)就可確定一個有效等價類和兩個無效等價類。例如:

6、輸入學(xué)生成績,范圍是0到100Software Testingw(2)規(guī)定輸入數(shù)據(jù)的一組值(n個值),并且程序要對每一個輸入值分別進(jìn)行處理,則可以確定n個有效等價類和一個無效等價類。例:輸入條件說明學(xué)歷可為:專科、本科、碩士、博士四種之一。4. 4. 劃分等價類的方法劃分等價類的方法Software Testingw(3) 輸入條件規(guī)定了輸入值的集合或是規(guī)定了“必須如何”的條件,則可確定一個有效等價類和一個無效等價類。例如:“標(biāo)識符以字母開頭”4. 4. 劃分等價類的方法劃分等價類的方法Software Testingw(4) 如果輸入條件是一個布爾量布爾量,則可以確立一個有效等價類和一個無效

7、等價類。例如:在登陸網(wǎng)站時使用驗證碼。4. 4. 劃分等價類的方法劃分等價類的方法Software Testingw(5 5)如已劃分的等價類各元素在程序中的處理方式不同,則應(yīng)將此等價類進(jìn)一步劃分成更小的等價類。例如:程序用于判斷幾何圖形的形狀。4. 4. 劃分等價類的方法劃分等價類的方法Software Testing5. 5. 用等價類設(shè)計測試用例用等價類設(shè)計測試用例w(1)(1)劃分等價類,形成等價類表w(2)(2)設(shè)計一新的測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類,重復(fù)這一步驟,直到所有的有效等價類都被覆蓋為止;w(3)(3)設(shè)計一新測試用例,使其只覆蓋一個無效等價類,重復(fù)這一

8、步驟直到所有無效等價類均被覆蓋。(1)根據(jù)等價類劃分原則,確定等價類,列出等價類表。 (2)根據(jù)等價類,確定測試用例。少而全、多而專少而全、多而專 編號編號有效等價類有效等價類無效等價類無效等價類 為每一個等價類規(guī)定一個唯一的編號。 設(shè)計一個新的測試用例,使它能夠盡量覆蓋尚未覆蓋的有效等價類。設(shè)計一個新的測試用例,使它僅覆蓋一個尚未覆蓋的無效等價類?!吧俣俣薄岸喽鴮6喽鴮!盨oftware Testing4.4.2 等價類測試的分類等價類測試的分類w單缺陷與多缺陷假設(shè)產(chǎn)生弱等價類與強(qiáng)等價類測試之分;w是否進(jìn)行無效數(shù)據(jù)的處理產(chǎn)生健壯與一般等價類測試之分。Software Testing等

9、價類測試的分類:等價類測試的分類:弱一般等價類測試強(qiáng)一般等價類測試弱健壯等價類測試強(qiáng)健壯等價類測試Software Testingw討論對象一個具有兩個自變量x1和x2的函數(shù)FF實現(xiàn)為一個程序且輸入變量x1和x2的邊界以及邊界內(nèi)的區(qū)間a x1 d,區(qū)間為a, b),b, c),c, de x2 g,區(qū)間為e, f), f, gw討論對象(續(xù))Software Testing1. 弱一般等價類測試弱一般等價類測試w弱一般等價類測試的假設(shè):“單缺陷”假設(shè)失效極少是由兩個或多個缺陷的同時發(fā)生引起的w測試用例設(shè)計:選取的測試用例覆蓋所有的有效等價類。 弱一般等價類測試用例弱一般等價類測試用例Softw

10、are Testing2. 強(qiáng)一般等價類測試強(qiáng)一般等價類測試w基于多缺陷假設(shè);w測試用例設(shè)計:將每個變量的有效等價類做笛卡爾積,設(shè)計測試用例覆蓋笛卡爾積的每個元素。 一個變量個數(shù)為n的函數(shù)的強(qiáng)一般等價類測試會產(chǎn)生多少個測試用例?思考:思考:強(qiáng)一般等價類測試用例Software Testing3. 弱健壯等價類測試弱健壯等價類測試w弱:基于單缺陷假設(shè)弱:基于單缺陷假設(shè)w健壯:考慮無效值健壯:考慮無效值w測試用例設(shè)計:對有效輸入,使用每個有效等價類的一個值對無效輸入,測試用例將擁有一個無效值,并保持其余的值都是有效的弱健壯等價類測試用例Software Testing4. 4. 強(qiáng)健壯等價類測試強(qiáng)

11、健壯等價類測試w強(qiáng)健壯等價類測試:基于多缺陷假設(shè),從所有等價類的笛卡爾積的每一個元素中獲得測試用例強(qiáng):多缺陷假設(shè)強(qiáng):多缺陷假設(shè)健壯:考慮無效值健壯:考慮無效值強(qiáng)健壯等價類測試用例 一個變量個數(shù)為n的函數(shù)的強(qiáng)健壯等價類測試會產(chǎn)生多少個測試用例?思考:思考:Software Testing4.2.3 案例案例w三角形三角形問題問題程序規(guī)定:“輸入三個正整數(shù)a、b、c,分別作為三角形的三條邊長。通過程序判定是否能構(gòu)成三角形。如果能構(gòu)成三角形,進(jìn)一步判斷三角形的類型。當(dāng)此三角形為一般三角形、等腰三角形及等邊三角形時,分別作不同的操作。”用等價類劃分方法為該程序進(jìn)行測試用例設(shè)計。w 正整數(shù)。 三個數(shù)。

12、構(gòu)成一般三角形。 構(gòu)成等腰三角形。 構(gòu)成等邊三角形。 不能構(gòu)成三角形。 (1) 分析題目中給出的條件和隱含的輸入要求,分析題目中給出的條件和隱含的輸入要求,輸入條件如下:輸入條件如下:Software Testing(2) 根據(jù)輸入條件的要求劃分等價類,列出等根據(jù)輸入條件的要求劃分等價類,列出等價類表并編號,如表價類表并編號,如表4-2-4所示。所示。 輸入輸入條件條件有效等有效等價類價類編編號號無效等價類無效等價類編號編號三三個個正正整整數(shù)數(shù)正整數(shù)正整數(shù)1 1一邊為非正一邊為非正整數(shù)整數(shù)a a為非正整數(shù)為非正整數(shù)1010b b為非正整數(shù)為非正整數(shù)1111c c為非正整數(shù)為非正整數(shù)1212兩邊

13、為非正兩邊為非正整數(shù)整數(shù)a a,b b為非正整數(shù)為非正整數(shù)1313a a,c c為非正整數(shù)為非正整數(shù)1414b b,c c為非正整數(shù)為非正整數(shù)1515三邊均為非正整數(shù)三邊均為非正整數(shù)1616三個數(shù)三個數(shù)2 2只輸入一個只輸入一個數(shù)數(shù)只給只給a a1717只給只給b b1818只給只給c c1919只輸入兩個只輸入兩個數(shù)數(shù)只給只給a a,b b2020只給只給a a,c c2121只給只給b b,c c2222未輸入數(shù)未輸入數(shù)2323三角形的等價類輸入條件輸入條件有效等價類有效等價類編號編號無效等價類無效等價類編號編號構(gòu)成一般三構(gòu)成一般三角形角形a + b c,且且abc3a + b b,且且a

14、bc4a + c a,且且abc5b + c a28b + c = a29構(gòu)成等腰三構(gòu)成等腰三角形角形a = b,a c,且兩邊之和大,且兩邊之和大于第三邊于第三邊6a = c,a b,且兩邊之和大,且兩邊之和大于第三邊于第三邊7b = c,a b,且兩邊之和大,且兩邊之和大于第三邊于第三邊8構(gòu)成等邊三構(gòu)成等邊三角形角形a = b = c9三角形的等價類Software Testing(3) 設(shè)計測試用例,覆蓋上表中的等價類,如設(shè)計測試用例,覆蓋上表中的等價類,如表表4-2-5所示。所示。 Software Testing6 -5 6 6 提示:輸入不符合要求 10 7 6 0 6 提示:輸入

15、不符合要求 11 8 6 6 3.6 提示:輸入不符合要求 12 9 0 -5 6 提示:輸入不符合要求 13 10 5.6 6 -2 提示:輸入不符合要求 14 11 6 0 3.5 提示:輸入不符合要求 15 12 3.5 5.6 4.5 提示:輸入不符合要求 16 13 6 提示:請輸入數(shù)據(jù) 17 14 5 提示:請輸入數(shù)據(jù) 18 15 5 提示:請輸入數(shù)據(jù) 19 16 6 6 提示:請輸入數(shù)據(jù) 20 17 6 4 提示:請輸入數(shù)據(jù) 21 18 5 6 提示:請輸入數(shù)據(jù) 22 19 提示:請輸入數(shù)據(jù) 23 20 5 6 15 不能構(gòu)成三角形 24 21 6 7 13 不能構(gòu)成三角形 25

16、 22 4 10 5 不能構(gòu)成三角形 26 23 6 10 4 不能構(gòu)成三角形 27 24 5 6 15 不能構(gòu)成三角形 28 25 7 8 15 不能構(gòu)成三角形 29 課堂練習(xí)課堂練習(xí)w電話號碼 某城市電話號碼由三部分組成,分別是: 地區(qū)碼 空白或4位數(shù)字; 前 綴為三位數(shù)字,但不能為“0”,“1”; 后 綴4位數(shù)字。 假定被測程序能接受一切符合上述規(guī)定的電話號碼,拒絕所有不符合規(guī)定的電話號碼。請用等價類方法進(jìn)行測試,設(shè)計測試用例。Software Testing(1) 根據(jù)輸入條件,劃分出有效等價類和無效等價類,根據(jù)輸入條件,劃分出有效等價類和無效等價類,如表如表4-2-2所示。所示。 S

17、oftware Testing第一步第二步第三步1.形成等價類表2.每一等價類規(guī)定一個唯一的編號1.設(shè)計一測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類;2.重復(fù)這一步驟,直到所有有效等價類均被測試用例所覆蓋1.設(shè)計一新測試用例,使其只覆蓋一個無效等價類2.重復(fù)這一步驟直到所有無效等價類均被覆蓋;少而全少而全多而專多而專Software Testing等價類測試指導(dǎo)等價類測試指導(dǎo)方針方針w1. 等價類測試的弱形式不如對應(yīng)的強(qiáng)形式的測試全面。w2. 如果實現(xiàn)語言是強(qiáng)類型,則沒有必要使用健壯形式的測試。w3. 如果錯誤條件非常重要,則進(jìn)行健壯形式的測試是合適的。Software Testingw

18、4. 如果輸入數(shù)據(jù)以離散值區(qū)間和集合定義,則等價類測試是合適的。當(dāng)然也適用于如果變量值越界系統(tǒng)就會出現(xiàn)故障的系統(tǒng)。w5. 通過結(jié)合邊界值測試,等價類測試可得到加強(qiáng)。w6. 如果程序函數(shù)很復(fù)雜,則等價類測試是被指示的。在這種情況下,函數(shù)的復(fù)雜性可以幫助標(biāo)識有用的等價類。Software Testingw7. 強(qiáng)等價類測試假設(shè)變量是獨(dú)立的,相應(yīng)的測試用例相乘會引起冗余問題。如果存在依賴關(guān)系,則常常會生成錯誤測試用例。w8. 在發(fā)現(xiàn)合適的等價關(guān)系之前,可能需要進(jìn)行多次嘗試。w9. 強(qiáng)和弱形式的等價類測試之間的差別,有助于區(qū)分累進(jìn)測試和回歸測試。Software Testing任務(wù)任務(wù)1任務(wù)任務(wù)2任務(wù)

19、任務(wù)3任務(wù)任務(wù)4任務(wù)任務(wù)5任務(wù)任務(wù)1v任務(wù)任務(wù)1 1:郵件地址的測試:郵件地址的測試(1 1)確定等價類,列出等價類表確定等價類,列出等價類表有效等價類:有效等價類: 字符長度大于字符長度大于6 6且小于且小于1818(1 1)字符長度等于字符長度等于6 6(2 2)字符長度等于字符長度等于1818(3 3)第一個字符必須為字母(第一個字符必須為字母(4 4)- -隱含隱含其他字符可以為字母、數(shù)字其他字符可以為字母、數(shù)字以及下劃線的任意組合(以及下劃線的任意組合(5 5)無效等價類:無效等價類:字符長度大于字符長度大于1818(6 6)長度小于長度小于6 6 (7 7)第一個字符為非字母第一個

20、字符為非字母(8 8)空格空格(9 9)標(biāo)點(diǎn)符號標(biāo)點(diǎn)符號(10)(10)運(yùn)算符運(yùn)算符(11)(11)其他可顯示字符其他可顯示字符(12)(12)S+na12(4),(5),(11)無效A1b2c39r_tr 18個字符(3),(4),(5)有效1namenaa(1),(5),(8)無效(2 2)確定測試用例。確定測試用例。測試輸入執(zhí)行條件預(yù)期輸出z_san12(1),(4),(5)有效A1be.n12tr 19個字符(4),(5),(6)無效name(4),(5),(7)無效S name12(4),(5),(9)無效S?na12(4),(5),(10)無效z_na12(2),(4),(5)有效

21、S#na12(4),(5),(12)無效少而全少而全多而專多而專v程序有三個輸入變量程序有三個輸入變量mouthmouth、dayday、yearyear(均為整數(shù),且滿足:均為整數(shù),且滿足:1=mouth=121=mouth=12,1=day=311=day=31,1900=year=20501900=year=2050),分別),分別作為輸入日期的月份、日、年份,通過程作為輸入日期的月份、日、年份,通過程序可以輸出日期在日歷上隔一天(第三天序可以輸出日期在日歷上隔一天(第三天)的日期)的日期。v請請用等價類用等價類測試方法測試方法設(shè)計測試用例。設(shè)計測試用例。等價類等價類輸入條輸入條件件有效

22、等價類有效等價類編號編號無效等價類無效等價類編號編號month整數(shù)整數(shù)1浮點(diǎn)數(shù)浮點(diǎn)數(shù)101=month=122month1212day整數(shù)整數(shù)3浮點(diǎn)數(shù)浮點(diǎn)數(shù)13month為為1、3、5、7、8、10或或12時時1=day=314day3115month為為4、6、9、11時時1=day3016month為為2且且year為閏年為閏年時,時,1=day2917month為為2且且year不是閏不是閏年時,年時,1=day2818year整數(shù)整數(shù)8浮點(diǎn)數(shù)浮點(diǎn)數(shù)191990=year=20509year2050211) 1) 劃劃分分等等價價類類2) 2) 設(shè)設(shè)計計測測試試用用例例結(jié)合邊界值分析法測

23、試用測試用例編號例編號輸入數(shù)據(jù)輸入數(shù)據(jù)預(yù)期結(jié)果預(yù)期結(jié)果覆蓋等價類覆蓋等價類monthdayyear11119901990-1-31、2、3、4、8、92113019911991-12-21、2、3、5、8、9322919961996-3-21、2、3、6、8、9422820502050-3-21、2、3、7、8、951.521995拒絕拒絕106051996拒絕拒絕11732301997拒絕拒絕12831.31905拒絕拒絕139501906拒絕拒絕拒絕拒絕16122302004拒絕拒絕拒5

24、拒絕拒絕19157211989拒絕拒絕20168222051拒絕拒絕21monthday yearNNDate1212月月小月小月二月二月大月大月本月外本月外輸出輸出本月內(nèi)本月內(nèi)輸入輸入monthdayyearM1: monthM1: month有有3030天天=4,6,9,11=4,6,9,11;M2: monthM2: month有有3131天,天,1212月月除外除外=1,3,5,7,8,10=1,3,5,7,8,10; M3: monthM3: month是是1212月月 ;M4: monthM4: month是是2 2月月 ;D1:day:1dayD1:day:1day2626;D2

25、: D2: day:dayday:day=27=27;D3: D3: day:dayday:day=28=28;D4: D4: day:dayday:day=29=29; D5: D5: day:dayday:day=30=30;D6: D6: day:dayday:day=31=31;Y1:Y1:year:yearyear:year是閏年是閏年 ;Y2: Y2: year:yearyear:year不是閏年不是閏年 1) 1) 劃分等價類劃分等價類月份的有效等價類:月份的有效等價類: M1=mouth=4,6,9,11M1=mouth=4,6,9,11M2=mouth=1,3,5,7,8,10M2=mouth=1,3,5,7,8,10M3=mouth=12M3=mouth=12M4=mouth=2M4=mouth=21) 1) 劃分等價類劃分等價類日期日期的有效等價類:的有效等價類:D1=1=day=26D1=1=day=26D2=day=27D2=day=27D3=day=28D3=day=28D4=day=29D4=day=29D5=d

溫馨提示

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

最新文檔

評論

0/150

提交評論