軟件測(cè)試-測(cè)試用例概述補(bǔ)充_第1頁
軟件測(cè)試-測(cè)試用例概述補(bǔ)充_第2頁
軟件測(cè)試-測(cè)試用例概述補(bǔ)充_第3頁
軟件測(cè)試-測(cè)試用例概述補(bǔ)充_第4頁
軟件測(cè)試-測(cè)試用例概述補(bǔ)充_第5頁
已閱讀5頁,還剩135頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1測(cè)試用例設(shè)計(jì)概述測(cè)試用例的定義測(cè)試用例的重要性好測(cè)試用例的特點(diǎn)設(shè)計(jì)測(cè)試用例的基本準(zhǔn)則設(shè)計(jì)測(cè)試用例的著眼點(diǎn)測(cè)試用例的編寫標(biāo)準(zhǔn)測(cè)試用例設(shè)計(jì)的誤區(qū)2測(cè)試用例設(shè)計(jì)概述什么是軟件測(cè)試用例(1)測(cè)試用例是為特定的目的而設(shè)計(jì)的一組測(cè)試輸入、執(zhí)行條件和預(yù)期的結(jié)果。(2)測(cè)試用例是執(zhí)行的最小實(shí)體。3測(cè)試用例設(shè)計(jì)概述測(cè)試用例的重要性(待刪)有效性可復(fù)用性易組織性可評(píng)估性可管理性4測(cè)試用例設(shè)計(jì)概述好測(cè)試用例的特點(diǎn)1.完整的完整性是對(duì)測(cè)試用例最基本的要求,尤其是一些基本功能項(xiàng)上,如果有遺漏,那將是不可原諒的。完整性還體現(xiàn)在臨界測(cè)試、壓力測(cè)試、性能測(cè)試等方面,這方面測(cè)試用例也要能夠涉及到。2.準(zhǔn)確測(cè)試者按照測(cè)試用例的輸入一步步測(cè)試完成后,要能夠根據(jù)測(cè)試用例描述的輸出得出正確的結(jié)論,不能出現(xiàn)模糊不清的語言。3.清晰、簡(jiǎn)潔好的測(cè)試用例描述清晰,每一步都應(yīng)該有響應(yīng)的作用,有很強(qiáng)的針對(duì)性,不應(yīng)該出現(xiàn)一些冗繁無用的操作步驟。測(cè)試用例不應(yīng)該太簡(jiǎn)單,也不能夠太過復(fù)雜,最大操作步驟最好控制在15步之內(nèi)。5測(cè)試用例設(shè)計(jì)概述5.可維護(hù)性由于軟件開發(fā)過程中需求變更等原因的影響,常常需要對(duì)測(cè)試用例進(jìn)行修改、增加、刪除等,以便測(cè)試用例符合相應(yīng)測(cè)試要求。測(cè)試用例應(yīng)具備這方面的功能。6.適當(dāng)性測(cè)試?yán)龖?yīng)該適合特定的測(cè)試環(huán)境以及符合整個(gè)團(tuán)隊(duì)的測(cè)試水平,如純英語環(huán)境下的測(cè)試用例最好使用英文編寫。7.可復(fù)用性要求不同測(cè)試者在同樣測(cè)試環(huán)境下使用同樣測(cè)試用例都能得出相同結(jié)論。6測(cè)試用例設(shè)計(jì)概述8.其他如可追朔性、可移植性也是對(duì)編寫測(cè)試用例的一個(gè)要求。另外,好的測(cè)試用例也是最有可能抓住錯(cuò)誤的;不重復(fù)、多余的;是一組相似測(cè)試用例中最有效的;7測(cè)試用例設(shè)計(jì)概述設(shè)計(jì)測(cè)試用例的基本準(zhǔn)則測(cè)試用例的代表性能夠代表并覆蓋各種合理的和不合理的、合法的和非法的、邊界的和越界的以及極限的輸入數(shù)據(jù)、操作和環(huán)境設(shè)置等。測(cè)試結(jié)果的可判定性即測(cè)試執(zhí)行結(jié)果的正確性是可判定的,每一個(gè)測(cè)試用例都應(yīng)有相應(yīng)的期望結(jié)果。測(cè)試結(jié)果的可再現(xiàn)性即對(duì)同樣的測(cè)試用例,系統(tǒng)的執(zhí)行結(jié)果應(yīng)當(dāng)是相同的。8測(cè)試用例設(shè)計(jì)概述設(shè)計(jì)測(cè)試用例的著眼點(diǎn)根據(jù)產(chǎn)品規(guī)格,測(cè)試基本功能;考慮設(shè)計(jì)一般用戶(非專業(yè)人員)的使用方案;考慮設(shè)計(jì)稀有或特殊的使用方案;與系統(tǒng)其他組成部分的配合(如FAX和上網(wǎng)可能要用到MODEM,測(cè)試中考慮對(duì)設(shè)備的共享);考慮特殊情況(如內(nèi)存和硬件的沖突等);設(shè)計(jì)極端情況(如內(nèi)存泄漏、破壞性測(cè)試等);好的測(cè)試用例集能花費(fèi)最小的代價(jià)(人力、物力、財(cái)力、時(shí)間)做最好的測(cè)試。9測(cè)試用例設(shè)計(jì)概述測(cè)試用例的編寫標(biāo)準(zhǔn)在ANSI/IEEE829-1983標(biāo)準(zhǔn)中列出了和測(cè)試設(shè)計(jì)相關(guān)的測(cè)試用例編寫規(guī)范和模板。標(biāo)準(zhǔn)模板中主要元素如下:標(biāo)識(shí)符——惟一標(biāo)識(shí)每一個(gè)測(cè)試用例測(cè)試項(xiàng)——準(zhǔn)確的描述所需要測(cè)試的項(xiàng)及其特征測(cè)試環(huán)境要求——表征執(zhí)行該測(cè)試用例需要的測(cè)試環(huán)境輸入標(biāo)準(zhǔn)——執(zhí)行測(cè)試用例的輸入需求(這些輸入可能包括數(shù)據(jù)、文件或者操作)輸出標(biāo)準(zhǔn)——按照指定的環(huán)境和輸入標(biāo)準(zhǔn)得到的期望輸出結(jié)果測(cè)試用例之間的關(guān)聯(lián)——標(biāo)識(shí)該測(cè)試用例與其它的測(cè)試(或其它測(cè)試用例)之間的依賴關(guān)系10測(cè)試用例設(shè)計(jì)概述測(cè)試用例示例:對(duì)Windows記事本程序進(jìn)行測(cè)試,選取其中的一個(gè)測(cè)試項(xiàng)——文件菜單欄的測(cè)試:測(cè)試對(duì)象——記事本程序文件菜單欄(測(cè)試用例標(biāo)識(shí)10000,下同)所包含的子測(cè)試用例描述如下:|------------文件/新建(1001)|------------文件/打開(1002)|------------文件/保存(1003)|------------文件/另存為(1004)|------------文件/頁面設(shè)置(1005)|------------文件/打?。?006)|------------文件/退出(1007)選取其中的一個(gè)子測(cè)試用例——文件/退出(1007)作為例子,測(cè)試用例如下表所示。11字段名稱描

述標(biāo)識(shí)符1007測(cè)試項(xiàng)記事本程序,“文件”菜單欄中的“文件”|“退出”命令的功能測(cè)試測(cè)試環(huán)境要求Windows2000Professional中文版輸入標(biāo)準(zhǔn)(1)打開記事本程序,不輸入任何字符,單擊“文件”|“退出”命令(2)打開記事本程序,輸入一些字符,不保存文件,單擊“文件”|“退出”命令(3)打開記事本程序,輸入一些字符,保存文件,單擊“文件”|“退出”命令(4)打開一個(gè)記事本文件(*.txt),不做任何修改,單擊“文件”|“退出”命令(5)打開一個(gè)記事本文件,修改后不保存,單擊“文件”|“退出”命令輸出標(biāo)準(zhǔn)(1)記事本未做修改,單擊“文件”|“退出”命令,能正確地退出應(yīng)用程序,無提示信息(2)記事本做修改未保存或者另存,單擊“文件”|“退出”命令,會(huì)提示“未定標(biāo)題文件的文字已經(jīng)改變,想保存文件嗎?”單擊“是”,Windows將打開“保存”/“另存為”對(duì)話框,單擊“否”,文件將不被保存并退出記事本程序,單擊“取消”將返回記事本窗口測(cè)試用例間的關(guān)聯(lián)12測(cè)試用例設(shè)計(jì)概述下表是另一個(gè)測(cè)試用例示例(登錄功能測(cè)試)該測(cè)試用例并未涵蓋所有的非法輸入,如非法輸入中可能會(huì)有“user=*,pw=*”的組合,對(duì)回車的默認(rèn)操作,空格輸入,對(duì)輸入上溢的處理的處理(可能會(huì)跳過身份驗(yàn)證)等等。如果你有興趣,至少可以再補(bǔ)充5-10條左右的輸入組合(當(dāng)然,如果步驟超過15步,用例的易操作性就降低,可以再創(chuàng)建一個(gè)測(cè)試用例)。13項(xiàng)目/軟件技術(shù)出口合同網(wǎng)絡(luò)申領(lǐng)系統(tǒng)

(企業(yè)端)程序版本

1.0.25功能模塊名

Login編制人

xxx用例編號(hào)-TC-TEP_Login_1編制時(shí)間

2002.10.12相關(guān)的用例

功能特性

用戶身份驗(yàn)證

測(cè)試目的

驗(yàn)證是否輸入合法的信息,允許合法登陸,阻止非法登陸

預(yù)置條件

特殊規(guī)程說明

如數(shù)據(jù)庫(kù)訪問權(quán)限

參考信息

需求說明中關(guān)于“登陸”的說明測(cè)試數(shù)據(jù)

用戶名=yiyh密碼=114操作步驟

操作描述

數(shù)

據(jù)期望結(jié)果

實(shí)際結(jié)果

測(cè)試狀態(tài)1輸入用戶名稱,按“登陸”按鈕。用戶名=yiyh,密碼為空顯示警告信息“請(qǐng)輸入用戶名和密碼!”

2輸入密碼,按“登陸”按鈕。用戶名為空,密碼=1顯示警告信息“請(qǐng)輸入用戶名和密碼!”

3輸入用戶名和密碼,按“登陸”按鈕。用戶名=yiyh,密碼=2顯示警告信息“請(qǐng)輸入用戶名和密碼!”

4輸入用戶名和密碼,按“登陸”按鈕。用戶名=xxx,密碼=1顯示警告信息“請(qǐng)輸入用戶名和密碼!”

5輸入用戶名和密碼,按“登陸”按鈕。用戶名=xxx,密碼=2顯示警告信息“請(qǐng)輸入用戶名和密碼!”

6輸入用戶名和密碼,按“登陸”按鈕。用戶名=空,密碼=空顯示警告信息“請(qǐng)輸入用戶名和密碼!”

157輸入用戶名和密碼,按“登陸”按鈕。用戶名=yiyh,密碼=1進(jìn)入系統(tǒng)頁面。

8輸入用戶名和密碼,按“登陸”按鈕。用戶名=Admin,密碼=admin進(jìn)入系統(tǒng)維護(hù)頁面。

9輸入用戶名和密碼,按“登陸”按鈕。用戶名=yiyh',密碼=1顯示警告信息“請(qǐng)輸入用戶名和密碼!”

10輸入用戶名和密碼,按“登陸”按鈕。用戶名=yiyh,密碼=1'顯示警告信息“請(qǐng)輸入用戶名和密碼!”

11輸入用戶名和密碼,按“重置”按鈕。用戶名=yiyh,密碼=1清空輸入信息

測(cè)試人員

開發(fā)人員

16測(cè)試用例設(shè)計(jì)概述測(cè)試用例設(shè)計(jì)的誤區(qū)能發(fā)現(xiàn)到目前為止沒有發(fā)現(xiàn)的缺陷的用例是好的用例作為測(cè)試實(shí)施依據(jù)的測(cè)試用例,應(yīng)當(dāng)作一個(gè)集合來認(rèn)識(shí),必須要能完整覆蓋測(cè)試需求,而不應(yīng)該針對(duì)單個(gè)的測(cè)試用例去評(píng)判好壞。測(cè)試用例應(yīng)該詳細(xì)記錄所有的操作信息,使一個(gè)沒有接觸過系統(tǒng)的人員也能進(jìn)行測(cè)試測(cè)試用例維護(hù)費(fèi)用太高,測(cè)試資源難保證測(cè)試用例設(shè)計(jì)是一勞永逸的事情測(cè)試用例是動(dòng)態(tài)的,一旦測(cè)試環(huán)境、需求、設(shè)計(jì)、實(shí)現(xiàn)發(fā)生了變化,測(cè)試用例都需要相應(yīng)發(fā)生變化17測(cè)試用例設(shè)計(jì)概述測(cè)試用例不應(yīng)該包含實(shí)際的數(shù)據(jù)測(cè)試用例是“一組輸入、執(zhí)行條件、預(yù)期結(jié)果”、毫無疑問地應(yīng)該包括清晰的輸入數(shù)據(jù)和預(yù)期輸出,沒有測(cè)試數(shù)據(jù)的用例最多只具有指導(dǎo)性的意義,不具有可執(zhí)行性。當(dāng)然,測(cè)試用例中包含輸入數(shù)據(jù)會(huì)帶來維護(hù)、與測(cè)試環(huán)境同步之類的問題。測(cè)試用例中不需要明顯的驗(yàn)證手段“預(yù)期結(jié)果”的含義應(yīng)不只是程序的可見行為。例如,對(duì)一個(gè)訂貨系統(tǒng),輸入訂貨數(shù)據(jù),點(diǎn)擊“確定”按鈕后,系統(tǒng)提示“訂貨成功”,這樣是不是一個(gè)完整的用例呢?是不是系統(tǒng)輸出的“訂貨成功”就應(yīng)該作為我們唯一的驗(yàn)證手段呢?顯然不是。訂貨是否成功還需要查看相應(yīng)的數(shù)據(jù)記錄是否更新,因此,在這樣的一個(gè)用例中,還應(yīng)該包含對(duì)測(cè)試結(jié)果的顯式的驗(yàn)證手段:在數(shù)據(jù)庫(kù)中執(zhí)行查詢語句進(jìn)行查詢,看查詢結(jié)果是否與預(yù)期的一致。黑盒測(cè)試

第四章19本章內(nèi)容●三個(gè)被測(cè)程序●等價(jià)類劃分測(cè)試●

邊界值分析●決策表測(cè)試●其它黑盒測(cè)試方法20本章重點(diǎn)●掌握等價(jià)類劃分測(cè)試方法●掌握邊界值分析方法●

掌握決策表測(cè)試方法●

了解因果圖測(cè)試方法黑盒測(cè)試是從軟件的外部對(duì)軟件實(shí)施測(cè)試,也常形容為閉著眼睛測(cè)試。在實(shí)踐中,應(yīng)針對(duì)軟件開發(fā)項(xiàng)目的具體特點(diǎn),選擇適當(dāng)?shù)臏y(cè)試方法,有效地解決軟件開發(fā)中的測(cè)試問題。21輸入輸出4.1三個(gè)被測(cè)程序在第四章和第五章,將采用三個(gè)例子說明各種單元測(cè)試方法。這三個(gè)例子是:三角形問題;NextDate函數(shù)——邏輯比較復(fù)雜;雇傭金問題——有代表性;這三個(gè)例子合在一起,足可以說明軟件測(cè)試人員在單元級(jí)別上可能會(huì)遇到的大多數(shù)問題。4.1.1三角形問題

三角形問題是軟件測(cè)試文獻(xiàn)中使用最廣泛的一個(gè)例子。

三角形問題:輸入三個(gè)整數(shù)a、b和c分別作為三角形的三條邊,程序判斷由這三條邊構(gòu)成的三角形類型是:等邊三角形、等腰三角形、一般三角形或非三角形(不能構(gòu)成一個(gè)三角)。三角形問題之所以復(fù)雜,是因?yàn)檩斎肱c輸出之間的關(guān)系比較復(fù)雜。三角形問題可以更詳細(xì)地描述為:三角形問題:輸入三個(gè)整數(shù)a、b和c分別作為三角形的三條邊,要求a、b和c必須滿足以下條件:Con1.1≤a≤100Con4.a(chǎn)<b+cCon2.1≤b≤100Con5.b<a+cCon3.1≤c≤100Con6.c<a+b如果a、b和c滿足Con1、Con2和Con3,則輸出為四種情況之一:1).如果不滿足條件Con4、Con5和Con6中有一個(gè),則程序輸出為“非三角形”。2).如果三條邊相等,則程序輸出為“等邊三角形”。3).如果恰好有兩條邊相等,則程序輸出為“等腰三角形”。4).如果三條邊都不相等,則程序輸出為“一般三角形”。

4.1.2NextDate函數(shù)

NextDate函數(shù)是一個(gè)有三個(gè)變量month(月份)、day(日期)和year(年)的函數(shù)。輸出為輸入日期后一天的日期。例如,如果輸入為:2012年10月12日,則NextDate函數(shù)的輸出為:2012年10月13日。

要求輸入變量month、day和year都是整數(shù)值,并且滿足以下條件:

Con1.

1≤month≤12Con2.

1≤day≤31

Con3.

1912≤year≤2050NextDate函數(shù)規(guī)格說明可以更具體一些:包括對(duì)day、month和year的無效輸入值的響應(yīng)定義,對(duì)無效邏輯組合進(jìn)行定義等。例如對(duì)任意年的2月31日的響應(yīng)。如果Con1,Con2或Con3中任何一個(gè)條件失效,則NextDate都會(huì)產(chǎn)生一個(gè)輸出,指明相應(yīng)的變量超出了取值范圍。例如,“month值不在1~12范圍內(nèi)”。存在大量的無效day-month-year的組合。NextDate函數(shù)中復(fù)雜性來源:一是所討論輸人域的復(fù)雜性,一是確定閏年的規(guī)則。一年有365.2422天,因此,閏年被用來解決“額外天”的問題。4.1.3雇傭金問題

第三個(gè)例子是一個(gè)典型的商務(wù)計(jì)算例子,包含了計(jì)算和決策,因此引出了許多有意思的測(cè)試問題。

前亞利桑那州境內(nèi)的一位步槍銷售商銷售密蘇里州制造的步槍機(jī)(lock)、槍托(stock)和槍管(barrel)。槍機(jī)賣45美圓、槍托賣30美圓,槍管25美圓。銷售商每月至少要售出一支完整的步槍,制造商的生產(chǎn)限額可提供大多數(shù)銷售商一個(gè)月內(nèi)銷售70個(gè)槍機(jī)、80個(gè)槍托和90個(gè)槍管。銷售商每訪問一個(gè)鎮(zhèn)之后,都給密蘇里州步槍制造商發(fā)封電報(bào),說明那個(gè)鎮(zhèn)出售的槍機(jī)、槍托和槍管數(shù)量。月末,銷售商發(fā)出-1個(gè)槍機(jī)被售出,表明一個(gè)月結(jié)束,這樣步槍制造商就知道當(dāng)月的銷售情況,并計(jì)算銷售商的雇傭金。銷售商的雇傭金計(jì)算如下:銷售額不到(含)1000美元的部分為10%,1000(不含)~1800(含)美元的部分為15%,超過1800美元的部分為20%。雇傭金程序生成按月份的銷售報(bào)告,匯總售出的槍機(jī)、槍托和槍管總數(shù),銷售商的總銷售額以及雇傭金。這個(gè)問題可以分為三個(gè)不同的部分:1)輸人數(shù)據(jù)部分,用來處理輸入數(shù)據(jù)有效性;2)銷售額計(jì)算部分;

3)雇傭金計(jì)算部分。

4.1.3雇傭金問題4.2等價(jià)類劃分測(cè)試

等價(jià)類劃分是一種典型的黑盒測(cè)試方法,該方法完全不考慮程序的內(nèi)部結(jié)構(gòu),只根據(jù)對(duì)軟件的要求和說明,即需求規(guī)格說明書,把程序輸入域劃分成若干部分,然后從每個(gè)部分中選取少數(shù)代表性數(shù)據(jù)為作測(cè)試輸入。使用等價(jià)類劃分方法設(shè)計(jì)測(cè)試用例,必須在分析需求規(guī)格說明的基礎(chǔ)上劃分等價(jià)類。4.2.1等價(jià)類劃分

等價(jià)類劃分把程序的輸入域劃分成若干個(gè)互不相交的子集——等價(jià)類。所謂等價(jià)類是指輸入域的某個(gè)集合,等價(jià)類的并便是整個(gè)輸入域。這對(duì)于測(cè)試有兩個(gè)非常重要的意義:表示整個(gè)輸入域提供了一種形式的完備性,而互不相交則可保證一種形式的無冗余性。4.2.1等價(jià)類劃分

等價(jià)類由等價(jià)關(guān)系決定。因此等價(jià)類中的元素有一些共同的特點(diǎn):如果用等價(jià)類中的一個(gè)元素作為測(cè)試數(shù)據(jù)進(jìn)行測(cè)試不能發(fā)現(xiàn)程序中的故障,那么使用集合中的其它元素進(jìn)行測(cè)試也不可能發(fā)現(xiàn)程序故障。

對(duì)揭露程序中的故障來說,等價(jià)類中的每個(gè)元素是等效的。等價(jià)類劃分測(cè)試的實(shí)現(xiàn)分二步進(jìn)行,一是確定等價(jià)類,二是確定測(cè)試用例。一、劃分等價(jià)類

軟件不能都只接收有效的、合理的數(shù)據(jù),還要經(jīng)受意外的考驗(yàn),即接受無效的或不合理的數(shù)據(jù),這樣獲得的軟件才能具有較高的可靠性。確定等價(jià)類,是使用等價(jià)類測(cè)試方法的一個(gè)重要問題。

4.2.1等價(jià)類劃分●有效等價(jià)類:

有效等價(jià)類是指對(duì)程序規(guī)格說明,是有意義的,合理的輸人數(shù)據(jù)所構(gòu)成的集合。

利用有效等價(jià)類,可以檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說明預(yù)先規(guī)定的功能和性能。

在具體問題中,有效等價(jià)類可以是一個(gè),也可以是多個(gè)。在考慮等價(jià)類時(shí),應(yīng)注意區(qū)別有效等價(jià)類和無效等價(jià)類。4.2.1等價(jià)類劃分●無效等價(jià)類:

無效等價(jià)類是指對(duì)程序規(guī)格說明,是不合理或無意義的輸入數(shù)據(jù)所構(gòu)成的集合。

利用無效等價(jià)類,可以檢查程序功能和性能的實(shí)現(xiàn)是否有不符合規(guī)格說明要求的地方。對(duì)于具體的問題,無效等價(jià)類至少應(yīng)有一個(gè),也可能有多個(gè)。

4.2.1等價(jià)類劃分二、設(shè)計(jì)測(cè)試用例

在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)同時(shí)考慮有效等價(jià)類和無效等價(jià)類測(cè)試用例的設(shè)計(jì)。

希望用僅可能少的測(cè)試用例,覆蓋所有的有效等價(jià)類。但對(duì)每一個(gè)無效等價(jià)類,設(shè)計(jì)一個(gè)測(cè)試用例來覆蓋它。4.2.1等價(jià)類劃分根據(jù)已列出的等價(jià)類表,按以下步驟確定測(cè)試用例:

1)為每個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào)。

2)

設(shè)計(jì)一個(gè)新的測(cè)試用例,盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步,直到測(cè)試用例覆蓋了所有的有效等價(jià)類。

3)

設(shè)計(jì)一個(gè)新的測(cè)試用例,使其覆蓋并且只覆蓋一個(gè)還沒有被覆蓋的無效等價(jià)類。重復(fù)這一步,直至測(cè)試用例覆蓋了所有的無效等價(jià)類。

4.2.1等價(jià)類劃分

若用一個(gè)測(cè)試用例檢測(cè)多個(gè)無效等價(jià)類,某些無效等價(jià)類可能永遠(yuǎn)不會(huì)被檢測(cè)到。

因?yàn)榈谝粋€(gè)測(cè)試可能會(huì)屏蔽或終止其他無效等價(jià)類的測(cè)試執(zhí)行。4.2.1等價(jià)類劃分等價(jià)類測(cè)試也遵循邊界值測(cè)試的兩個(gè)決定因素:

健壯性和單/多故障假設(shè)。

弱健壯等價(jià)類測(cè)試——傳統(tǒng)等價(jià)類測(cè)試形式,關(guān)注無效數(shù)據(jù)值。弱/強(qiáng)

等價(jià)類測(cè)試健壯/標(biāo)準(zhǔn)等價(jià)類測(cè)試4.2.2常見的等價(jià)類測(cè)試形式

為便于理解,我們也以一個(gè)有兩個(gè)輸入變量x1和x2的程序F為例,說明一般等價(jià)類測(cè)試和健壯等價(jià)類測(cè)試。

有效等價(jià)類因此,變量x1和x2,的無效值分別為:

x1<a,x1>d

和x2<e,x2>g無效等價(jià)類4.2.2常見的等價(jià)類測(cè)試形式假設(shè):輸入變量x1和x2在下列范圍內(nèi)取值:a≤x1≤d,區(qū)間[a,b],(b,c),[c,d]e≤x2≤g,區(qū)間[e,f],[f,g]其中方括號(hào)和圓括號(hào)分別表示閉區(qū)間和開區(qū)間的端點(diǎn)1.標(biāo)準(zhǔn)等價(jià)類測(cè)試

標(biāo)準(zhǔn)等價(jià)類測(cè)試不考慮無效數(shù)據(jù)值。測(cè)試用例使用每個(gè)等價(jià)類中的一個(gè)值。4.2.2常見的等價(jià)類測(cè)試形式x1有效等價(jià)類[a,b],(b,c),[c,d]x2有效等價(jià)類[e,f],[f,g]abcdefgx1x2圖4.1標(biāo)準(zhǔn)等價(jià)類測(cè)試用例測(cè)試用例的數(shù)量和含最大子集數(shù)目的等價(jià)類中的數(shù)目相同。

4.2.2常見的等價(jià)類測(cè)試形式2.健壯等價(jià)類測(cè)試健壯源于這種等價(jià)類測(cè)試考慮了無效等價(jià)類。對(duì)有效輸入來說,測(cè)試用例從每個(gè)有效等價(jià)類中只取一個(gè)值(和標(biāo)準(zhǔn)等價(jià)類測(cè)試一樣)。注意這些測(cè)試用例里的每個(gè)輸入都是有效的。2.對(duì)無效輸入來說,一個(gè)測(cè)試用例有一個(gè)無效值,其它值都取有效值。4.2.2常見的等價(jià)類測(cè)試形式x1有效等價(jià)類[a,b],(b,c),[c,d]x2有效等價(jià)類[e,f],[f,g]

x1無效等價(jià)類

x1<a,x1>dx2無效等價(jià)類

x2<e,x2>g測(cè)試用例的數(shù)量3+2*2=7。abcdefgx1x2圖4.2健壯性等價(jià)類測(cè)試用例4.2.2常見的等價(jià)類測(cè)試形式

健壯等價(jià)類測(cè)試有兩個(gè)問題:1)規(guī)格說明常常沒有定義無效測(cè)試用例所預(yù)期的輸出是什么?2)強(qiáng)類型語言沒有必要考慮無效輸入。測(cè)試人員需要花大量時(shí)間來定義這些測(cè)試用例的輸出。弱健壯等價(jià)類測(cè)試是FORTRAN和COBOL這樣的語言占統(tǒng)治地位的產(chǎn)物。事實(shí)上,正是由于經(jīng)常出現(xiàn)輸入無效值這樣的錯(cuò)誤,才導(dǎo)致了強(qiáng)類型語言的出現(xiàn)。4.2.2常見的等價(jià)類測(cè)試形式1.三角形問題的等價(jià)類測(cè)試用例(1)傳統(tǒng)等價(jià)類劃分測(cè)試用例設(shè)計(jì)

在三角形問題中,輸入條件要求:

4.2.3等價(jià)類劃分測(cè)試舉例

●整數(shù);●三個(gè)數(shù);●取值在1到100之間4.2.3等價(jià)類劃分測(cè)試舉例

仔細(xì)分析三角形問題,可得出其等價(jià)類表。表4-2三角形問題的等價(jià)類1

輸入三個(gè)整數(shù)有效等價(jià)類號(hào)碼無效等價(jià)類號(hào)碼整數(shù)1一邊為非整數(shù)二邊為非整數(shù)三邊均為非整數(shù)456三個(gè)數(shù)2只有一條邊只有二條邊多余三條邊7893一邊為零二邊為零三邊為零101112一邊<零二邊<零三邊<零131415一邊>100二邊>100三邊>1001617184.2.3等價(jià)類劃分測(cè)試舉例

覆蓋無效等價(jià)類的測(cè)試用例見表4-3所示。表4-3三角形問題的無效等價(jià)類測(cè)試用例abc覆蓋的等價(jià)類abc覆蓋的等價(jià)類1.5,4,540,0,0123.5,2.5,55-3,4,6132.5,4.5,5.562,-7,-51437-3,-5,-7154,58101,4,8162,3,4,593,101,101173,0,810101,101,101180,6,011(2)標(biāo)準(zhǔn)和健壯等價(jià)類劃分測(cè)試用例設(shè)計(jì)三角形問題有四種可能輸出:非三角形,一般三角形,等腰三角形和等邊三角形。利用這些信息來確定輸出(值域)等價(jià)類。

R1={<a,b,c>:邊為a,b,c的等邊三角形}R2={<a,b,c>:邊為a,b,c的等腰三角形}R3={<a,b,c>:邊為a,b,c的一般三角形}R4={<a,b,c>:邊a,b,c不能形成三角形}4.2.3等價(jià)類劃分測(cè)試舉例

四個(gè)標(biāo)準(zhǔn)等價(jià)類測(cè)試用例是:

測(cè)試用例abc預(yù)期輸出Test1Test2Test3Test4523452415352等邊三角形等腰三角形一般三角形非三角形4.2.3等價(jià)類劃分測(cè)試舉例

考慮a,b,c的無效值產(chǎn)生了下面7個(gè)健壯等價(jià)類測(cè)試用例,如下表所示。表4-5三角形問題的7個(gè)健壯等價(jià)類測(cè)試用例

測(cè)試用例abc預(yù)期輸出Test1Test2Test3Test4Test5Test6Test73-1551015545-1551015555-155101一般三角形a值不在允許的范圍內(nèi)b值不在允許的范圍內(nèi)c值不在允許的范圍內(nèi)a值不在允許的范圍內(nèi)b值不在允許的范圍內(nèi)c值不在允許的范圍內(nèi)4.2.3等價(jià)類劃分測(cè)試舉例2.NextDate函數(shù)的等價(jià)類測(cè)試用例設(shè)計(jì)NextDate是一個(gè)含三個(gè)變量—month,day,year的函數(shù)。有效值區(qū)間定義如下:

M1={month:1≤month≤12}D1={day:1≤day≤31}Y1={year:1912≤year≤2050}無效等價(jià)類是:M2={month:month<1}M3={month:month>12}D2={day:day<1}D3={day:day>31}Y2={year:year<1912}Y3={year:year>2050}NextDate函數(shù)可以很好地說明選擇等價(jià)關(guān)系的技巧。

2.NextDate函數(shù)的等價(jià)類測(cè)試用例設(shè)計(jì)只有一個(gè)標(biāo)準(zhǔn)等價(jià)類測(cè)試用例:

CaseIDMonthDayYearExpectedOutputTest181619648/17/19642.NextDate函數(shù)的等價(jià)類測(cè)試用例設(shè)計(jì)健壯等價(jià)類測(cè)試用例:

測(cè)試用例MonthDayYear預(yù)期輸出Test1Test2Test3Test4Test5Test6Test78-11388881616168月17日month不在1..12中month不在1..12中day不在1..31中day不在1..31中year不在1912..2012year不在1912..201219641964196419641964191120512.NextDate函數(shù)的等價(jià)類測(cè)試用例設(shè)計(jì)

如果更仔細(xì)地選擇等價(jià)關(guān)系,可以得到更有用的等價(jià)類。假設(shè)下面的等價(jià)類:M1={month:monthhas30days}M2={month:monthhas31days}M3={month:monthisFebruary}D1={day:1≤day≤28}D2={day:day=29}D3={day:day=30}D4={day:day=31}Y1={year:year=2000}Y2={year:yearisaleapyear}Y3={year:yearisacommonyear}簡(jiǎn)化month的處理對(duì)閏年問題

給予更多的注意

2.NextDate函數(shù)的等價(jià)類測(cè)試用例設(shè)計(jì)標(biāo)準(zhǔn)等價(jià)類測(cè)試用例:

機(jī)械地選擇輸入值而不考慮定義域,因此沒有考慮兩個(gè)不可能出現(xiàn)的日期。

測(cè)試用例MonthDayYear預(yù)期輸出Test1Test2Test3Test445241529303120001996200220004/16/20005/30/19962/31/2002(不可能的日期)5/1/2000(不可能的輸入日期)2.NextDate函數(shù)的等價(jià)類測(cè)試用例設(shè)計(jì)健壯等價(jià)類測(cè)試用例:

測(cè)試用例MonthDayYear預(yù)期輸出Test1Test2Test3Test4Test5Test6Test7Test8Test9Test104524-1134526152930311529-132303120001996200220001996200220001996191120514/16/20005/30/19962/31/2002(不可能的日期)5/1/2000(不可能的輸入日期)Month不在有效值域1..12中Month不在有效值域1..12中Day不在有效值域1..31中Day不在有效值域1..31中Year不在有效值域1912..2050中Year不在有效值域1912..2050中3.雇傭金問題的等價(jià)類測(cè)試用例設(shè)計(jì)

傭金問題的輸入定義域很“自然地”受槍機(jī),槍托和槍管的限制而被劃分為3類。

有效等價(jià)類是:L1={locks:1≤locks≤70}L2={locks=-1}S1={stocks:1≤stocks≤80}B1={barrels:1≤barrels≤90}無效等價(jià)類是:L3={locks:locks=0ORlocks<-1}L4={locks:locks>70}S2={stocks:stocks<1}S3={stocks:stocks>80}B2={barrels:barrels<1}B3={barrels:barrels>90}3.雇傭金問題的等價(jià)類測(cè)試用例設(shè)計(jì)

除了變量名稱和區(qū)間端點(diǎn)以外,其它和第一個(gè)版本的NextDate函數(shù)一樣。因此,可以設(shè)計(jì)一個(gè)標(biāo)準(zhǔn)等價(jià)類測(cè)試用例。

Test1:槍機(jī)=4,槍托=5,槍管=9

有7個(gè)健壯性等價(jià)類測(cè)試用例如表4-8所示。3.雇傭金問題的等價(jià)類測(cè)試用例設(shè)計(jì)測(cè)試用例槍機(jī)槍托槍管預(yù)期輸出Test1Test2Test3Test4Test5Test6Test74-1713535353554545-181454555.5槍機(jī)值不在允許范圍內(nèi)槍機(jī)值不在允許范圍內(nèi)槍托值不在允許范圍內(nèi)槍托值不在允許范圍內(nèi)槍管值不在允許范圍內(nèi)槍管值不在允許范圍內(nèi)955555555-191表4-8雇傭金問題的健壯等價(jià)類測(cè)試用例3.雇傭金問題的等價(jià)類測(cè)試用例設(shè)計(jì)輸入域等價(jià)類不能產(chǎn)生令人滿意的測(cè)試用例集合。

考慮在輸出域上定義等價(jià)類。銷售額是已售槍機(jī),槍托和槍管的函數(shù):銷售額=45*槍機(jī)+30*槍托+25*槍管

可以在傭金域定義三個(gè)變量的等價(jià)類:S1={<locks,stocks,barrels>:sales≤1000}S2={<locks,stocks,barrels>:1000<sales≤1800}S3={<locks,stocks,barrels>:sales>1800}3.雇傭金問題的等價(jià)類測(cè)試用例設(shè)計(jì)輸出域等價(jià)類測(cè)試用例:

測(cè)試用例LocksStocksBarrelsSalesCommissiontest1test2test35152550015002500501753605152551525表4-9雇傭金問題的輸出域等價(jià)類測(cè)試用例4.2.4等價(jià)類測(cè)試的指導(dǎo)方針使用等價(jià)類測(cè)試時(shí),應(yīng)注意如下幾點(diǎn):●如果執(zhí)行語言是強(qiáng)類型的,則沒有必要使用健壯等價(jià)類測(cè)試。●如果錯(cuò)誤輸入檢查非常重要,則應(yīng)進(jìn)行健壯等價(jià)類測(cè)試?!袢绻斎霐?shù)據(jù)以離散值區(qū)間或集合的形式定義,則等價(jià)類測(cè)試是合適的?!裨诎l(fā)現(xiàn)“合適”的等價(jià)關(guān)系之前,可能需要進(jìn)行多次嘗試。4.3邊界值分析

使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。輸入等價(jià)類與輸出等價(jià)類的邊界,就是應(yīng)著重測(cè)試的邊界情況。邊界值分析方法的基本思想是,選取正好等于,剛剛大于,或剛剛小于邊界的值做為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值做為測(cè)試數(shù)據(jù)。

人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的故障發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。實(shí)踐表明,在設(shè)計(jì)測(cè)試用例時(shí),對(duì)邊界附近的處理必須給予足夠的重視,為檢驗(yàn)邊界附近的處理專門設(shè)計(jì)測(cè)試用例,常??梢匀〉昧己玫臏y(cè)試效果。4.3.1邊界條件

邊界條件是一些特殊情況。程序在處理大量中間數(shù)值時(shí)都是正確,但是在邊界處可能出現(xiàn)錯(cuò)誤。

比如,在作三角形計(jì)算時(shí),要輸入三角形的三個(gè)邊長(zhǎng):a、b和a。當(dāng)滿足a+b>c、a+c>b及b+c>a才能構(gòu)成三角形。但如果把三個(gè)不等式的任何一個(gè)大于號(hào)“>”錯(cuò)寫成大于等于號(hào)“≥”,那就無法構(gòu)成三角形了。4.3.1邊界條件再如:下面是一個(gè)極簡(jiǎn)單的程序。

/*Createa10elementintegerarray*//*Initiatizeeachelementto–1*/main(){intdata[10];inti;For(i=1;i<10;i++)data(i)=-1;}

這段代碼的意圖是創(chuàng)建包含10個(gè)元素的數(shù)組,并為數(shù)組中的每一個(gè)元素賦初值-1,即數(shù)組中從第1個(gè)元素到第10個(gè)元素被賦予數(shù)值-1。

4.3.1邊界條件

但程序執(zhí)行完畢,數(shù)組值如下:

data(0)=0;data(1)=-1;data(2)=-1;data(3)=-1;data(4)=-1;data(5)=-1;data(6)=-1;data(7)=-1;data(8)=-1;data(9)=-1;data(10)=-1

此時(shí)data(0)的值是0,而不是-1。如果程序員以后忘記了,或者其他程序員不知道這個(gè)數(shù)組只對(duì)data(1)到data(10)進(jìn)行了初始化,那么他就可能會(huì)用到數(shù)組的第1個(gè)元素data(0),以為它的值是-1。

4.3.1邊界條件

剛開始時(shí),可能意識(shí)不到一組給定數(shù)據(jù)包含了多少邊界。但是仔細(xì)分析總可以找到一些不明顯的、有趣的和可能產(chǎn)生軟件故障的邊界。實(shí)際上,邊界條件就是軟件操作界限所在的邊緣條件。一些可能與邊界有關(guān)的數(shù)據(jù)類型有:數(shù)值,速度,字符,地址,位置,尺寸,數(shù)量,等等。同時(shí),考慮這些類型的下述特征:

第一個(gè)/最后一個(gè),最小值/最大值,開始/完成,超過/在內(nèi),空/滿,最短/最長(zhǎng),最慢/最快,最早/最遲,最高/最低,相鄰/最遠(yuǎn),等等。4.3.2次邊界條件

有些邊界在軟件內(nèi)部,用戶幾乎看不到,但是軟件測(cè)試仍有必要對(duì)這些邊界條件進(jìn)行檢查。這樣的邊界條件稱為次邊界條件或者內(nèi)部邊界條件。

尋找次邊界條件比較困難,雖然不要求軟件測(cè)試員成為程序員或者具有閱讀源代碼的能力,但是要求軟件測(cè)試員能大體了解軟件的工作方式。4.3.2次邊界條件1、2的冪次方表4-102的冪次方所表示的術(shù)語范圍位0或1半字節(jié)0~15字節(jié)0~255字0~65,535或0~4,294,967,295千1024兆1,048,576億1,073,741,8244.3.2次邊界條件

例如,假設(shè)某種通訊協(xié)議支持256條命令,為了提高數(shù)據(jù)傳輸效率,通訊軟件總是將常用的信息壓縮到一個(gè)很小的單元中,必要時(shí)再擴(kuò)展為大一些的單元。比如將常用的15條命令壓縮為一個(gè)半字節(jié)數(shù)據(jù),在遇到第16到256之間的命令時(shí),軟件轉(zhuǎn)而發(fā)送一個(gè)一字節(jié)的命令。用戶只知道可以執(zhí)行256條命令,并不知道軟件根據(jù)半字節(jié)/字節(jié)邊界執(zhí)行了不同的計(jì)算和操作。

為了覆蓋所有可能的2的冪次方次邊界,還要考慮臨近半字節(jié)邊界的14,15和16,以及臨近字節(jié)邊界的254,255和256。4.3.2次邊界條件2、ASCII表表4-11部分ASCII值表

字符ASCII值字符ASCII值Null0B66space32Y89/47Z90048[91149‘96250a97957b98:58y121@64z122A65{1234.3.2次邊界條件

表4-11中,0~9的ASCII值是48~57。斜杠字符(/)在數(shù)字0的前面,而冒號(hào)字符(:)在數(shù)字9的后面。大寫字母A~Z對(duì)應(yīng)65~90。小寫字母對(duì)應(yīng)97-~122。這些情況都代表次邊界條件。如果對(duì)文本輸入或文本轉(zhuǎn)換軟件進(jìn)行測(cè)試,在考慮數(shù)據(jù)區(qū)間包含哪些值時(shí),參考一下ASCII表是相當(dāng)明智的。例如,如果測(cè)試的文本框只接受用戶輸入字符A~Z和a~z,就應(yīng)該在非法區(qū)間中,檢測(cè)ASCII表中位于這些字符前后的值——@,[,和{。4.3.2邊界值分析測(cè)試

這里討論一個(gè)有兩個(gè)變量x1,x2的程序F,輸入變量x1和x2在下列范圍內(nèi)取值:

a≤x1≤bc≤x2≤d

區(qū)間[a,b]和[c,d]是x1和x2的值域,強(qiáng)類型語言(例如Ada)允許顯式地定義這種變量值域。事實(shí)上,邊界值測(cè)試更適于采用非強(qiáng)類型語言編碼的程序。cabdx1x2圖4-3兩個(gè)變量程序的輸入域程序F的輸入空間(定義域)如圖4-3所示。帶陰影矩形中的任何點(diǎn)都是程序F的有效輸入。4.3.2邊界值分析測(cè)試

邊界值分析的基本思想是利用輸入變量值的最小值,稍大于最小值,正常值,稍小于最大值和最大值。

邊界值分析測(cè)試用例的獲得,通過使所有變量取正常值,只使一個(gè)變量分別取最小值、略高于最小值、略低于最大值和最大值。4.3.2邊界值分析測(cè)試x1abdx2圖4-4有兩個(gè)變量程序的邊界值分析測(cè)試用例c{<xlnom,x2min>,<xlnom,x2min+>,<xlnom,x2nom>,<xlnom,x2max->,<xlnom,x2max>,<xlmin,x2nom>,<xlmin+,x2nom>,<xlmax,x2nom>,<xlmax+,x2nom>}N個(gè)變量,邊界值分析產(chǎn)生4n+1個(gè)測(cè)試用例。4.3.4健壯性測(cè)試

健壯性測(cè)試是邊界值分析的一種擴(kuò)展。

變量除了取min,min+,nom,max-,max五個(gè)邊界值外,還要考慮采用一個(gè)略超過最大值(max+)以及一個(gè)略小于最小值(min-)的取值,看看超過極限值時(shí)系統(tǒng)會(huì)出現(xiàn)什么情況。abdx2兩個(gè)變量程序的健壯性測(cè)試用例x1abdx2x1

健壯性測(cè)試最有意義的部分不是輸人,而是預(yù)期的輸出,觀察例外情況如何處理。4.3.3邊界值分析舉例

邊界值分析測(cè)試用例的獲得,通過使所有變量取正常值,只使一個(gè)變量分別取最小值、略高于最小值、略低于最大值和最大值。一、三角形問題的邊界值分析測(cè)試用例邊長(zhǎng)下界為1,邊長(zhǎng)上界可取為100。

測(cè)試用例abc預(yù)期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形表4-邊界值分析測(cè)試用例測(cè)試用例abc預(yù)期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形表4-12邊界值分析測(cè)試用例測(cè)試用例abc預(yù)期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形表4-邊界值分析測(cè)試用例測(cè)試用例abc預(yù)期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形表4-邊界值分析測(cè)試用例二、NextDate函數(shù)的測(cè)試用例

NextDate函數(shù)是一個(gè)有三個(gè)變量month(月份)、day(日期)和year(年)的函數(shù)。輸出為輸入日期后一天的日期。

要求輸入變量month、day和year都是整數(shù)值,并且滿足下條件:

Con1.

1≤month≤12Con2.

1≤day≤31Con3.

1912≤year≤2050666661515-112191119121913197520491911年6月16日1911年6月16日1911年6月16日1911年6月16日1911年6月16日測(cè)試用例MonthDayYear預(yù)期輸出151515151520502051197519751975197519751975Test1Test2Test3Test4Test5666661911年6月16日1911年6月16日Day不在有效值域1..31中1975年6月2日1975年6月3日1975年7月1日不可能的輸入日期Day不在有效值域1..31中666303132Test6Test7Test8Test9Test10Test11Test12Test13表4-13NextDate函數(shù)健壯性測(cè)試用例二、NextDate函數(shù)的測(cè)試用例151515測(cè)試用例MonthDayYear預(yù)期輸出197519751975197519751975-112month不在有效值域1..12中1975年1月16日1975年2月16日1975年11月16日

1975年12月16日

month不在有效值域1..12中111213151515Test14Test15Test16Test17Test18Test19表4-13NextDate函數(shù)健壯性測(cè)試用例二、NextDate函數(shù)的測(cè)試用例

雇傭金問題的測(cè)試用例生成步槍銷售商銷售密蘇里州制造的步槍機(jī)(lock)、槍托(stock)和槍管(barrel)。槍機(jī)賣45美圓、槍托賣30美圓,槍管25美圓。銷售商每月至少要售出一支完整的步槍,制造商的生產(chǎn)限額可提供大多數(shù)銷售商一個(gè)月內(nèi)銷售70個(gè)槍機(jī)、80個(gè)槍托和90個(gè)槍管。銷售商每訪問一個(gè)鎮(zhèn)之后,都給密蘇里州步槍制造商發(fā)封電報(bào),說明那個(gè)鎮(zhèn)出售的槍機(jī)、槍托和槍管數(shù)量。月末,銷售商發(fā)出-1個(gè)槍機(jī)被售出,表明一個(gè)月結(jié)束,這樣步槍制造商就知道當(dāng)月的銷售情況,并計(jì)算銷售商的雇傭金。三、傭金問題的測(cè)試用例

雇傭金問題的測(cè)試用例生成銷售商的雇傭金計(jì)算如下:銷售額不到(含)1000美元的部分為10%,1000(不含)~1800(含)美元的部分為15%,超過1800美元的部分為20%。三、傭金問題的測(cè)試用例123456789101112131415CaseLocksStocksBarrelsSalesCommComment11125101091010101114181811215109101010111014181712115910101011101014171810012513014550097597095510001025103010451400177517701012.51314.55097.59795.5100103.75104.5106.75160216.25215.5outputminimumoutputminimum+outputminimum+outputminimum+midpointborderpoint-borderpoint-borderpoint-borderpointborderpoint+borderpoint+borderpoint+midpointborderpoint-borderpoint-雇傭金問題輸出邊界值分析測(cè)試用例16171819202122232425CaseLocksStocksBarrelsSalesCommComment1718181819487070697018181819184880798080181819181848899090901755180018251830184548007775777077557800213.252202252262298201415141414111420borderpoint-borderpointborderpoint+borderpoint+borderpoint+midpointoutputmaximum-outputmaximum-outputmaximum-outputmaximum雇傭金問題輸出邊界值分析測(cè)試用例4.3.3邊界值分析的局限性

基于函數(shù)(程序)輸入定義域的測(cè)試方法,是所有測(cè)試方法中最基本的。

這類測(cè)試方法都有一種假設(shè),即輸入變量是真正獨(dú)立的。

如果不能保證這種假設(shè),則這類方法不能產(chǎn)生令人滿意的測(cè)試用例。

在所有的黑盒測(cè)試方法中,基于決策表的測(cè)試是最嚴(yán)格,最具有邏輯嚴(yán)格性的測(cè)試方法。

決策表最突出的優(yōu)點(diǎn)是,它能把復(fù)雜的問題按各種可能的情況一一列舉出來,簡(jiǎn)明而易于理解,也可避免遺漏。

因此利用決策表可以設(shè)計(jì)出完整的測(cè)試用例集合。

4.4決策表測(cè)試

在一些數(shù)據(jù)處理問題中,某些操作的實(shí)施依賴于多個(gè)邏輯條件的取值,也即針對(duì)不同邏輯條件組合值,分別執(zhí)行不同的操作。描述不同條件集合下采取行動(dòng)的若干組合情況。

4.4決策表測(cè)試4.4.1

決策表決策表通常由4個(gè)部分組成:條件樁部分列出了問題的所有條件

,動(dòng)作樁則給出了問題規(guī)定的可能采取的操作。

動(dòng)作項(xiàng)和條件項(xiàng)緊密相關(guān),指出了在條件項(xiàng)的各組取值情況下應(yīng)采取的動(dòng)作。

4.4決策表測(cè)試

在實(shí)際使用判定表時(shí),常常先將它簡(jiǎn)化。

簡(jiǎn)化是以合并相似規(guī)則為目標(biāo)的。

若表中有兩條或多條規(guī)則具有相同的動(dòng)作,并且在條件項(xiàng)之間存在著極為相似的關(guān)系,便可以設(shè)法將其合并。

4.4決策表測(cè)試合并規(guī)則的辦法:“不關(guān)心”條目(don’tcare)條件無關(guān)或條件不適用。4.4決策表測(cè)試

1)確定規(guī)則的個(gè)數(shù)。每個(gè)條件可取兩個(gè)取值,故應(yīng)有2n種規(guī)則。

2)列出所有的條件樁和動(dòng)作樁。

3)填入條件項(xiàng)。

4)填入動(dòng)作項(xiàng),這樣便可得到初始決策表。

5)化簡(jiǎn),合并相似規(guī)則后得到?jīng)Q策表。結(jié)合三角形問題給出構(gòu)造決策表的5個(gè)步驟:4.4決策表測(cè)試c3:a,b,c構(gòu)成一個(gè)三角形?c2:a=b?c3:a=c?c4:b=c?a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能N---YYYY表4-18三角問題的決策表YYYNYYNYYYNNYNYYYNYNYNNYYNNN4.4決策表測(cè)試合并相似規(guī)則后三角形問題的決策表如下:

如果條件引用了等價(jià)類,則決策表會(huì)有一種典型的外觀。條件c1:month在M1中?c2:month在M2中?c3:month在M3中?a1a2a3規(guī)則1T--規(guī)則2-T-規(guī)則3--T表4-19條件互斥的決策表M1={month:monthhas30days}M2={month:monthhas31days}M3={month:monthisFebruary}4.4決策表測(cè)試c1:a<b+c?c2:b<a+c?c3:c<a+b?c4:a=b?c5:a=c?c6:b=c?a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能F-----TF----表4-20擴(kuò)展的三角問題的決策表TTF---TTTTTTTTTTTFTTTTFTTTTTFFTTTFTTTTTFTFTTTFFTTTTFFF根據(jù)決策表,可開發(fā)出11個(gè)測(cè)試用例。4.4決策表測(cè)試4.4.2

決策表在黑盒測(cè)試中的應(yīng)用用例abc預(yù)期輸出test1412非三角形test2142非三角形test3124非三角形test4555等邊三角形test5???不可能test6???不可能test7223等腰三角形test8???不可能test9232等腰三角形test10322等腰三角形test11345一般三角形表4-21三角形問題的決策表測(cè)試用例

選擇NextDate函數(shù)是因?yàn)樗梢哉f明輸入域的相關(guān)性問題。決策表可以突出這種依賴關(guān)系。

等價(jià)類測(cè)試局限性之一是機(jī)械地選擇等價(jià)類中的輸入值,這可能會(huì)產(chǎn)生“奇怪的”測(cè)試用例。例如,找出2051年6月31日的下一天。問題由變量相互獨(dú)立這個(gè)假設(shè)引起。4.4.2

決策表在黑盒測(cè)試中的應(yīng)用

如果變量確實(shí)是相互獨(dú)立的,那么使用等價(jià)類的笛卡兒積有意義。如果變量間存在邏輯依賴關(guān)系,那么這些依賴關(guān)系在機(jī)械地選取輸入值時(shí)可能丟失。決策表方法通過使用“不可能動(dòng)作”概念表示條件的不可能組合,來強(qiáng)調(diào)這種依賴關(guān)系。

4.4.2

決策表在黑盒測(cè)試中的應(yīng)用NextDate函數(shù)能夠使用的操作只有5種:

Day變量+1Month變量+1Day變量復(fù)位

Mongth變量復(fù)位

Year變量+14.4.2

決策表在黑盒測(cè)試中的應(yīng)用M1:{month:month有30天}M2:{month:month有31天,12月除外}M3:{month:month是12月)M4:{month:month是2月)D1:{day:1≤day≤27)D2:{day:day:28)D3:{day:day:29)D4:{day:day:30}D5:{day:day:31)Y1:{year:year是閏年}Y2:{year:year不是閏年}4.4.2

決策表在黑盒測(cè)試中的應(yīng)用建立決策表

將注意力集中到NextDate函數(shù)的日、月問題上,并仔細(xì)研究動(dòng)作樁,可以在以下等價(jià)類集合上建立決策表。NextDate函數(shù)的測(cè)試用例

有30天的月份有31天的月份(非12月)12月份不可能規(guī)則可以簡(jiǎn)化關(guān)注2月和閏年使用決策表代數(shù)進(jìn)一步簡(jiǎn)化這22個(gè)測(cè)試用例。

4.4.2

決策表在黑盒測(cè)試中的應(yīng)用進(jìn)一步簡(jiǎn)化后的決策表

1-3

4

5

6-9

10

11-14

15

16

17

18

19

20

21,22

條件:

c1:month在

c2:day在

c3:year在

M1

D1,D2,D3

M1

D4

M1

D5

M2

D1,D2,D3,D4

M2

D5

M3

D1,D2,D3,D4

M3

D5

M4

D1

M4

D2

Y1

M4

D2

Y2

M4

D3

Y1

M4

D3

Y2

M4

D4,D5

行為:

a1:不可能

a2:day加1

a3:day復(fù)位

a4:month加1

a5:month復(fù)位

a6:year加1

進(jìn)一步簡(jiǎn)化后的決策表

1-3

4

5

6-9

10

11-14

15

16

17

18

19

20

21,22

條件:

c1:month在

c2:day在

c3:year在

M1

D1,D2,D3

M1

D4

M1

D5

M2

D1,D2,D3,D4

M2

D5

M3

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論