第05章 黑盒測(cè)試_第1頁(yè)
第05章 黑盒測(cè)試_第2頁(yè)
第05章 黑盒測(cè)試_第3頁(yè)
第05章 黑盒測(cè)試_第4頁(yè)
第05章 黑盒測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩211頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章黑盒測(cè)試教學(xué)目標(biāo):了解黑盒測(cè)試的基本概念掌握等價(jià)類劃分法掌握邊界值法掌握因果圖法掌握決策表法掌握?qǐng)鼍胺ê诤袦y(cè)試能發(fā)現(xiàn)以下幾類錯(cuò)誤●功能不對(duì)或遺漏?!窠缑驽e(cuò)誤?!駭?shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤?!裥阅苠e(cuò)誤?!癯跏蓟徒K止錯(cuò)誤。

4.1黑盒測(cè)試的基本概念黑盒測(cè)試對(duì)程序的功能性測(cè)試要求●每個(gè)軟件特性必須被一個(gè)測(cè)試用例或一個(gè)被認(rèn)可的異常所覆蓋。●利用數(shù)據(jù)類型和數(shù)據(jù)值的最小集測(cè)試?!窭靡幌盗姓鎸?shí)的數(shù)據(jù)類型和數(shù)據(jù)值運(yùn)行,測(cè)試超負(fù)荷及其他“最壞情況”的結(jié)果?!窭眉傧氲臄?shù)據(jù)類型和數(shù)據(jù)值運(yùn)行,測(cè)試排斥不規(guī)則輸入的能力?!駵y(cè)試影響性能的關(guān)鍵模塊,如基本算法、精度、時(shí)間、容量等是否正常。4.1.1黑盒測(cè)試的優(yōu)缺點(diǎn)優(yōu)點(diǎn)缺點(diǎn)(1)有針對(duì)性地尋找問(wèn)題,并且定位問(wèn)題更準(zhǔn)確。(2)黑盒測(cè)試可以證明產(chǎn)品是否達(dá)到用戶要求的功能,符合用戶的工作要求。(3)能重復(fù)執(zhí)行相同的動(dòng)作,測(cè)試工作中最枯燥的部分可交由機(jī)器完成。(1)需要充分了解產(chǎn)品用到的技術(shù),測(cè)試人員需要具有較多經(jīng)驗(yàn)。(2)在測(cè)試過(guò)程中很多是手工測(cè)試操作。(3)測(cè)試人員要負(fù)責(zé)大量文檔、報(bào)表的編制和整理工作。4.1.2黑盒測(cè)試與白盒測(cè)試的比較2檢查測(cè)試的主要內(nèi)容3靜態(tài)測(cè)試方法4動(dòng)態(tài)測(cè)試方法1已知產(chǎn)品的因素● 黑盒測(cè)試:已知產(chǎn)品的功能設(shè)計(jì)規(guī)格,可以通過(guò)測(cè)試證明每種實(shí)現(xiàn)的功能是否符合要求?!?白盒測(cè)試:已知產(chǎn)品的內(nèi)部工作結(jié)構(gòu),可以通過(guò)測(cè)試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,以及所有內(nèi)部成分是否經(jīng)過(guò)檢查。1已知產(chǎn)品的因素黑盒測(cè)試檢查的內(nèi)容如下:● 是否有不正確或遺漏的功能?● 在接口上,輸入是否能正確地接受?能否輸出正確的結(jié)果?● 是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息訪問(wèn)錯(cuò)誤?● 是否有初始化或終止性錯(cuò)誤?白盒測(cè)試檢查的內(nèi)容如下:● 對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一遍?!?對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測(cè)試一遍。● 在循環(huán)的邊界和運(yùn)行的界限內(nèi)執(zhí)行循環(huán)體。2檢查測(cè)試的主要內(nèi)容● 靜態(tài)黑盒測(cè)試方法:文檔測(cè)試,特別是產(chǎn)品需求文檔、用戶手冊(cè)、幫助文件等的審查?!?靜態(tài)白盒測(cè)試方法:走查、復(fù)審、評(píng)審程序源代碼、數(shù)據(jù)字典、系統(tǒng)設(shè)計(jì)文檔、環(huán)境設(shè)置、軟件配置項(xiàng)等。3靜態(tài)測(cè)試方法● 動(dòng)態(tài)黑盒測(cè)試方法:通過(guò)數(shù)據(jù)輸入并運(yùn)行程序來(lái)檢驗(yàn)輸出結(jié)果,如功能測(cè)試、驗(yàn)收測(cè)試和一些性能測(cè)試等。● 動(dòng)態(tài)白盒測(cè)試方法:通過(guò)驅(qū)動(dòng)程序來(lái)調(diào)用,如進(jìn)行單元測(cè)試、集成測(cè)試和部分性能測(cè)試等。4動(dòng)態(tài)測(cè)試方法采用黑盒技術(shù)設(shè)計(jì)測(cè)試用例的方法等價(jià)類劃分法邊界值分析法因果圖法決策表場(chǎng)景設(shè)計(jì)法正交實(shí)驗(yàn)法錯(cuò)誤推斷法4.2黑盒測(cè)試的方法軟件測(cè)試員常遇到的問(wèn)題

由于窮舉測(cè)試的數(shù)量太大,以致于無(wú)法實(shí)際完成,促使我們?cè)诖罅康目赡軘?shù)據(jù)中選取其中的一部分作為測(cè)試用例。在不了解等價(jià)分配技術(shù)的前提下,測(cè)試了1+1、1+2、1+3和1+4之后,還有必要測(cè)試1+5和1+6嗎?能否放心地認(rèn)為它們正確嗎?那么1+999…(可以輸入的最大數(shù)值)呢?這個(gè)測(cè)試用例是否與其他用例不同?是否屬于另外一種類別?另外一個(gè)等價(jià)區(qū)間?等價(jià)類劃分法

等價(jià)類劃分是一種典型的黑盒測(cè)試方法,用這一方法設(shè)計(jì)測(cè)試用例可以不用考慮程序的內(nèi)部結(jié)構(gòu),只以對(duì)程序的要求和說(shuō)明,即需求規(guī)格說(shuō)明書(shū)為依據(jù),仔細(xì)分析和推敲說(shuō)明書(shū)的各項(xiàng)需求,特別是功能需求,把說(shuō)明中對(duì)輸入的要求和輸出的要求區(qū)別開(kāi)來(lái)并加以分解。等價(jià)類是指某個(gè)輸入域的子集合。

等價(jià)類劃分法是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個(gè)子集中選取少量具有代表性的數(shù)據(jù)作為測(cè)試用例。每一類的代表性數(shù)據(jù)在測(cè)試中的作用等價(jià)于這一類中的其他值,也就是說(shuō),如果某一類中的一個(gè)例子發(fā)現(xiàn)了錯(cuò)誤,這一等價(jià)類中的其他例子也能出現(xiàn)同樣的錯(cuò)誤。測(cè)試某等價(jià)類的代表值就等于對(duì)這一類其他值的測(cè)試

有效等價(jià)類和無(wú)效等價(jià)類

在考慮等價(jià)類劃分時(shí),先從程序的功能說(shuō)明中找出每個(gè)輸入條件,然后為每個(gè)輸入條件劃分兩個(gè)或更多個(gè)等價(jià)類。等價(jià)類可分兩種情況:有效等價(jià)類和無(wú)效等價(jià)類。有效等價(jià)類是指對(duì)程序的規(guī)格說(shuō)明是有意義的、合理的輸入數(shù)據(jù)所構(gòu)成的集合;無(wú)效等價(jià)類是指對(duì)程序的規(guī)格說(shuō)明是不合理的或無(wú)意義的輸入數(shù)據(jù)所構(gòu)成的集合。劃分等價(jià)類

設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮這兩種等價(jià)類。因?yàn)檐浖粌H要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn)。這樣的測(cè)試才能確保軟件具有更高的可靠性。確定等價(jià)類的原則

1.

如果輸入條件規(guī)定了一個(gè)取值范圍(例如,“數(shù)值可以是從

1

到999”),那么就應(yīng)確定出一個(gè)有效等價(jià)類(1<=數(shù)值<=999

)

,以及兩個(gè)無(wú)效等價(jià)類(數(shù)值<1,數(shù)值>999)。

2.

如果輸入條件規(guī)定了取值的個(gè)數(shù)(例如,“汽車可登記一至六名車主”),那么就應(yīng)確定出一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類(沒(méi)有車主,或車主多于六個(gè))。

3.

如果輸入條件規(guī)定了一個(gè)輸入值的集合,而且有理由認(rèn)為程序會(huì)對(duì)每個(gè)值進(jìn)行不同處理(例如,“交通工具的類型必須是公共汽車、卡車、出租車、火車或摩托車”),那么就應(yīng)為每個(gè)輸入值確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類(例如,“拖車”)。

4.

如果存在輸入條件規(guī)定了“必須是”的情況,例如“標(biāo)識(shí)符的第一個(gè)字符必須是字母”,那么就應(yīng)確定一個(gè)有效等價(jià)類(首字符是字母)和一個(gè)無(wú)效等價(jià)類(首字符不是字母)。

如果有任何理由可以認(rèn)為程序并未等同地處理等價(jià)類中的元素,那么應(yīng)該將這個(gè)等價(jià)類再劃分為小一些的等價(jià)類。確定測(cè)試用例的步驟根據(jù)已列出的等價(jià)類表,按以下步驟確定測(cè)試用例:1.

為每個(gè)等價(jià)類設(shè)置一個(gè)不同的編號(hào)。2.

編寫(xiě)新的測(cè)試用例,盡可能多地覆蓋那些尚未被涵蓋的有效等價(jià)類,直到所有的有效等價(jià)類都被測(cè)試用例所覆蓋(包含進(jìn)去)。3.

編寫(xiě)新的用例,覆蓋一個(gè)且僅一個(gè)尚未被覆蓋的無(wú)效等價(jià)類,直到所有的無(wú)效等價(jià)類都被測(cè)試用例所覆蓋。用單個(gè)測(cè)試用例覆蓋無(wú)效等價(jià)類,是因?yàn)槟承┨囟ǖ妮斎脲e(cuò)誤檢查可能會(huì)屏蔽或取代其他輸入錯(cuò)誤檢查。舉例來(lái)說(shuō),如果規(guī)格說(shuō)明規(guī)定了“請(qǐng)輸入書(shū)籍類型(硬皮、軟皮或活頁(yè))及數(shù)量(l~999

)”,代表兩個(gè)錯(cuò)誤輸入(書(shū)籍類型錯(cuò)誤,數(shù)量錯(cuò)誤)的測(cè)試用例“XYZ

0”,很可能不會(huì)執(zhí)行對(duì)數(shù)量的檢查,因?yàn)槌绦蛞苍S會(huì)提示“XYZ

是未知的書(shū)籍類型”,就不檢查輸入的其余部分了。例1:保險(xiǎn)公司人壽保險(xiǎn)保費(fèi)計(jì)算程序的等價(jià)類測(cè)試。 某保險(xiǎn)公司人壽保險(xiǎn)的保費(fèi)計(jì)算方法為:保費(fèi)

=

投保額

×

保險(xiǎn)費(fèi)率其中,保險(xiǎn)費(fèi)率根據(jù)年齡、性別、婚姻狀況和撫養(yǎng)人數(shù)的不同而有所不同,體現(xiàn)在不同年齡、性別、婚姻狀況和撫養(yǎng)人數(shù),點(diǎn)數(shù)設(shè)定不同。10點(diǎn)以上保險(xiǎn)費(fèi)率為0.6%,10點(diǎn)及以下保險(xiǎn)費(fèi)率為0.1%;而點(diǎn)數(shù)又是由投保人的年齡、性別、婚姻狀況和撫養(yǎng)人數(shù)來(lái)決定,具體規(guī)則如表4-5所示。分析程序規(guī)格說(shuō)明中給出的和隱含的對(duì)輸入數(shù)據(jù)的要求,可以得出下述規(guī)律。①年齡:一位或兩位非零整數(shù),取值的有效范圍為1~99。②性別:一位英文字符,只能取“M”或“F”值。③婚姻:字符、只能取“已婚”或“未婚”。④撫養(yǎng)人數(shù):空白或字符“無(wú)”或1~99之間的一位非零整數(shù)。⑤點(diǎn)數(shù):一位或兩位非零整數(shù),取值范圍為8~19。

通過(guò)對(duì)規(guī)格說(shuō)明輸入數(shù)據(jù)的取值分析,可以得出保險(xiǎn)公司人壽保險(xiǎn)計(jì)算程序的等價(jià)類如表4-6。

根據(jù)表中的等價(jià)類,假設(shè)保險(xiǎn)額為1萬(wàn)元,保險(xiǎn)公司人壽保險(xiǎn)保費(fèi)計(jì)算程序的等價(jià)類測(cè)試用例如表4-7所示。例2:學(xué)籍管理系統(tǒng)中有增加學(xué)生信息的功能,該功能的說(shuō)明如下

一條完整的學(xué)生信息包括學(xué)生的學(xué)號(hào)、姓名、語(yǔ)文成績(jī)、數(shù)學(xué)成績(jī)、英語(yǔ)成績(jī)、物理成績(jī)和化學(xué)成績(jī)。 學(xué)號(hào)是學(xué)生信息的關(guān)鍵字,不能重復(fù)。每個(gè)班級(jí)的學(xué)號(hào)范圍和學(xué)號(hào)的數(shù)據(jù)要求見(jiàn)數(shù)據(jù)字典。增加重復(fù)學(xué)號(hào)和非數(shù)據(jù)字典要求的學(xué)號(hào)時(shí),系統(tǒng)應(yīng)給出提示。增加信息時(shí),學(xué)號(hào)是必須輸入的,否則,系統(tǒng)應(yīng)給出提示。表4-8是數(shù)據(jù)字典中關(guān)于學(xué)號(hào)的要求。首先,列出所有等價(jià)類,如表4-9所示。選擇測(cè)試用例,覆蓋所有的有效等價(jià)類,如表4-10所示。選擇測(cè)試用例,覆蓋所有的無(wú)效等價(jià)類,如表4-11所示。例3:三角形問(wèn)題

根據(jù)下面給出的規(guī)格說(shuō)明,利用等價(jià)類劃分的方法,給出足夠的測(cè)試用例:輸入三個(gè)整數(shù)作為三邊的邊長(zhǎng)構(gòu)成三角形。當(dāng)此三角形為一般三角形、等腰三角形、等邊三角形時(shí),分別作計(jì)算。(設(shè)a、b、c代表三角形的三條邊)分析題目中給出的和隱含的對(duì)輸入條件的要求。案例研究:輸入

輸入三個(gè)整數(shù)作為三邊的邊長(zhǎng)構(gòu)成三角形。當(dāng)此三角形為一般三角形、等腰三角形、等邊三角形時(shí),分別作計(jì)算。輸入條件的要求:

整數(shù)3個(gè)數(shù)非零數(shù)正數(shù)兩邊之和大于第三邊等腰等邊等價(jià)類劃分法設(shè)計(jì)用例的步驟

分析給出的和隱含的對(duì)輸入條件的要求;列出等價(jià)類表并編號(hào);列出覆蓋上述等價(jià)類的測(cè)試用例。分析題目中給出和隱含的對(duì)輸入條件的要求:(1)整數(shù)(2)三個(gè)數(shù)(3)非零數(shù)(4)正數(shù)(5)兩邊之和大于第三邊(6)等腰(7)等邊如果a、b、c滿足條件(1)~(4),則輸出下列四種情況之一:1)如果不滿足條件(5),則程序輸出為"非三角形"。2)如果三條邊相等即滿足條件(7),則程序輸出為"等邊三角形"。3)如果只有兩條邊相等、即滿足條件(6),則程序輸出為"等腰三角形"。4)如果三條邊都不相等,則程序輸出為"一般三角形"。Ps:11用例是等邊三角形列出等價(jià)類表并編號(hào)覆蓋有效等價(jià)類的測(cè)試用例:abc覆蓋等價(jià)類編號(hào)345(1)--(7)445(1)--(7),(8)455(1)--(7),(9)545(1)--(7),(10)444(1)--(7),(11)覆蓋無(wú)效等價(jià)類的測(cè)試用例:

0501

用等價(jià)類劃分法設(shè)計(jì)8位長(zhǎng)數(shù)字類型用戶名登錄操作的測(cè)試用例,應(yīng)該分成()個(gè)等價(jià)區(qū)間。A.2B.3C.4D.6習(xí)題05答案C分別是:過(guò)長(zhǎng)名稱、過(guò)短名稱、合法長(zhǎng)度合法字符、合法長(zhǎng)度非法字符答案為C,位數(shù)>8,不是數(shù)字類型,沒(méi)有輸入,合法的用戶名等價(jià)類劃分的辦法是把程序的輸入域分成若干部分,然后從每個(gè)部分中選取少數(shù)代表性數(shù)據(jù)作為測(cè)試用例。每一類的代表數(shù)據(jù)在測(cè)試的作用等價(jià)于這一類中的其它值,也就是說(shuō),如果某一類中的一個(gè)例子發(fā)現(xiàn)了錯(cuò)誤,這一等價(jià)類中的其它例子也能發(fā)現(xiàn)同樣才錯(cuò)誤;反之,如果某一類中的一個(gè)例子沒(méi)有發(fā)現(xiàn)錯(cuò)誤,則這一類中的其它例子也不會(huì)查出錯(cuò)誤(除非等價(jià)類中的某些例子屬于另一等價(jià)類,因?yàn)閹讉€(gè)等價(jià)類可能是相交的)答案B1個(gè)有效等價(jià)類16-402個(gè)無(wú)效類小于16大于400504

某工廠招工,規(guī)定報(bào)名者年齡應(yīng)在20周歲——39周歲之間,即出生年月不得早于1960年7月,不晚于1979年6月。報(bào)名程序具有自動(dòng)檢驗(yàn)輸入數(shù)據(jù)的功能,如果出生年月不屬于上訴范圍將拒絕接受,并顯示“年齡不合格”等出錯(cuò)信息。0505

新浪郵箱名,其輸入要求如下:1.

4~16個(gè)字符2.

支持英文小寫(xiě)、數(shù)字、下劃線3.

不支持全部為數(shù)字或下劃線

輸入條件有效等價(jià)類無(wú)效等價(jià)類用戶名字符數(shù)4~16(1)0(2)、0<個(gè)數(shù)<4(3)、>16(4)用戶名組成英文小寫(xiě)(5)、數(shù)字(6)、下劃線(7)非英文小寫(xiě)、數(shù)字、下劃線(8)用戶名支持格式不全為數(shù)字(9)、不全為下劃線(10)全為數(shù)字(11)、全為下劃線(12)郵箱名有效輸入集合:(1)(5)(6)(7)(9)(10)

32jing_qfda無(wú)效集合:(2)

郵箱名為空(3)

jby(4)

jiangboyang_1987_12_22(8)

江渤洋(11)

1234567890(12)

__________

最終測(cè)試用例:序號(hào)輸入及操作說(shuō)明期望的測(cè)試結(jié)果132jing_qfda符合要求2郵件名為空用戶名字符數(shù)不符合要求3jby4jiangboyang_1987_12_225江渤洋用戶名組成不符合要求6@#%……7FDAY81234567890用戶名支持格式不符合要求9__________

0506

用等價(jià)類劃分法設(shè)計(jì)下面的測(cè)試用例:有一個(gè)報(bào)表系統(tǒng),要求用戶輸入要處理的報(bào)表的日期,假設(shè)日期的范圍為2003年1月到2008年12月。如果用戶輸入的日期不在這個(gè)范圍內(nèi),則顯示錯(cuò)誤碼信息,并且此系統(tǒng)規(guī)定日期由年月六位數(shù)字組成,前4為代表年,后兩位代表月。

1)請(qǐng)列出等價(jià)類表(包括有效和無(wú)效的等價(jià)類)

2)根據(jù)1)中的等價(jià)類表,設(shè)計(jì)能覆蓋所有等價(jià)類的測(cè)試用例。要求包括輸入數(shù)據(jù)和預(yù)期輸出,并指出各個(gè)測(cè)試用例所能付給的等價(jià)類編號(hào)(2)年在2000-2020之間0507

NextDate函數(shù)包含三個(gè)變量:month、day和year,函數(shù)的輸出為輸入日期后一天的日期。例如,輸入為2006年3月7日,則函數(shù)的輸出為2006年3月8日。要求輸入變量month、day和year均為整數(shù)值,并且滿足下列條件:

①1≤month≤12

②1≤day≤31

③1920≤year≤2050

1)有效等價(jià)類為:

M1={月份:1≤月份≤12}

D1={日期:1≤日期≤31}

Y1={年:1920≤年≤2050}

2)若條件①~③中任何一個(gè)條件失效,則NextDate函數(shù)都會(huì)產(chǎn)生一個(gè)輸出,指明相應(yīng)的變量超出取值范圍,比如"month的值不在1-12范圍當(dāng)中"。顯然還存在著大量的year、month、day的無(wú)效組合,NextDate函數(shù)將這些組合作統(tǒng)一的輸出:"無(wú)效輸入日期"。其無(wú)效等價(jià)類為:

M2={月份:月份<1}

M3={月份:月份>12}

D2={日期:日期<1}

D3={日期:日期>31}

Y2={年:年<1920}

Y3={年:年>2050}

弱一般等價(jià)類測(cè)試用例

月份

日期

預(yù)期輸出

9

22

2013

2013年9月22日

強(qiáng)一般等價(jià)類測(cè)試用例同弱一般等價(jià)類測(cè)試用例

注:弱--有單缺陷假設(shè);健壯--考慮了無(wú)效值

(一)弱健壯等價(jià)類測(cè)試

用例ID

月份

日期

預(yù)期輸出

WR1

9

22

2013

2013年9月22日

WR2

-1

15

2013

月份不在1~12中

WR3

13

15

2013

月份不在1~12中

WR4

6

-1

2013

日期不在1~31中

WR5

6

32

2013

日期不在1~31中

WR6

6

15

1919

年份不在1920~2050中

WR7

6

15

2051

年份不在1920~2050中

(二)強(qiáng)健壯等價(jià)類測(cè)試

用例ID

月份

日期

預(yù)期輸出

SR1

0

15

2013

月份不在1~12中

SR2

6

0

2013

日期不在1~31中

SR3

6

15

2013

年份不在1812~2012中

SR4

-1

-1

2013

兩個(gè)無(wú)效一個(gè)有效

SR5

6

-1

2013

兩個(gè)無(wú)效一個(gè)有效

SR6

-1

15

2013

兩個(gè)無(wú)效一個(gè)有效

SR7

-1

-1

1911

三個(gè)無(wú)效

0508找零錢(qián)問(wèn)題如下:假設(shè)商店貨品價(jià)格(R)皆不大於100元(且為整數(shù)),若顧客付款在100元內(nèi)(P),求找給顧客之最少貨幣個(gè)(張)數(shù)?(貨幣面值50元(N50),10元(N10),5元(N5),1元(N1)四種)采用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例,找出找零錢(qián)問(wèn)題的最佳組合。等于100,輸入條件有效等價(jià)類無(wú)效等價(jià)類R價(jià)格0~5;6~10;3.11~50;4.51~100;小于0;大于100;P付款1.0~5;2.6~10;11~50;51~100小于0;大于100;選擇強(qiáng)一般等價(jià)類設(shè)計(jì)有例個(gè)數(shù)m1*m2*…*mn

個(gè)=3*3=9個(gè)。方案內(nèi)容用例輸入預(yù)期輸出價(jià)格R付款PRP找零錢(qián)張數(shù)10~10

0~10;78、91、2張一元211~50;812不可能351~100960不可能411~50

0~10;325不夠511~50;35462張五元1張一元651~100751~100

0~10;811~50;9

51~1000509某程序規(guī)格說(shuō)明有如下描述:某城市電話號(hào)碼由三部分組成。它們的名稱和內(nèi)容分別是:地區(qū)碼:空白或3位數(shù)字;前綴:非‘0’、‘1’開(kāi)頭的3位數(shù)字;后綴:4位數(shù)字。假定被測(cè)程序能接受一切符合上述規(guī)定的電話號(hào)碼,拒絕所有不符合規(guī)定的電話號(hào)碼。根據(jù)該程序的規(guī)格說(shuō)明,作等價(jià)類的劃分,并設(shè)計(jì)測(cè)試方案。輸入條件有效等價(jià)類無(wú)效等價(jià)類地區(qū)碼1.空白;2.三位數(shù);

有非數(shù)字字符;少于三位數(shù)字;3.多于三位數(shù)字。前綴3.從200到999之間的三位4.有非數(shù)字字符;5.起始位為‘0’;6.起始位為‘1’;

7.少于三位數(shù)字;8.多于三位數(shù)字。后綴4.四位數(shù)字。9.有非數(shù)字字符;10.少于四位數(shù)字;11.多于四位數(shù)字。選擇弱健壯等價(jià)類設(shè)計(jì)有例個(gè)數(shù)max(mi)+(l1+

l2+…+ln)個(gè)=2+11個(gè)。方案內(nèi)容輸入預(yù)期輸出地區(qū)碼前綴后綴1空白200~999之間的三位數(shù)字四位數(shù)字()276-2345有效2三位數(shù)字四位數(shù)字(635)805-9321有效3有非數(shù)字字符

(20A)723-4567無(wú)效4少于三位數(shù)字

(33)234-5678無(wú)效5多于三位數(shù)字

(5555)345-6789無(wú)效6

有非數(shù)字字符

(345)5A2-3456無(wú)效7

起始位為‘0’

(345)012-3456無(wú)效8

起始位為‘1’

(345)132-3456無(wú)效9

少于三位數(shù)字

(345)92-3456無(wú)效10

多于三位數(shù)字

(345)4562-3456無(wú)效11

有非數(shù)字字符(345)342-3A56無(wú)效12

少于四位數(shù)字(345)342-356無(wú)效13

多于四位數(shù)字(345)562-34567無(wú)效

在軟件設(shè)計(jì)和程序編寫(xiě)中,常常對(duì)于規(guī)格說(shuō)明中的輸入域邊界或輸出域邊界不夠注意,以致大量的錯(cuò)誤發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。邊界值分析是一種補(bǔ)充等價(jià)劃分的測(cè)試用例設(shè)計(jì)技術(shù),它不是選擇等價(jià)類的任意元素,而是選擇等價(jià)類邊界的測(cè)試用例。實(shí)踐證明為檢驗(yàn)邊界附近的處理專門(mén)設(shè)計(jì)測(cè)試用例,常常取得良好的測(cè)試效果。邊界值分析法

使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先:應(yīng)確定邊界情況。通常輸入和輸出等價(jià)類的邊界,就是應(yīng)著重測(cè)試的邊界情況。其次,應(yīng)當(dāng)選取正好等于、剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測(cè)試數(shù)據(jù)。單缺陷假設(shè)和多缺陷假設(shè):?jiǎn)稳毕菁僭O(shè):是指“失效極少是由兩個(gè)或兩個(gè)以上的缺陷同時(shí)發(fā)生引起的”。要求測(cè)試用例只使一個(gè)變量取極值,其他變量均取正常值;多缺陷假設(shè):是指“失效是由兩個(gè)或兩個(gè)以上缺陷同時(shí)作用引起的”,要求測(cè)試用例時(shí)同時(shí)讓多個(gè)變量取極值。邊界值測(cè)試分類

單缺陷假設(shè)多缺陷假設(shè)有效值一般邊界值一般最壞情況邊界值無(wú)效值健壯性邊界值健壯最壞情況邊界值

一般邊界值僅考慮有效區(qū)間單個(gè)變量邊界值(一般邊界值):用最小值、略高于最小值、正常值、略低于最大值和最大值。如果被測(cè)變量個(gè)數(shù)為n,則測(cè)試用例個(gè)數(shù)為4n+1例如:函數(shù)y=f(x1,x2)輸入變量的取值范圍分別為:

x1∈[a,b],x2∈[c,d]例1:有函數(shù)f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。請(qǐng)寫(xiě)出該函數(shù)采用基本邊界值分析法設(shè)計(jì)的測(cè)試用例?解:對(duì)于包含3個(gè)變量的程序,采用一般邊界值分析法,至少要產(chǎn)生4*3+1=13個(gè)用例。<2000,6,1>,<2000,6,2>,<2000,6,30>,<2000,6,31>,<2000,1,15>,<2000,2,15>,<2000,11,15>,<2000,12,15>,<1900,6,15>,<1901,6,15>,<2099,6,15>,<2100,6,15>,<2000,6,15>一般最壞情況邊界值僅考慮有效區(qū)間多個(gè)變量邊界值同時(shí)作用(一般最壞情況邊界值):用各個(gè)變量最小值、略高于最小值、正常值、略低于最大值和最大值的笛卡爾積。如果被測(cè)變量個(gè)數(shù)為n,則測(cè)試用例個(gè)數(shù)為5n。笛卡爾(Descartes)乘積又叫直積。假設(shè)集合A={a,b},集合B={0,1,2},則兩個(gè)集合的笛卡爾積為{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}??梢詳U(kuò)展到多個(gè)集合的情況。案例給出三個(gè)域:D1=SUPERVISOR={張清玫,劉逸}D2=SPECIALITY={計(jì)算機(jī)專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}則D1,D2,D3的笛卡爾積為D:D=D1×D2×D3={(張清玫,計(jì)算機(jī)專業(yè),李勇),(張清玫,計(jì)算機(jī)專業(yè),劉晨),(張清玫,計(jì)算機(jī)專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計(jì)算機(jī)專業(yè),李勇),(劉逸,計(jì)算機(jī)專業(yè),劉晨),(劉逸,計(jì)算機(jī)專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)

}函數(shù)y=f(x1,x2)輸入變量的取值范圍分別為:

x1∈[a,b],x2∈[c,d]。

健壯邊界值同時(shí)考慮有效區(qū)間和無(wú)效區(qū)間單個(gè)變量邊界值(健壯邊界值):除了最小值、略高于最小值、正常值、略低于最大值、最大值,還要有略超過(guò)最大值和略小于最小值的值。如果被測(cè)變量個(gè)數(shù)為n,則測(cè)試用例個(gè)數(shù)為6n+1函數(shù)y=f(x1,x2)輸入變量的取值范圍分別為:

x1∈[a,b],x2∈[c,d]健壯最壞情況邊界值同時(shí)考慮有效區(qū)間和無(wú)效區(qū)間多個(gè)變量邊界值同時(shí)作用(健壯最壞情況邊界值):用各個(gè)變量最小值、略高于最小值、正常值、略低于最大值、最大值、略超過(guò)最大值和略小于最小值的笛卡爾積。如果被測(cè)變量個(gè)數(shù)為n,則測(cè)試用例個(gè)數(shù)為7n

。函數(shù)y=f(x1,x2)輸入變量的取值范圍分別為:

x1∈[a,b],x2∈[c,d]例2:新浪博客圖片上傳,要求如下:上傳文件大小不超過(guò)5M序號(hào)輸入及操作說(shuō)明期望的測(cè)試結(jié)果15M符合要求25.1M不符合要求33M符合要求40.1M54.9M以健壯邊界值的標(biāo)準(zhǔn)可選取5M(正好等于)、5.1M(剛剛大于)、3M(正常值)0.1M(略高于最小值)4.9M(略小于最大值)最為邊界值來(lái)測(cè)試。

邊界值法設(shè)計(jì)測(cè)試用例的原則(1)如果輸入條件對(duì)取值范圍進(jìn)行了限定,則應(yīng)以邊界內(nèi)部以及剛超出范圍邊界外的值作為測(cè)試用例。(2)如果對(duì)取值的個(gè)數(shù)進(jìn)行了界定,則應(yīng)分別以最大、稍小于最大、稍大于最大、最小、稍小于最小、稍大于最小個(gè)數(shù)作為測(cè)試用例。(3)對(duì)于輸出條件,同樣可以應(yīng)用上面提到的兩條原則來(lái)進(jìn)行測(cè)試用例設(shè)計(jì)。(4)如果程序規(guī)格說(shuō)明書(shū)中指明輸入或者輸出域是一個(gè)有序的集合,如順序文件、表格等,則應(yīng)注意選取有序集合中的第一個(gè)和最后一個(gè)元素作為測(cè)試用例。其他一些邊界條件

另一種看起來(lái)很明顯的軟件缺陷來(lái)源是當(dāng)軟件要求輸入時(shí)(比如在文本框中),不是沒(méi)有輸入正確的信息,而是根本沒(méi)有輸入任何內(nèi)容,單單按了Enter鍵。這種情況在產(chǎn)品說(shuō)明書(shū)中常常忽視,程序員也可能經(jīng)常遺忘,但是在實(shí)際使用中卻時(shí)有發(fā)生。程序員總會(huì)習(xí)慣性的認(rèn)為用戶要么輸入信息,不管是看起來(lái)合法的或非法的信息,要不就會(huì)選擇Cancel鍵放棄輸入,如果沒(méi)有對(duì)空值進(jìn)行好的處理的話,恐怕程序員自己都不知道程序會(huì)引向何方。

正確的軟件通常應(yīng)該將輸入內(nèi)容默認(rèn)為合法邊界內(nèi)的最小值或者合法區(qū)間內(nèi)某個(gè)合理值,否則返回錯(cuò)誤提示信息。因?yàn)檫@些值通常在軟件中進(jìn)行特殊處理,所以不要把它們與合法情況和非法情況混在一起,而要建立單獨(dú)的等價(jià)區(qū)間。邊界值附近的數(shù)據(jù)確定的幾種方法:項(xiàng)邊界值測(cè)試用例的設(shè)計(jì)思路字符起始-1個(gè)字符/結(jié)束+1個(gè)字符假設(shè)一個(gè)文本輸入?yún)^(qū)域允許輸入1~255個(gè)字符,輸入1個(gè)和255個(gè)字符作為有效等價(jià)類;輸入0個(gè)和256個(gè)字符為無(wú)效等價(jià)類,這幾個(gè)數(shù)值都屬于邊界條件值數(shù)值開(kāi)始位-1/結(jié)束位+1數(shù)據(jù)的輸入域?yàn)?~999,其最小值為1,最大值為999,則0、1000為邊界值空間小于空余空間一點(diǎn)/大于滿空間一點(diǎn)測(cè)試數(shù)據(jù)存儲(chǔ)時(shí),使用比最小剩余空間大一點(diǎn)(幾千字節(jié))的文件作為最大值檢驗(yàn)的邊界條件方向剛剛超過(guò)/剛剛低于

報(bào)表第一行和最后一行

數(shù)組第一個(gè)和最后一個(gè)下標(biāo)元素

數(shù)據(jù)類型16位整型數(shù)據(jù),32767和-32768

循環(huán)結(jié)構(gòu)第2次和倒數(shù)第2次循環(huán)

數(shù)值的邊界值檢驗(yàn):項(xiàng)范圍或值位(b)0

或1字節(jié)(B)0~255字(Word)0~65535(單字)或0~4294967295(雙字)千(KB)1024兆(MB)1048576吉(GB)1073741824萬(wàn)億(TB)1099511627776字符的邊界值檢驗(yàn):字符ASCII碼值字符ASCII碼值空(NULL)0A65空格(SPACE)32B66斜杠(/)47Y89冒號(hào)(:)58Z90分號(hào)(;)59左中括號(hào)[91<

60反斜杠(\)92=61右中括號(hào)]93>

62單引號(hào)(‘)96?63a97@64b98048y121957z122

測(cè)試用例abc預(yù)期輸出Test1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等邊三角形等腰三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形在等價(jià)類劃分基礎(chǔ)上進(jìn)行邊界值分析測(cè)試,著重測(cè)試的是等價(jià)類的邊界,在表加法器等價(jià)類基礎(chǔ)上,進(jìn)行邊界值測(cè)試,每次使一個(gè)變量取邊界值,其他變量取正常值,可設(shè)計(jì)出如表4-14所示的邊界測(cè)試用例。測(cè)試用例輸入數(shù)據(jù)預(yù)期輸出加數(shù)1加數(shù)2和Test115051Test225052Test39950149Test410050150Test550151Test650252Test75099149Test850100150Test9050提示“請(qǐng)輸入1~100間的整數(shù)”Test10500提示“請(qǐng)輸入1~100間的整數(shù)”Test1110150提示“請(qǐng)輸入1~100間的整數(shù)”Test1250101提示“請(qǐng)輸入1~100間的整數(shù)”Test130.250提示“請(qǐng)輸入1~100間的整數(shù)”測(cè)試用例輸入數(shù)據(jù)預(yù)期輸出加數(shù)1加數(shù)2和Test14500.2提示“請(qǐng)輸入1~100間的整數(shù)”Test15A50提示“請(qǐng)輸入1~100間的整數(shù)”Test1650A提示“請(qǐng)輸入1~100間的整數(shù)”Test17@50提示“請(qǐng)輸入1~100間的整數(shù)”Test1850@提示“請(qǐng)輸入1~100間的整數(shù)”Test19空格50提示“請(qǐng)輸入1~100間的整數(shù)”Test2050空格提示“請(qǐng)輸入1~100間的整數(shù)”Test2150提示“請(qǐng)輸入1~100間的整數(shù)”Test2250提示“請(qǐng)輸入1~100間的整數(shù)”答案B答案B應(yīng)當(dāng)包含a和b以及略大于a和略小于b的值如果輸入條件規(guī)定值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)答案為B答案B0513下面為C語(yǔ)言程序,邊界值問(wèn)題可以定位在()intdata[3];inti;for(i=1;i<=3;i++)data[i]=100;A.data[0]B.data[1]C.data[2]D.data[3]答案為A創(chuàng)建了一個(gè)3個(gè)元素的數(shù)組,程序從1-3循環(huán)將數(shù)組元素的值初始化為100,但是由于數(shù)組的第一個(gè)元素是data(0)0514

測(cè)試計(jì)算正數(shù)平方根的函數(shù)。其輸入、輸出均為一個(gè)實(shí)數(shù),當(dāng)輸入一個(gè)0或比0大的數(shù)的時(shí)候,返回其正平方根;當(dāng)輸入一個(gè)小于0的數(shù)時(shí),顯示錯(cuò)誤信息“平方根非法,輸入值小于0”。

1)邊界值分析使用與等價(jià)類劃分法相同的劃分,只是邊界值分析假定錯(cuò)誤更多地存在于劃分的邊界上,因此在等價(jià)類的邊界上以及兩側(cè)的情況設(shè)計(jì)測(cè)試用例。

例:測(cè)試計(jì)算平方根的函數(shù)

--輸入:實(shí)數(shù)

--輸出:實(shí)數(shù)

--規(guī)格說(shuō)明:當(dāng)輸入一個(gè)0或比0大的數(shù)的時(shí)候,返回其正平方根;當(dāng)輸入一個(gè)小于0的數(shù)時(shí),顯示錯(cuò)誤信息"平方根非法-輸入值小于0"并返回0;庫(kù)函數(shù)Print-Line可以用來(lái)輸出錯(cuò)誤信息。2)等價(jià)類劃分:

I.可以考慮作出如下劃分:

a、輸入

(i)<0

(ii)>=0

b、輸出

(a)>=0

(b)Error

II.測(cè)試用例有兩個(gè):

a、輸入4,輸出2。對(duì)應(yīng)于

(ii)

(a)

。

b、輸入-10,輸出0和錯(cuò)誤提示。對(duì)應(yīng)于

(i)

(b)

。

3)邊界值分析:

劃分(ii)的邊界為0和最大正實(shí)數(shù);劃分(i)的邊界為最小負(fù)實(shí)數(shù)和0。由此得到以下測(cè)試用例:

a、輸入

{最小負(fù)實(shí)數(shù)}

b、輸入

{絕對(duì)值很小的負(fù)數(shù)}

c、輸入

0

d、輸入

{絕對(duì)值很小的正數(shù)}

e、輸入

{最大正實(shí)數(shù)}0515

萬(wàn)年歷查詢軟件,要求用戶輸入以年月日表示的日期,然后系統(tǒng)會(huì)換算出該日期的農(nóng)歷表示法及相關(guān)黃歷信息。假設(shè)日期限定在1900年1月1日~2049年12月31日,并規(guī)定日期由8位數(shù)字字符組成,前4位表示年,中間2位表示月,最后2位表示日期。其中4、6、9、11月只有30天,平年的2月份只有28天,閏年的2月份有29天。

備注:為簡(jiǎn)化處理,本題在進(jìn)行用例設(shè)計(jì)時(shí),不必

考慮對(duì)平年、閏年的判斷。輸入等價(jià)類有效等價(jià)類無(wú)效等價(jià)類日期的類型及長(zhǎng)度(1)8位數(shù)字字符(9)有非數(shù)字字符(10)少于8位數(shù)字字符(11)多于8位數(shù)字字符年份范圍(2)在1900~2049之間(12)小于1900(13)大于2049月份范圍(3)在01~12之間(14)等于00(15)大于12日期下限(4)日期>=01(16)等于00平年2月份有28天(5)平年2月份日期<=28(17)平年2月份日期>28閏年2月份有29天(6)閏年2月份日期<=29(18)閏年2月份日期>291、3、5、7、8、10、12月份有31天(7)大月日期<=31(19)大月日期>314、6、9、11月份只有30天(8)小月日期<=30(20)小月日期>301)劃分等價(jià)類并編號(hào),下表等價(jià)類劃分的結(jié)果二、結(jié)合邊界值方法進(jìn)行用例設(shè)計(jì)。首先還是利用等價(jià)類的方法進(jìn)行用例設(shè)計(jì),然后看看哪些邊界值已經(jīng)被覆蓋到了,最后再針對(duì)沒(méi)有被覆蓋的邊界值補(bǔ)充測(cè)試用例。輸入等價(jià)類有效等價(jià)類無(wú)效等價(jià)類日期的類型及長(zhǎng)度(1)8位數(shù)字字符(9)有非數(shù)字字符(10)少于8位數(shù)字字符(11)多于8位數(shù)字字符邊界值:(30)7位(31)9位年份范圍(2)在1900~2049之間邊界值:(21)1900(22)2049(12)小于1900(13)大于2049邊界值:(32)1899(33)2050月份范圍(3)在01~12之間邊界值:(23)01(24)12(14)等于00(15)大于12邊界值:(34)00(35)13日期下限(4)日期>=01邊界值:(25)01(16)等于00邊界值:(36)00平年2月份有28天(5)平年2月份日期<=28邊界值:(26)28(17)平年2月份日期>28邊界值:(37)29閏年2月份有29天(6)閏年2月份日期<=29邊界值:(27)29(18)閏年2月份日期>29邊界值:(38)301、3、5、7、8、10、12月份有31天(7)大月日期<=31邊界值:(28)31(19)大月日期>31邊界值:(39)324、6、9、11月份只有30天(8)小月日期<=30邊界值:(29)30(20)小月日期>30邊界值:(40)31測(cè)試用例測(cè)試數(shù)據(jù)覆蓋的有效等價(jià)類覆蓋邊界值1190001011、2、3、421、23、252204912311、2、3、4、722、24、283200102281、2、3、4、5264200002291、2、3、4、6275199504301、2、3、4、829設(shè)計(jì)測(cè)試用例覆蓋等價(jià)類和邊界值再補(bǔ)充1月31日、11月30日的測(cè)試用例,因?yàn)?月是大月的第一個(gè)月,11月是小月的最后一個(gè)月,也可以算是邊界值。測(cè)試用例測(cè)試數(shù)據(jù)覆蓋的有效等價(jià)類覆蓋邊界值6199801311、2、3、4、723、287200511301、2、3、4、829設(shè)計(jì)測(cè)試用例覆蓋無(wú)效等價(jià)類:測(cè)試用例測(cè)試數(shù)據(jù)覆蓋的無(wú)效等價(jià)類覆蓋的邊界值19533June922003061103032001123011131418991031123252050020113336200800011434720041301153581996010016369200702291737102008023018381119980132193912199004312040因果圖法產(chǎn)生的背景:等價(jià)類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒(méi)有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯(cuò)的情況已經(jīng)測(cè)試到了,但多個(gè)輸入條件組合起來(lái)可能出錯(cuò)的情況卻被忽視了。如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來(lái)進(jìn)行測(cè)試用例的設(shè)計(jì),這就需要利用因果圖(邏輯模型)。因果圖法因果圖法是基于這樣的一種思想:一些程序的功能可以用判定表(或稱決策表)的形式來(lái)表示,并根據(jù)輸入條件的組合情況規(guī)定相應(yīng)的操作。因果圖法的定義:是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測(cè)試用例的方法,它適合于檢查程序輸入條件的各種組合情況。使用因果圖法的優(yōu)點(diǎn):(1)考慮到了輸入情況的各種組合以及各個(gè)輸入情況之間的相互制約關(guān)系。(2)能夠幫助測(cè)試人員按照一定的步驟,高效率的開(kāi)發(fā)測(cè)試用例。(3)因果圖法是將自然語(yǔ)言規(guī)格說(shuō)明轉(zhuǎn)化成形式語(yǔ)言規(guī)格說(shuō)明的一種嚴(yán)格的方法,可以指出規(guī)格說(shuō)明存在的不完整性和二義性。因果圖中用來(lái)表示4種因果關(guān)系的基本符號(hào):因果圖中的4種基本關(guān)系在因果圖的基本符號(hào)中,圖中的左結(jié)點(diǎn)ci表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)ei表示輸出狀態(tài)(或稱結(jié)果)。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?;颍喝鬰1或c2或c3是1,則e1為1,否則e1為0。與:若c1和c2都是1,則e1為1,否則e1為0。因果圖中的約束在實(shí)際問(wèn)題中輸入狀態(tài)相互之間、輸出狀態(tài)相互之間可能存在某些依賴關(guān)系,稱為“約束”。對(duì)于輸入條件的約束有E、I、O、R四種約束,對(duì)于輸出條件的約束只有M約束。E約束(異):a和b中最多有一個(gè)可能為1,即a和b不能同時(shí)為1。I約束(或):a、b、c中至少有一個(gè)必須為1,即a、b、c不能同時(shí)為0。O約束(唯一):a和b必須有一個(gè)且僅有一個(gè)為1。R約束(要求):a是1時(shí),b必須是1,即a為1時(shí),b不能為0。M約束(強(qiáng)制):若結(jié)果a為1,則結(jié)果b強(qiáng)制為0。因果圖中用來(lái)表示約束關(guān)系的約束符號(hào):采用因果圖法設(shè)計(jì)測(cè)試用例的步驟:

分析程序規(guī)格說(shuō)明的描述中,哪些是原因,哪些是結(jié)果,并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。原因常常是輸入條件或是輸入條件的等價(jià)類。而結(jié)果是輸出條件。分析軟件規(guī)格說(shuō)明描述的語(yǔ)義。找出原因和結(jié)果之間、原因和原因之間的關(guān)系,根據(jù)這些關(guān)系,畫(huà)出因果圖。由于語(yǔ)法或環(huán)境的限制,有些原因和結(jié)果的組合情況是不可能出現(xiàn)的。為表明這些特定的情況,在因果圖上使用若干個(gè)特殊的符號(hào)標(biāo)明約束或限制條件。把因果圖轉(zhuǎn)換為判定表。把判定表的每一列拿出來(lái)作為依據(jù),設(shè)計(jì)測(cè)試用例。例1:規(guī)格說(shuō)明書(shū)程序的規(guī)格說(shuō)明要求:輸入的第一個(gè)字符必須是#或*,第二個(gè)字符必須是一個(gè)數(shù)字,此情況下進(jìn)行文件的修改;如果第一個(gè)字符不是#或*,則給出信息N,如果第二個(gè)字符不是數(shù)字,則給出信息M。(1)分析程序規(guī)格說(shuō)明中的原因和結(jié)果:原因結(jié)果c1:第一個(gè)字符是#e1:修改文件c2:第一個(gè)字符是*e2:給出信息Nc3:第二個(gè)字符是一個(gè)數(shù)字e3:給出信息M(2)畫(huà)出因果圖(編號(hào)為11的中間結(jié)點(diǎn)是導(dǎo)出結(jié)果的進(jìn)一步原因):(3)將因果圖轉(zhuǎn)換成如下所示的決策表:12345678條件:C1C2C311111110101110010111010100100000動(dòng)作:e1e2e3不可能√√√√√√√√√測(cè)試用例#3#A*6*BA1GT規(guī)則選項(xiàng)(4)根據(jù)決策表中的每一列設(shè)計(jì)測(cè)試用例:測(cè)試用例編號(hào)輸入數(shù)據(jù)預(yù)期輸出1#3修改文件2#A給出信息M3*6修改文件4*B給出信息M5A1給出信息N6GT給出信息N和信息M決策表在所有的黑盒測(cè)試方法中,基于決策表(也稱判定表)的測(cè)試是最為嚴(yán)格、最具有邏輯性的測(cè)試方法。決策表的概念:決策表是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況的工具。決策表的優(yōu)點(diǎn):能夠?qū)?fù)雜的問(wèn)題按照各種可能的情況全部列舉出來(lái),簡(jiǎn)明并避免遺漏。因此,利用決策表能夠設(shè)計(jì)出完整的測(cè)試用例集合。在一些數(shù)據(jù)處理問(wèn)題當(dāng)中,某些操作的實(shí)施依賴于多個(gè)邏輯條件的組合,即:針對(duì)不同邏輯條件的組合值,分別執(zhí)行不同的操作。決策表很適合于處理這類問(wèn)題。決策表的組成決策表通常由以下4部分組成:條件樁—列出問(wèn)題的所有條件條件項(xiàng)—針對(duì)條件樁給出的條件列出所有可能的取值動(dòng)作樁—列出問(wèn)題規(guī)定的可能采取的操作動(dòng)作項(xiàng)—指出在條件項(xiàng)的各組取值情況下應(yīng)采取的動(dòng)作

條件樁動(dòng)作樁條件項(xiàng)動(dòng)作項(xiàng)規(guī)則將任何一個(gè)條件組合的特定取值及相應(yīng)要執(zhí)行的動(dòng)作稱為一條規(guī)則。在決策表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。

123,4567,8c1c2c3TTTTTFTF-FTTFTFFF-a1a2a3a4√√√√√√√√√條件樁動(dòng)作項(xiàng)動(dòng)作樁條件項(xiàng)決策表的生成構(gòu)造決策表的5個(gè)步驟:(1)

確定規(guī)則的個(gè)數(shù)。有n個(gè)條件的決策表有2n個(gè)規(guī)則(每個(gè)條件取真、假值)。(2)

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

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

填入動(dòng)作項(xiàng),得到初始決策表。(5)

簡(jiǎn)化決策表,合并相似規(guī)則。例2:“閱讀指南”決策表12345678問(wèn)題覺(jué)得疲倦?YYYYNNNN感興趣嗎?YYNNYYNN糊涂嗎?YNYNYNYN建議重讀√繼續(xù)√跳下一章√√休息√√√√決策表的化簡(jiǎn)有n個(gè)條件的決策表,對(duì)應(yīng)的規(guī)則將有2n條,當(dāng)n非常大的時(shí)候,這是非常繁瑣的。因此,應(yīng)對(duì)決策表進(jìn)行化簡(jiǎn)。決策表的化簡(jiǎn)包括兩個(gè)方面:(1)合并如果一個(gè)條件項(xiàng)(表中某列中的條件值)和另外一個(gè)條件項(xiàng)所產(chǎn)生的動(dòng)作是相同的,且兩個(gè)條件項(xiàng)對(duì)應(yīng)的每一行的值只有一個(gè)是不同的,則可以將其合并。合并的項(xiàng)除了不同值變成”不關(guān)心”條目外,其余不變。(2)包含如果兩個(gè)條件項(xiàng)的動(dòng)作是相同的,對(duì)任意條件1的值和條件2中對(duì)應(yīng)的

值,如果滿足:A.如果條件1的值是T(F),則條件2中的值也是T(F).B.如果條件1的值是-(不關(guān)心),則條件2中的值是T,F,-,稱條件1包含條件2,條件2可以撤去.重復(fù)A,B就可以得到精簡(jiǎn)的決策表.NYNNYY√√-NY√N(yùn)NN-YY√√N(yùn)-Y√將“閱讀指南”決策表簡(jiǎn)化

規(guī)則選項(xiàng)1~4567~8問(wèn)題覺(jué)得疲倦嗎YNNN感興趣嗎-YYN糊涂嗎-YN-建議重讀√繼續(xù)√跳下一章√休息√例3:三角形問(wèn)題的決策表規(guī)則選項(xiàng)規(guī)則1-8規(guī)則9規(guī)則10規(guī)則11規(guī)則12規(guī)則13規(guī)則14規(guī)則15規(guī)則16條件:c1:a,b,c構(gòu)成三角形?c2:a=b?c3:a=c?c4:b=c?

N---

YYYY

YYYN

YYNY

YYNN

YNYY

YNYN

YNNY

YNNN動(dòng)作:a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能

√√√√√√決策表的優(yōu)點(diǎn):能夠?qū)?fù)雜的問(wèn)題按照各種可能的情況全部列舉出來(lái),簡(jiǎn)明并避免遺漏。因此,利用決策表能夠設(shè)計(jì)出完整的測(cè)試用例集合。決策表的缺點(diǎn):不能表達(dá)重復(fù)執(zhí)行的動(dòng)作,例如循環(huán)結(jié)構(gòu)。決策表法是黑盒測(cè)試方法中最為嚴(yán)格、最具有邏輯性的測(cè)試方法。答案為C

0517

打印機(jī)是否能打印出來(lái)正確的內(nèi)容,有多個(gè)因素影響,包括驅(qū)動(dòng)程序、紙張、墨粉等。(為了簡(jiǎn)化問(wèn)題,不考慮中途斷電、卡紙等因素的影響)。①確定規(guī)則的個(gè)數(shù):這里有3個(gè)條件,每個(gè)條件有兩個(gè)取值,故應(yīng)有2*2*2=8種規(guī)則。②列出所有的條件茬和動(dòng)作樁:③填入條件項(xiàng)。可從最后1行條件項(xiàng)開(kāi)始,逐行向上填滿。④填入動(dòng)作樁和動(dòng)作頂。這樣便得到形如圖的初始判定表。條件樁:(1)

驅(qū)動(dòng)程序是否正確?(2)

是否有紙張?(3)

是否有墨粉?動(dòng)作樁:(動(dòng)作樁有兩種:打印內(nèi)容和不同的錯(cuò)誤提示,并且假定:優(yōu)先警告缺紙,然后警告沒(méi)有墨粉,最有警告驅(qū)動(dòng)程序不對(duì)。)(1)

打印內(nèi)容(2)

提示驅(qū)動(dòng)程序不對(duì)(3)

提示沒(méi)有紙張(4)

提示沒(méi)有墨粉序號(hào)12345678條件驅(qū)動(dòng)程序是否正確?10110010是否有紙張?11010100是否有墨粉?11101000動(dòng)作打印內(nèi)容10000000提示驅(qū)動(dòng)程序不對(duì)01000000提示沒(méi)有紙張00101011提示沒(méi)有墨粉00010100初始化的判定表注:輸入條件項(xiàng),即上述每個(gè)條件的值分別取“是(Y)”和“否(N)”,可以簡(jiǎn)化表示為1和0。序號(hào)124/63/5/7/8條件驅(qū)動(dòng)程序是否正確?101—是否有紙張?1110是否有墨粉?110—?jiǎng)幼鞔蛴?nèi)容1000提示驅(qū)動(dòng)程序不對(duì)0100提示沒(méi)有紙張0001提示沒(méi)有墨粉0010優(yōu)化的判定表注:如果動(dòng)作結(jié)果一樣,對(duì)于某些因素取“1”或“0”沒(méi)有影響,即以“—”表示,并合并。優(yōu)化的判定表就可以設(shè)計(jì)測(cè)試用例,每一列代表一條測(cè)試用例。

0518

對(duì)功率大于50馬力的機(jī)器且維修記錄不全或已運(yùn)行10年以上的機(jī)器,應(yīng)給予優(yōu)先的維修處理,利用判定表進(jìn)行分析,完成用例設(shè)計(jì)。條件:1)功率是否大于50馬力2)維修記錄是否齊全3)運(yùn)行是否超過(guò)10年動(dòng)作:1)進(jìn)行優(yōu)先處理

12345678條件功率大于50馬力嗎?11110000維修記錄不全嗎?11001100運(yùn)行超過(guò)10年嗎?10101010動(dòng)作進(jìn)行優(yōu)先處理11101010判定表如下:

1234條件功率大于50馬力嗎?-1-0維修記錄不全嗎?-101運(yùn)行超過(guò)10年嗎?1000動(dòng)作進(jìn)行優(yōu)先處理1100有兩種合并方法:1)合并1357項(xiàng)、48項(xiàng)2)合并1357項(xiàng)、68項(xiàng)

1234條件功率大于50馬力嗎?-110維修記錄不全嗎?-10-運(yùn)行超過(guò)10年嗎?1000動(dòng)作進(jìn)行優(yōu)先處理1100但這樣合并之后我們看看后三條規(guī)則,寫(xiě)出的用例邏輯性會(huì)變差,讓看的人感覺(jué)莫名其妙,比如第二張表的第4條規(guī)則,寫(xiě)出用例標(biāo)題應(yīng)該是“驗(yàn)證功率不到50馬力且運(yùn)行不超過(guò)10年的機(jī)器的處理優(yōu)先級(jí)”,這樣會(huì)給人感覺(jué)功率和運(yùn)行年限之間存在一定的邏輯關(guān)系,但其實(shí)功率與馬力之間才是強(qiáng)邏輯關(guān)系,功率與運(yùn)行年限之間的邏輯關(guān)系是比較弱的。所以建議還是不合并為好,不要為了節(jié)省幾個(gè)用例去犧牲整個(gè)用例的邏輯性。只把1357列合并就可以了,也就是說(shuō)對(duì)于運(yùn)行超過(guò)10年的機(jī)器,不管它的馬力和維修記錄如何都必須進(jìn)行優(yōu)先處理。

12345條件功率大于50馬力嗎?-1100維修記錄不全嗎?-1010運(yùn)行超過(guò)10年嗎?10000動(dòng)作進(jìn)行優(yōu)先處理110000519

有一個(gè)處理單價(jià)為5角錢(qián)的飲料的自動(dòng)售貨機(jī),相應(yīng)規(guī)格說(shuō)明如下。①若投入5角錢(qián)或1元錢(qián)的硬幣,按下【橙汁】或【啤酒】的按鈕,則相應(yīng)的飲料就送出來(lái)。(每次只投入一個(gè)硬幣,只按下一種飲料的按鈕。)②如投入5角的硬幣,按下按鈕后,總有飲料送出。③若售貨機(jī)沒(méi)有零錢(qián)找,則【零錢(qián)找完】的紅燈會(huì)亮,這時(shí)再投入1元硬幣并按下按鈕后,飲料不送出來(lái)而且1元硬幣也退出來(lái)。④若有零錢(qián)找,則【零錢(qián)找完】的紅燈不會(huì)亮,若投入1元硬幣及按飲料按鈕,則送出飲料的同時(shí)找回5角硬幣。分析根據(jù)該命題,我們可以分析出,自動(dòng)售貨機(jī)的業(yè)務(wù)中一共存在5個(gè)條件和5個(gè)結(jié)果,分別是:條件:1.售貨機(jī)有零錢(qián)找2.投入1元硬幣3.投入5角硬幣

4.押下橙汁按鈕5.押下啤酒按鈕

結(jié)果:

1.售貨機(jī)〖零錢(qián)找完〗燈亮

當(dāng)售貨機(jī)中沒(méi)有零錢(qián)的時(shí)候就有亮紅燈2.退還1元硬幣

當(dāng)投入1元,而且售貨機(jī)中沒(méi)有零錢(qián)可找的時(shí)候3.退還5角硬幣

當(dāng)投入1元,而且售貨機(jī)中有零錢(qián)可找的時(shí)候4.送出橙汁飲料5.送出啤酒飲料因果圖-畫(huà)條件和結(jié)果因果圖-畫(huà)簡(jiǎn)單關(guān)系在畫(huà)完空白的條件和結(jié)果之后,我們可以將題目中最直接和簡(jiǎn)單的因果條件標(biāo)出1、條件“有零錢(qián)”和結(jié)果“紅燈亮”是一個(gè)“非”的關(guān)系,當(dāng)“有零錢(qián)”的時(shí)候,紅燈是不亮的,而當(dāng)售貨機(jī)中“沒(méi)有零錢(qián)”的時(shí)候,紅燈必須要亮的。2、條件“投1元”和條件“投5角”是一個(gè)“E”的關(guān)系,這兩個(gè)動(dòng)作不可能同時(shí)發(fā)生,即同時(shí)投入1元錢(qián)和5角錢(qián)(不能同時(shí)為真);但是我們?cè)试S即“不投入1元錢(qián)”也“不投入5角錢(qián)”(可以同時(shí)為假)。3、條件“選啤酒”和條件“選橙汁”是一個(gè)“E”的關(guān)系,這兩個(gè)動(dòng)作不可能同時(shí)發(fā)生,即同時(shí)“選擇啤酒”和“選擇橙汁”(不能同時(shí)為真);但是我們?cè)试S即“不選擇啤酒”也“不選擇橙汁”(可以同時(shí)為假)。4、條件“選啤酒”和條件“選橙汁”對(duì)于程序處理過(guò)程是等價(jià)的,即二者無(wú)論是價(jià)格還是系統(tǒng)的處理方法都是相同的,因此這兩個(gè)條件可以合并為一個(gè)中間節(jié)點(diǎn)。而且這兩個(gè)條件之間使用“或”的關(guān)系。5、注意,條件“投1元”和條件“投5角”不是等價(jià)關(guān)系,表面上看,他們都是“錢(qián)”,好像差不多,但是對(duì)于程序的處理過(guò)程確實(shí)完全不同的,“投5角”后完全不用判斷當(dāng)前售貨機(jī)中是否有零錢(qián)(因?yàn)轭}目中規(guī)定所有的商品都是5角錢(qián)),而“投1元”就不行了。因果圖-送出商品現(xiàn)在我們從結(jié)果的角度考慮,要想“出啤酒”或者“出橙汁”,從現(xiàn)實(shí)買賣中分析必須要有什么先決條件呢?是的,就是“你的錢(qián)要付清”,而且你一定要選擇了“啤酒”或者“橙汁”才行。而在上面的已有因果圖中,我們無(wú)法找到“錢(qián)付清”的因素,因此這時(shí)候我們可以試著再加一個(gè)中間節(jié)點(diǎn),就叫“錢(qián)付清”吧。要想獲得選中的商品,則條件“錢(qián)付清”和條件“選啤酒/選橙汁”必須要同時(shí)成立,因此是“與”的關(guān)系。因果圖-能夠找零錢(qián)上面已經(jīng)確定了“投入1元錢(qián)”并且“選商品”,系統(tǒng)應(yīng)該找給客戶5角錢(qián),那么接下來(lái)就要看當(dāng)前售貨機(jī)中是否有零錢(qián)可找了,慶幸的是,存在“有零錢(qián)”的條件;現(xiàn)在系統(tǒng)“應(yīng)該找零錢(qián)”給客戶,而且恰恰又“有零錢(qián)”找給客戶,那么就可以確定系統(tǒng)“能夠找零錢(qián)”給客戶了,所以這里我們又可以增加一個(gè)中間節(jié)點(diǎn)“能夠找零錢(qián)”。條件“有零錢(qián)”和條件(中間節(jié)點(diǎn))“應(yīng)該找零錢(qián)”與結(jié)果“能夠找零錢(qián)”之間是“與”的關(guān)系。因果圖-1元錢(qián)付清現(xiàn)在已經(jīng)確定客戶“投入1元錢(qián)”并且“選商品”后,系統(tǒng)“有零錢(qián)”可找,那么緊接著就可以找錢(qián)給客戶了。條件“能夠找零錢(qián)”和結(jié)果“找5角”是“恒等”的關(guān)系;條件“能夠找零錢(qián)”和結(jié)果(中間節(jié)點(diǎn))“錢(qián)付清”也是“恒等”的關(guān)系;因果圖-5角錢(qián)付清考慮完投入1元錢(qián)后系統(tǒng)的處理情況,我們?cè)賮?lái)看投入5角錢(qián)后系統(tǒng)是如何處理的。因?yàn)槭圬洐C(jī)中的全部商品都是5角錢(qián)的,因此就不存在找零的問(wèn)題了,只要客戶“投入5角”并且按下相應(yīng)的商品選擇按鈕就好了。所以,條件“投5角”和結(jié)果(中間節(jié)點(diǎn))“錢(qián)付清”直接是“恒等”的關(guān)系。另外,條件“投5角”和條件(中間節(jié)點(diǎn))“能夠找零錢(qián)”都代表金額的計(jì)算已經(jīng)結(jié)束,即“錢(qián)付清”,因此條件“投5角”和條件(中間節(jié)點(diǎn))“能夠找零錢(qián)”與結(jié)果(中間節(jié)點(diǎn))“錢(qián)付清”之間是“或”的關(guān)系。因果圖-退還1元我們考慮完了投入5角錢(qián)及投入1元錢(qián)并找零后,最后在考慮一下退還1元錢(qián)的情況。毫無(wú)疑問(wèn),當(dāng)投入1元錢(qián),并且選擇了某種商品的時(shí)候,如果當(dāng)前售貨機(jī)中沒(méi)有零錢(qián)可找,那么只能退還用戶這1元錢(qián)了。因此,條件“沒(méi)零錢(qián)”和條件“應(yīng)該找零錢(qián)”與結(jié)果“找1元”之間應(yīng)該是“與”的關(guān)系,而且我們的條件中關(guān)于零錢(qián)是用了肯定的描述,即“有零錢(qián)”,要想表示沒(méi)有零錢(qián),直接使用一個(gè)“非”關(guān)就可以了。判定表去除無(wú)效用例合并判定表0520黑盒測(cè)試是通過(guò)軟件的外部表現(xiàn)來(lái)發(fā)現(xiàn)軟件缺陷和錯(cuò)誤的測(cè)試方法,具體地說(shuō),黑盒測(cè)試用例設(shè)計(jì)技術(shù)包括___(42)___等?,F(xiàn)有一個(gè)處理單價(jià)為1元的盒裝飲料的自動(dòng)售貨機(jī)軟件,若投入1元幣,按下“可樂(lè)”、“雪碧”或“紅茶”按鈕,相應(yīng)的飲料就送出來(lái),若投入的是2元幣,在送出飲料的同時(shí)退還1元幣。下表是用因果圖法設(shè)計(jì)的部分測(cè)試用例,1表示執(zhí)行該動(dòng)作,0表示不執(zhí)行該動(dòng)作,___(43)___的各位數(shù)據(jù),從左到右分別填入空格表中的(1)—(8)是正確的。42答案為A黑盒測(cè)試用例設(shè)計(jì)的方法包括等價(jià)類劃分法、邊界值分析法、因果圖法、錯(cuò)誤推測(cè)法、判定表驅(qū)動(dòng)法、功能圖法、正交實(shí)驗(yàn)法、場(chǎng)景法等。基本路徑法、符號(hào)法以及靜態(tài)質(zhì)量度量是白盒測(cè)試用例設(shè)計(jì)的方法43答案為A當(dāng)有投幣和按鈕時(shí),就會(huì)有相應(yīng)的飲料送出,若投幣為2元時(shí),除了相應(yīng)的飲料送出,還會(huì)退還1元硬幣;只有按鈕或只有投幣時(shí),就不會(huì)有輸出結(jié)果應(yīng)用的輸出結(jié)果依賴于各種輸入條件的組合或各種輸入條件之間有各種相互制約關(guān)系問(wèn)題一問(wèn)題二輸入條件輸出結(jié)果ABDEGICFH問(wèn)題三1)11、12、13分別填入結(jié)果A、B、G,不計(jì)順序2)14中填寫(xiě)E3)15、22分別填寫(xiě)I,C;16、23分別填寫(xiě)D、F4)或者15、22分別寫(xiě)D,F;16、23分別寫(xiě)I,C5)21填寫(xiě)H1、分析程序規(guī)格說(shuō)明中的描述,哪些是原因,哪些是結(jié)果。原因常常是輸入條件或是輸入條件的等價(jià)類,而結(jié)果是輸出條件2、分析程序規(guī)格說(shuō)明的描述中語(yǔ)義的內(nèi)容,并將其表示成連接各個(gè)原因與各個(gè)結(jié)果的“因果圖”。3、標(biāo)明約束條件。由于語(yǔ)法或環(huán)境的限制,有些原因和結(jié)果的組合情況是不可能出現(xiàn)的。為表明這些特定的情況,在因果圖上使用若干個(gè)標(biāo)準(zhǔn)的符號(hào)標(biāo)明約束條件。4、把因果圖轉(zhuǎn)換成判定表,為判定表每一列表示的情況設(shè)計(jì)測(cè)試用例問(wèn)題一問(wèn)題三問(wèn)題二場(chǎng)景法我們申請(qǐng)一個(gè)項(xiàng)目,需先提交審批單據(jù),再由部門(mén)經(jīng)理審批,審核通過(guò)后由總經(jīng)理來(lái)最終審批,如果部門(mén)經(jīng)理審核不通過(guò),就直接退回。每個(gè)事件觸發(fā)時(shí)的情景便形成了場(chǎng)景?,F(xiàn)在的軟件幾乎都是用事件觸發(fā)來(lái)控制流程的,事件觸發(fā)時(shí)的情景便形成了場(chǎng)景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的思想也可引入到軟件測(cè)試中,可以比較生動(dòng)地描繪出事件觸發(fā)時(shí)的情景,有利于測(cè)試設(shè)計(jì)者設(shè)計(jì)測(cè)試用例,同時(shí)使測(cè)試用例更容易理解和執(zhí)行。場(chǎng)景法一般包含基本流和備選流,從一個(gè)流程開(kāi)始,通過(guò)描述經(jīng)過(guò)的路徑來(lái)確定過(guò)程,經(jīng)過(guò)遍歷所有的基本流和備選流來(lái)完成整個(gè)場(chǎng)景?;玖骱蛡溆昧骰玖鳎翰捎弥焙诰€表示,是經(jīng)過(guò)用例的最簡(jiǎn)單的路徑(無(wú)任何差錯(cuò),程序從開(kāi)始直接執(zhí)行到結(jié)束)備選流:用不同的彩色表示,一個(gè)備選流可能從基本流開(kāi)始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和備選流3);也可能起源于另一個(gè)備選流(如備選流2),或者終止用例而不再重新加入到某個(gè)流(如備選流2和備選流4)。按照上圖中每個(gè)經(jīng)過(guò)用例的路徑,可以確定以下不同的用例場(chǎng)景:場(chǎng)景1基本流場(chǎng)景2基本流備選流1場(chǎng)景3基本流備選流1備選流2場(chǎng)景4基本流備選流3場(chǎng)景5基本流備選流3備選流1場(chǎng)景6基本流備選流3備選流1備選流2場(chǎng)景7基本流備選流4場(chǎng)景8基本流備選流3備選流4注:為方便起見(jiàn),場(chǎng)景5、6和8只考慮了備選流3循環(huán)執(zhí)行一次的情況。備選流的起始和終止節(jié)點(diǎn)的幾種形式

①起始節(jié)點(diǎn)從基本流的某個(gè)判定節(jié)點(diǎn)開(kāi)始。②起始節(jié)點(diǎn)從其他備選流的某個(gè)判定節(jié)點(diǎn)開(kāi)始。③終止節(jié)點(diǎn)是基本流上的某個(gè)狀態(tài)。④終止節(jié)點(diǎn)是其他的系統(tǒng)終止?fàn)顟B(tài)?;玖鱾溥x流場(chǎng)景法測(cè)試設(shè)計(jì)方法根據(jù)說(shuō)明,描述出程序的基本流及各項(xiàng)備選流;根據(jù)基本流和各項(xiàng)備選流生成不同的場(chǎng)景;對(duì)每一個(gè)場(chǎng)景生成相應(yīng)的測(cè)試用例;對(duì)生成的所有測(cè)試用例重新復(fù)審,去掉多余的測(cè)試用例,測(cè)試用例確定后,對(duì)每一個(gè)測(cè)試用例確定測(cè)試數(shù)據(jù)。例1:對(duì)于ATM系統(tǒng)的取款用例,使用場(chǎng)景法設(shè)計(jì)測(cè)試用例。(1)分析基本流和備選流基本流:正常的取款。備選流:考察幾種特定情況,包括ATM內(nèi)沒(méi)有現(xiàn)金;ATM內(nèi)現(xiàn)金不足;密碼有誤(3次機(jī)會(huì));賬戶不存在或賬戶類型有誤;賬戶余額不足。(2)分析各場(chǎng)景場(chǎng)景1—成功的提款—基本流場(chǎng)景2—ATM內(nèi)沒(méi)有現(xiàn)金—基本流備選流場(chǎng)景3—ATM內(nèi)現(xiàn)金不足—基本流備選流場(chǎng)景4—PIN有誤(第一次錯(cuò))—基本流備選流場(chǎng)景5—PIN有誤(第二次錯(cuò))—基本流備選流場(chǎng)景6—PIN有誤(第三次錯(cuò))—基本流備選流場(chǎng)景7—賬戶不存在/賬戶類型有誤—基本流備選流場(chǎng)景8—賬戶余額不足—基本流備選流(3)構(gòu)造測(cè)試用例設(shè)計(jì)矩陣v表示有效,i表示無(wú)效,n表示無(wú)關(guān)。如表4-18所示。(4)設(shè)計(jì)測(cè)試用例例2:有一個(gè)處理單價(jià)為5角錢(qián)的飲料的自動(dòng)售貨機(jī),相應(yīng)規(guī)格說(shuō)明如下。①若投入5角錢(qián)或1元錢(qián)的硬幣,按下【橙汁】或【啤酒】的按鈕,則相應(yīng)的飲料就送

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論