軟件工程課件第十四講測試_第1頁
軟件工程課件第十四講測試_第2頁
軟件工程課件第十四講測試_第3頁
軟件工程課件第十四講測試_第4頁
軟件工程課件第十四講測試_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第十四講黑盒測試的測試用例設(shè)計黑盒測試所發(fā)現(xiàn)的錯誤類型功能不正確或遺漏界面錯誤數(shù)據(jù)結(jié)構(gòu)錯誤或外部數(shù)據(jù)庫訪問錯誤性能錯誤初始化和終止錯誤設(shè)計黑盒測試方案所考慮的問題怎樣測試功能的有效性?哪些類型的輸入可以構(gòu)成好的測試用例?系統(tǒng)是否對特定的輸入值特別敏感?怎樣劃定數(shù)據(jù)類的邊界?系統(tǒng)能夠承受的數(shù)據(jù)率和數(shù)據(jù)量?數(shù)據(jù)的特定組合對系統(tǒng)運行產(chǎn)生的影響?設(shè)計黑盒測試方案所滿足的標(biāo)準(zhǔn)在達(dá)到合理測試要求的前提下,使得測試用例總數(shù)盡量的少。所設(shè)計的測試用例最好能夠告訴我們存在錯誤的類型,而不是僅僅指出與特定測試相關(guān)的錯誤是否存在。黑盒測試用例設(shè)計技術(shù)等價類劃分邊界值分析錯誤猜測法因果圖法一、等價類劃分(EquivalencePartitioning)等價類劃分是一種典型的黑盒測試方法,使用這一方法時,完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計測試用例。等價類劃分方法把所有可能的輸入數(shù)據(jù)和輸出數(shù)據(jù),即程序的輸入域和輸出域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)為測試用例。使用這一方法設(shè)計測試用例要經(jīng)歷劃分等價類(列出等價類表)和選取測試用例兩步。劃分等價類

等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。測試某等價類的代表值就等價于對這一類其它值的測試。

等價類的劃分有兩種不同的情況:

①有效等價類:是指對于程序的規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。 ②無效等價類:是指對于程序的規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合。在設(shè)計測試用例時,要同時考慮有效等價類和無效等價類的設(shè)計。劃分等價類等價類的原則(1)如果輸入條件規(guī)定了取值范圍,或值的個數(shù),則可以確立一個有效等價類和兩個無效等價類。

例如,在程序的規(guī)格說明中,對輸入條件有“……項數(shù)可以從1到999……”的描述,則有效等價類是 “1≤項數(shù)≤999”兩個無效等價類是 “項數(shù)<1”或“項數(shù)>999”。在數(shù)軸上表示成:

(2)如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時可確立一個有效等價類和一個無效等價類。例如,在Pascal語言中對變量標(biāo)識符規(guī)定為“以字母打頭的……串”。那么所有以字母打頭的構(gòu)成有效等價類,而不在此集合內(nèi)(不以字母打頭)的歸于無效等價類。

(3)如果輸入條件是一個布爾量,則可以確定一個有效等價類和一個無效等價類。

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

(5)如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)例如,Pascal語言規(guī)定“一個語句必須以分號結(jié)束”。這時,可以確定一個有效等價類“以分號結(jié)束”,若干無效等價類“以‘:’結(jié)束”、“以‘,’結(jié)束”、“以‘’結(jié)束”、“以LF結(jié)束”等。(6)如果規(guī)定了輸入數(shù)據(jù)為整型,則可以劃分出正整數(shù)、零和負(fù)整數(shù)3個有效等價類;(7)如果程序的處理對象是表格,則應(yīng)該使用空表,以及含有一項或多項的表。確立測試用例在確立了等價類之后,建立等價類表,列出所有劃分出的等價類。再從劃分出的等價類中按以下原則選擇測試用例:為每一個等價類規(guī)定一個唯一編號;設(shè)計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,重復(fù)這一步,直到所有的有效等價類都被覆蓋為止;設(shè)計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復(fù)這一步,直到所有的無效等價類都被覆蓋為止。用等價類劃分法設(shè)計測試用例的實例在某一PASCAL語言版本中規(guī)定:“標(biāo)識符是由字母開頭,后跟字母或數(shù)字的任意組合構(gòu)成。有效字符數(shù)為8個,最大字符數(shù)為80個?!辈⑶乙?guī)定:“標(biāo)識符必須先說明,再使用。”“在同一說明語句中,標(biāo)識符至少必須有一個?!?/p>

用等價類劃分的方法,建立輸入等價類表:下面選取了9個測試用例,它們覆蓋了所有的等價類。

①VAR

x,T1234567:REAL;

BEGIN

x:=3.414;

T1234567:=2.732;

...…

覆蓋(1),(2),(4),(8),(9),(12),(14)

②VAR

:REAL;

(3)

③VAR

x,:REAL;(5)④VART12345678:REAL;

(6)⑤VART12345......:REAL;

(7)

多于80個字符⑥VART$:CHAR;

(10)⑦VARGOTO:INTEGER;

(11)⑧VAR2T:REAL;

(13)⑨VARPAR:REAL;

(15)

BEGIN......

PAP:=SIN(3.14*0.8)/6;二、邊界值分析邊界值分析也是一種黑盒測試方法,是對等價類劃分方法的補充。人們從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。比如,在做三角形計算時,要輸入三角形的三個邊長:A、B和C。我們應(yīng)注意到這三個數(shù)值應(yīng)當(dāng)滿足

A>0、B>0、C>0、

A+B>C、A+C>B、B+C>A,才能構(gòu)成三角形。但如果把六個不等式中的任何一個大于號“>”錯寫成大于等于號“≥”,那就不能構(gòu)成三角形。問題恰出現(xiàn)在容易被疏忽的邊界附近。這里所說的邊界是指,相對于輸入等價類和輸出等價類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于,或剛剛小于邊界的值做為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值做為測試數(shù)據(jù)。等價劃分與邊界值分析實例程序功能與運行要求:把數(shù)字串轉(zhuǎn)換成整數(shù);運行程序的計算機字長16位,用二進制補碼表示整數(shù)(-32768到32767);被處理的數(shù)字串(由數(shù)組存放)是右對齊的;如果數(shù)字串是負(fù)的,則符號在最高位數(shù)字的左邊一位;例如,輸入:‘-00002’,則輸出:-2; 輸入:‘-45552’,則輸出:無效輸入考慮到編譯器的功能,測試時不需要使用長度不等于6的數(shù)組和任何非數(shù)字?jǐn)?shù)組類型。有效輸入等價類1、1~6個數(shù)字字符組成的數(shù)字串(最高位不是0)2、最高位數(shù)字是0的數(shù)字串3、最高位數(shù)字左鄰負(fù)號的數(shù)字串無效輸入等價類4、空字符串(全為空格)5、左部填充的字符既不是0也不是空格6、最高位數(shù)字右面由數(shù)字和空格混合組成7、最高位數(shù)字右面由數(shù)字和其它字符混合組成8、負(fù)號和最高位數(shù)字之間有空格第一步:輸入等價類劃分合法輸出等價類9、

在計算機能夠表示的最小負(fù)整數(shù)和0之間的負(fù)整數(shù)10、011、在0和計算機能夠表示的最大正整數(shù)之間的正整數(shù)非法輸出等價類12、比計算機能夠表示的最小負(fù)整數(shù)還小13、比計算機能夠表示的最大正整數(shù)還大第二步:輸出等價類劃分第三步:結(jié)合邊界值分析14、使輸出剛好等于最小的負(fù)整數(shù)15、使輸出剛好等于最大的正整數(shù)16、使輸出剛好小于最小的負(fù)整數(shù)17、使輸出剛好大于最大的正整數(shù)第四步:測試用例設(shè)計負(fù)號位置錯‘-12’

8、負(fù)號和最高位數(shù)字之間有空格無效輸入‘8**449’7、最高位數(shù)字右面由數(shù)字和其它字符混合無效輸入‘1434’6、最高位數(shù)字右面由數(shù)字和空格混合組成填充錯‘****61’5、左部填充的字符不是0也不是空格沒有數(shù)字‘

’4、空字符串(全為空格)無效輸入等價類-1‘-00001’3、最高位數(shù)字左鄰負(fù)號的數(shù)字串1‘000001’2、最高位數(shù)字是0的數(shù)字串1‘1’1、1~6個數(shù)字字符組成的數(shù)字串有效輸入等價類預(yù)期輸出輸入數(shù)據(jù)等價類Cont.無效輸入‘32768’17、使輸出剛好大于最大的正整數(shù)無效輸入‘-32769’16、使輸出剛好小于最小的負(fù)整數(shù)32767‘32767’15、使輸出剛好等于最大的正整數(shù)-32768‘-32768’14、使輸出剛好等于最小的負(fù)整數(shù)邊界值分析無效輸入‘123456’13、比計算機能夠表示的最大正整數(shù)還大無效輸入‘-66666’12、比計算機能夠表示的最小負(fù)整數(shù)還小非法輸出等價類888‘888’

11、在0和最大正整數(shù)之間的正整數(shù)0‘000000’10、0-888‘-888’9、最小負(fù)整數(shù)和0之間的負(fù)整數(shù)合法輸出等價類預(yù)期數(shù)據(jù)輸入數(shù)據(jù)等價類與邊界三、錯誤推測法人們也可以靠經(jīng)驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的例子。這就是錯誤推測法。錯誤推測法的基本想法是:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例。四、因果圖法因果圖的適用范圍

如果在測試時必須考慮輸入條件的各種組合,可使用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來設(shè)計測試用例,這就需要利用因果圖。因果圖方法最終生成的就是判定表。適合于檢查程序輸入條件的各種組合情況用因果圖生成測試用例的基本步驟分析原因

(即輸入條件或輸入條件的等價類)和結(jié)果

(即輸出條件),并給每個原因和結(jié)果賦予一個標(biāo)識符。分析規(guī)格說明中的語義,找出原因與結(jié)果之間,原因與原因之間的對應(yīng)關(guān)系,畫因果圖。有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些特殊情況,在因果圖上用一些記號標(biāo)明約束或限制條件。把因果圖轉(zhuǎn)換成判定表。把判定表的每一列作為依據(jù),設(shè)計測試用例。在因果圖中出現(xiàn)的基本符號通常在因果圖中用Ci表示原因,用Ei表示結(jié)果,各結(jié)點表示狀態(tài),可取值“0”或“1”?!?”表示某狀態(tài)不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。主要的原因和結(jié)果之間的關(guān)系有:表示約束條件的符號為了表示原因與原因之間,結(jié)果與結(jié)果之間可能存在的約束條件,在因果圖中可以附加一些表示約束條件的符號。

有一個處理單價為5角錢的飲料的自動售貨機軟件,其規(guī)格說明如下:

若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來。若售貨機沒有零錢找,則一個顯示〖零錢找完〗的紅燈亮,這時在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時退還5角硬幣?!?1)分析這一段說明,列出原因和結(jié)果

原因:1.售貨機有零錢找

2.投入1元硬幣

3.投入5角硬幣

4.押下橙汁按鈕

5.押下啤酒按鈕

建立中間結(jié)點,表示處理中間狀態(tài)

11.投入1元硬幣且押下飲料按鈕

12.押下〖橙汁〗或〖啤酒〗的按鈕

13.應(yīng)當(dāng)找5角零錢并且售貨機有零錢找

14.錢已付清

結(jié)果:21.售貨機〖零錢

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論