白盒測(cè)試和黑盒測(cè)試_第1頁(yè)
白盒測(cè)試和黑盒測(cè)試_第2頁(yè)
白盒測(cè)試和黑盒測(cè)試_第3頁(yè)
白盒測(cè)試和黑盒測(cè)試_第4頁(yè)
白盒測(cè)試和黑盒測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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)介

1、白盒測(cè)試和黑盒測(cè)試白盒測(cè)試和黑盒測(cè)試 目目 錄錄 1.軟件測(cè)試基本分類軟件測(cè)試基本分類.1 2.測(cè)試方法測(cè)試方法.2 2.1白盒測(cè)試.2 2.1.1語(yǔ)句覆蓋 .2 2.1.2判定(分支)覆蓋.3 2.1.3條件覆蓋 .3 2.1.4判定/條件覆蓋.4 2.1.5多重條件覆蓋.5 2.1.6路徑覆蓋 .7 2.2黑盒測(cè)試.7 2.2.1等價(jià)劃分 .7 2.2.2邊界值分析.9 2.2.3因果圖.10 2.2.4錯(cuò)誤猜測(cè) .10 1. 軟件測(cè)試基本分類軟件測(cè)試基本分類 一般地,我們將軟件測(cè)試活動(dòng)分為以下幾類:黑盒測(cè)試、白盒測(cè)試、靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試、手動(dòng) 測(cè)試、自動(dòng)測(cè)試等等。 黑盒測(cè)試黑盒測(cè)試 黑盒

2、測(cè)試又叫功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試或給予需求規(guī)格說(shuō)明書的功能測(cè)試。這種測(cè)試注重于測(cè)試 軟件的功能性需求。 采用這種測(cè)試方法,測(cè)試工程師把測(cè)試對(duì)象看作一個(gè)黑盒子,不需要考慮程序內(nèi)部的邏輯結(jié)構(gòu)和 特性,只需要依據(jù)程序的需求規(guī)格說(shuō)明書,檢查程序的功能是否符合它的功能說(shuō)明。黑盒測(cè)試能更好 更真實(shí)的從用戶角度來(lái)考察被測(cè)系統(tǒng)的功能性需求實(shí)現(xiàn)情況。在軟件測(cè)試的各個(gè)階段,如單元測(cè)試、 集成測(cè)試、系統(tǒng)測(cè)試及確認(rèn)測(cè)試等階段都發(fā)揮著重要作用。尤其在系統(tǒng)測(cè)試和確認(rèn)測(cè)試中,其作用是 其他測(cè)試方法無(wú)法取代的。 白盒測(cè)試白盒測(cè)試 白盒測(cè)試又稱結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序代碼內(nèi)部結(jié)構(gòu)的測(cè)試。此時(shí),需要深入考察程 序代碼的內(nèi)部

3、結(jié)構(gòu)、邏輯設(shè)計(jì)等等。白盒測(cè)試需要測(cè)試工程師具備很深的軟件開發(fā)工地,精通相應(yīng)的 開發(fā)語(yǔ)言,一般的軟件測(cè)試工程師難以勝任該工作。 靜態(tài)測(cè)試靜態(tài)測(cè)試 靜態(tài)測(cè)試,顧名思義,就是靜態(tài)的、不執(zhí)行被測(cè)對(duì)象程序代碼而尋找缺陷的過(guò)程。通俗地講,靜 態(tài)測(cè)試就是用眼睛看,閱讀程序代碼,文檔資料等,與需求規(guī)格說(shuō)明書中的需求進(jìn)行比較,找出程序 代碼中設(shè)計(jì)的不合理,以及文檔資料中的錯(cuò)誤。 在進(jìn)行代碼的靜態(tài)測(cè)試時(shí),可以采用一些代碼走查的工具,如 QA C+、C+ Test 等。 動(dòng)態(tài)測(cè)試動(dòng)態(tài)測(cè)試 動(dòng)態(tài)測(cè)試即為實(shí)際的執(zhí)行被測(cè)對(duì)象的程序代碼,輸入事先設(shè)計(jì)好的測(cè)試用例,檢查程序代碼運(yùn)行 的結(jié)果與測(cè)試用例中設(shè)計(jì)的預(yù)期結(jié)果之間是否差

4、異,判定實(shí)際結(jié)果與預(yù)期結(jié)果是否一致,從而檢驗(yàn)程 序的正確性、可靠性和有效性,并分析系統(tǒng)運(yùn)行效率和健壯性等性能狀況。 動(dòng)態(tài)測(cè)試由四部分組成:設(shè)計(jì)測(cè)試用例、執(zhí)行測(cè)試用例、分析比較輸出結(jié)果、輸出測(cè)試報(bào)告。 動(dòng)態(tài)測(cè)試結(jié)合使用白盒測(cè)試和黑盒測(cè)試。 2. 測(cè)試方法測(cè)試方法 對(duì)于白盒測(cè)試,常用的測(cè)試方法有:語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、多重條 件覆蓋等等。黑盒測(cè)試較為知名的測(cè)試方法有:等價(jià)類劃分、邊界值分析、因果圖分析、錯(cuò)誤猜測(cè)等。 本章將對(duì)這些測(cè)試方法進(jìn)行一些簡(jiǎn)單的介紹。 2.1 白盒測(cè)試白盒測(cè)試 白盒測(cè)試關(guān)注的是測(cè)試用例執(zhí)行的程度或覆蓋程序邏輯結(jié)構(gòu) (源代碼) 的程度。如完全的白盒 測(cè)試

5、是將程序中每條路徑都執(zhí)行到,然而對(duì)一個(gè)帶有循環(huán)的程序來(lái)說(shuō),完全的路徑測(cè)試并不切合實(shí)際。 A 1 if (a = 2 | x 1) X = x + 1; 通過(guò)編寫單個(gè)的測(cè)試用例遍歷程序路徑 ace,可以執(zhí)行到每一條語(yǔ)句。也就是說(shuō),通過(guò)在點(diǎn) a 處 設(shè)置 A=2,B=0,X=3,每條語(yǔ)句將被執(zhí)行一次(實(shí)際上,X 可被賦任何值) 。 遺憾的是,這個(gè)準(zhǔn)則相當(dāng)不足。舉例來(lái)說(shuō),也許第一個(gè)判斷應(yīng)是“或” ,而不是 “與” 。 如果 這樣, 這個(gè)錯(cuò)誤就會(huì)發(fā)現(xiàn)不到。 另外, 可能第二個(gè)判斷應(yīng)該寫成 “X0” ,這個(gè)錯(cuò)誤也不會(huì)被發(fā)現(xiàn)。 還有,程序中存在一條 X 未發(fā)生改變的路徑(路徑 abd) ,如果這是個(gè)錯(cuò)誤,

6、它也不會(huì)被發(fā)現(xiàn)。換 句話說(shuō),語(yǔ)句覆蓋這條準(zhǔn)則有很大的不足,以至于它通常沒(méi)有什么用處。 2.1.2 判定(分支)覆蓋判定(分支)覆蓋 判定覆蓋或分支覆蓋是較強(qiáng)一些的邏輯覆蓋準(zhǔn)則。該準(zhǔn)則要求必須編寫足夠的測(cè)試用例,使得每 一個(gè)判斷都至少有一個(gè)為“真”和為“假”的輸出結(jié)果。換句話說(shuō),也就是每條分支路徑都必須至少 遍歷一次。分支或判定語(yǔ)句的例子包括 switch,do-while 和 if-else 語(yǔ)句。 判定覆蓋通??梢詽M足語(yǔ)句覆蓋。由于每條語(yǔ)句都是在要么從分支語(yǔ)句開始,要么從程序入口點(diǎn) 開始的某條子路徑上,如果每條分支路徑都被執(zhí)行到了,那么每條語(yǔ)句也應(yīng)該被執(zhí)行到了。但是,仍 然有些例外情況: 程

7、序中不存在判斷。 程序或子程序/方法有著多重入口點(diǎn)。只有從程序的特定入口點(diǎn)進(jìn)入時(shí),某條特定的語(yǔ)句才能 執(zhí)行到。 我們的探討僅針對(duì)有兩個(gè)選擇的判斷或分支,當(dāng)程序中包含有多重選擇的判斷時(shí),判定/分支覆 蓋準(zhǔn)則的定義就必須有所改變。典型的例子有包含 select(case)語(yǔ)句的 Java 程序, 包含算術(shù) (三重 選擇) IF 語(yǔ)句、 計(jì)算或算術(shù) GOTO 語(yǔ)句的 FORTRAN 程序,以及包含可選 GOTO 語(yǔ)句或 GO-TO- DEFENDING-ON 語(yǔ)句的 COBOL 程序。對(duì)于這些程序,判定/分支覆蓋準(zhǔn)則將所有判斷的每個(gè)可能 結(jié)果都至少執(zhí)行一次,以及將程序或子程序的每個(gè)入口點(diǎn)都至少執(zhí)行一

8、次。 在 Error! Reference source not found. 中,兩個(gè)涵蓋了路徑 ace 和 abd,或涵蓋了路徑 acd 和 abe 的測(cè)試用例就可以滿足判定覆蓋的要求。如果我們選擇了后一種情況,兩個(gè)測(cè)試用例的輸入是 A=3,B=0,X=3 和 A=2,B=1,X=1。 判定覆蓋是一種比語(yǔ)句覆蓋更強(qiáng)的準(zhǔn)則,但仍然相當(dāng)不足。舉例來(lái)說(shuō),我們僅有 50%的可能性 遍歷到那條 X 未發(fā)生變化的路徑 (也即, 僅當(dāng)我們選擇前一種情況) 。 如果第二個(gè)判斷存在錯(cuò)誤(例如把 X1 寫成了 X1,那么前面例子中的兩個(gè)測(cè)試用例都無(wú)法找 出這個(gè)錯(cuò)誤。 2.1.3 條件覆蓋條件覆蓋 比判定覆蓋更

9、強(qiáng)一些的準(zhǔn)則是條件覆蓋。在條件覆蓋情況下,要編寫足夠的測(cè)試用例以確保將一 個(gè)判斷中的每個(gè)條件的所有可能的結(jié)果至少執(zhí)行一次。因?yàn)?,就如同判定覆蓋的情況一樣,這并不總 是能讓每條語(yǔ)句都執(zhí)行到,因此作為對(duì)這條準(zhǔn)則的補(bǔ)充就是對(duì)程序或子程序。舉例來(lái)說(shuō),分支語(yǔ)句 DO K=0 to 50 WHILE (J+K1、B=0、A=2 以及 X1。因此需要足夠 的測(cè)試用例,使得在點(diǎn) a 處出現(xiàn) A=2、A1 及 X=1 的情況。有足夠數(shù)量的測(cè)試用例滿足此準(zhǔn) 則,用例及其遍歷的路徑如下所示: 1A=2,B=0,X=4 ace 2A=1,B=1,X=1 adb 請(qǐng)注意,盡管在本例中生成的測(cè)試用例數(shù)量是一樣的,但條件覆

10、蓋通常還是要比判定覆蓋更強(qiáng)一 些。因?yàn)椋瑮l件覆蓋可能(但并不總是這樣)會(huì)使判斷中的各個(gè)條件都取到兩個(gè)結(jié)果( “真”和 “假” ) ,而判定覆蓋卻做不到這一點(diǎn)。舉例來(lái)說(shuō),在相同的分支語(yǔ)句 DO K=0 to 50 WHILE (J+K 1 B = 0 X = X / A X = X + 1 Y N Y N Y N Y N H J K I d 圖 2-2 Error! Reference source not found.中程序的機(jī)器碼 如 Error! Reference source not found.所示,其中的原因是“與”和“或”表達(dá)式中某些條件 的結(jié)果可能會(huì)屏蔽掉或阻礙其他條件,的判斷

11、。舉例來(lái)說(shuō),如果“與”表達(dá)式中有個(gè)條件為“假” ,那么就無(wú)須計(jì)算該表達(dá)式中的后續(xù)條件。 同樣, 如果 “或” 表達(dá)式中有個(gè)條件為 “真” ,那么 后續(xù)條件也無(wú)須計(jì)算。因此,條件覆蓋或判定/條件覆蓋誰(shuí)都不一定會(huì)發(fā)現(xiàn)邏輯表達(dá)式中的錯(cuò)誤。 2.1.5 多重條件覆蓋多重條件覆蓋 所謂的多重條件覆蓋準(zhǔn)則能夠部分解決這個(gè)問(wèn)題。該準(zhǔn)則要求編寫足夠多的測(cè)試用例,將每個(gè)判 定中的所有可能的條件結(jié)果的組合,以及所有的入口點(diǎn)都至少執(zhí)行一次。舉例來(lái)說(shuō),考慮下面的偽代 碼程序; NOTFOUND=TRUE; DO I=1 TO TABSIZE WHILE (NOTFOUND); /*SEARCH TABLE*/ sea

12、rching logic; END 要測(cè)試四種情況: 1. ITABSIZE,并且 NOTFOUND 為假(指定條目位于表格的最后位置) 。 很容易發(fā)現(xiàn),滿足多重條件覆蓋準(zhǔn)則的測(cè)試用例集,同樣滿足判定覆蓋準(zhǔn)則、條件覆蓋準(zhǔn)則以及 判定/條件覆蓋準(zhǔn)則。 再次回到 Error! Reference source not found.中,測(cè)試用例必須覆蓋以下 8 種組合: 1.A 1, B = 0 2.A 1, B != 0 3.A = 1,B = 0 4.A 1 6.A = 2, X 1 8.A != 2, X = 1 注意,第 5 至 8 組合表示了第二個(gè) if 語(yǔ)句的值。由于 X 可能在該 if

13、 語(yǔ)句之前發(fā)生了改變,因此 這個(gè) if 語(yǔ)所需的值必需對(duì)程序邏輯進(jìn)行回溯,以找到相對(duì)應(yīng)的輸入值,要測(cè)試的這 8 種組合并不一定 意味著需要設(shè)計(jì)出 8 個(gè)測(cè)試用例。實(shí)際上,用 4 個(gè)測(cè)試用例就可以覆蓋它們。下面是這些測(cè)試用例的 輸入,以及它們覆蓋的組合: A=3,B=0,X=4 覆蓋組合 1,5 A=2,B=1,X=1 覆蓋組合 2,6 A=1,B=0,X=2 覆蓋組合 3,7 A=1,B=1,X=1 覆蓋組合 4,8 Error! Reference source not found.的程序存在 4 條不同的路徑,需要 4 個(gè)測(cè)試用例,這樣的 情況純屬巧合。事實(shí)上,這 4 個(gè)用例也沒(méi)有覆蓋到每

14、條路徑,路徑 acd 就被遺漏掉了。 舉例來(lái)說(shuō),對(duì)于如下所示的判斷語(yǔ)句,盡管它只包舍兩條路徑,仍可能需要 8 個(gè)測(cè)試用例: if (x=y 在存在循環(huán)的情況下,多重條件覆蓋準(zhǔn)則所需要的測(cè)試用例的數(shù)量通常會(huì)遠(yuǎn)遠(yuǎn)小于其路徑的數(shù)量。 總的來(lái)說(shuō),對(duì)于包含每個(gè)判斷只存在一種條件的程序,最簡(jiǎn)單的測(cè)試準(zhǔn)則就是設(shè)計(jì)出足夠數(shù)量的 測(cè)試用例,實(shí)現(xiàn): (1)將每個(gè)判斷的所有結(jié)果都至少執(zhí)行一次;(2)將所有的程序入口都至少調(diào) 用一次,以確保全部的語(yǔ)句都至少執(zhí)行一次。而對(duì)于包含多重條件判斷的程序,最簡(jiǎn)單的測(cè)試準(zhǔn)則是 設(shè)計(jì)出足夠數(shù)量的測(cè)試用例,將每個(gè)判斷的所有可能的條件結(jié)果的組合,以及所有的入口點(diǎn)都至少執(zhí) 行一次(加入“

15、可能”二字,是因?yàn)橛行┙M合情況難以生成) 。 2.1.6 路徑覆蓋路徑覆蓋 在以上測(cè)試用例中,我們發(fā)現(xiàn)漏掉了路徑 acd。路徑覆蓋則要求覆蓋程序所有可能的路徑,路徑 覆蓋需要對(duì)所有可能的路徑進(jìn)行測(cè)試(包括循環(huán)、條件組合、分支選擇等)。那么需要設(shè)計(jì)大量、復(fù) 雜的測(cè)試用例,使得工作量呈指數(shù)級(jí)增長(zhǎng)。而在有些情況下,一些執(zhí)行路徑是不可能被執(zhí)行的。 從這個(gè)簡(jiǎn)單的例子可以看出,要想充分測(cè)試一個(gè)程序是很困難的。同時(shí),測(cè)試條件越強(qiáng),測(cè)試的 代價(jià)越高。測(cè)試時(shí)應(yīng)分主次,在測(cè)試代價(jià)和測(cè)試充分性之間做出平衡。 2.2 黑盒測(cè)試黑盒測(cè)試 2.2.1 等價(jià)劃分等價(jià)劃分 一個(gè)好的測(cè)試用例描述為具有相當(dāng)高的可能性發(fā)現(xiàn)某個(gè)錯(cuò)誤

16、來(lái),此外對(duì)程序的窮舉輸入測(cè)試是無(wú) 法實(shí)現(xiàn)的。因此,當(dāng)測(cè)試某個(gè)程序時(shí),我們就被限制在從所有可能的輸入中努力找出某個(gè)小的子集。 理所當(dāng)然,我們要找的子集必須是正確的,并且是可能發(fā)現(xiàn)最多錯(cuò)誤的子集。確定這個(gè)子集的一種方 法,就是要意識(shí)到一個(gè)精心挑選的測(cè)試用例還應(yīng)具備另外兩個(gè)特性: 1. 嚴(yán)格控制測(cè)試用例的增加,減少為達(dá)到“合理測(cè)試”的某些既定目標(biāo)而必須設(shè)計(jì)的其他測(cè)試 用例的數(shù)量。 2. 它覆蓋了大部分其他可能的測(cè)試用例。也就是說(shuō),它會(huì)告訴我們,使用或不使用這個(gè)特定的 輸入集合,哪些錯(cuò)誤會(huì)被發(fā)現(xiàn),哪些會(huì)被遺漏掉。 雖然這兩個(gè)特性看起來(lái)很相似,但描述的卻是截然不同的兩種思想。第一個(gè)特性意味著,每個(gè)測(cè) 試

17、用例都必須體現(xiàn)盡可能多的不同的輸入情況,以使最大限度地減少測(cè)試所需的全部用例的數(shù)量。而 第二個(gè)特性意味著應(yīng)該盡量將程序輸入范圍進(jìn)行劃分,將其劃分為有限數(shù)量的等價(jià)類,這樣就可以合 理地假設(shè)(但是,顯然不能絕對(duì)肯定)測(cè)試每個(gè)等價(jià)類的代表性數(shù)據(jù)等同于測(cè)試該類的其他任何數(shù)據(jù)。 也就是說(shuō),如果等價(jià)類的某個(gè)測(cè)試用例發(fā)現(xiàn)了某個(gè)錯(cuò)誤,該等價(jià)類的其他用例也應(yīng)該能發(fā)現(xiàn)同樣的錯(cuò) 誤。相反,如果測(cè)試用例沒(méi)能發(fā)現(xiàn)錯(cuò)誤,那么我們可以預(yù)計(jì),該等價(jià)類中的其他測(cè)試用例不會(huì)出現(xiàn)在 其他等價(jià)類中,因?yàn)榈葍r(jià)類是相互交迭的。 這兩種思想形成了稱為等價(jià)劃分的黑盒測(cè)試方法。第二種思想可以用來(lái)設(shè)計(jì)一個(gè)“令人感興趣的” 輸入條件集合以供測(cè)試,

18、而第一個(gè)思想可以隨后用來(lái)設(shè)計(jì)涵蓋這些狀態(tài)的一個(gè)最小測(cè)試用例集。 使用等價(jià)劃分方法設(shè)計(jì)測(cè)試用例主要有兩個(gè)步驟: (1)確定等價(jià)類; (2)生成測(cè)試用例。 表 2-1 等價(jià)類列舉表 輸入條件有效等價(jià)類無(wú)效等價(jià)類 1確定等價(jià)類 確定等價(jià)類是選取每一個(gè)輸入條件(通常是規(guī)格說(shuō)明中的一個(gè)句子或短語(yǔ))并將其劃分為兩個(gè)或 更多的組。可以使用 Error! Reference source not found.中的表格來(lái)進(jìn)行劃分。注意,我們確定了 兩類等價(jià)類:有效等價(jià)類代表對(duì)程序的有效輸入,而無(wú)效等價(jià)類代表的則是其他任何可能的輸入條件 (即不正確的輸入值) 。這樣,我們遵循了測(cè)試原則,即要注意無(wú)效和未預(yù)料到的輸

19、入情況。 在給定了輸入或外部條件之后,確定等價(jià)類大體上是一個(gè)啟發(fā)式的過(guò)程。下面給出了一些指導(dǎo)原 則: 1. 如果輸入條件規(guī)定了一個(gè)取值范圍(例如, “數(shù)量可以是從 1 到 999”),那么就應(yīng)確定出一 個(gè)有效等價(jià)類 (1數(shù)量999 ) , 以及兩個(gè)無(wú)效等價(jià)類 (數(shù)量999) 。 輸入條件有效等價(jià)類無(wú)效等價(jià)類 取值范圍1數(shù)量999數(shù)量999 2. 如果輸入條件規(guī)定了取值的個(gè)數(shù)(例如, “汽車可登記一至六名車主”),那么就應(yīng)確定出一 個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類(沒(méi)有車主,或車主多于六個(gè)) 。 輸入條件有效等價(jià)類無(wú)效等價(jià)類 取值個(gè)數(shù)1至六名車主沒(méi)有車主,車主多于六個(gè) 3. 如果輸入條件規(guī)定了一個(gè)輸

20、入值的集合,而且有理由認(rèn)為程序會(huì)對(duì)每個(gè)值進(jìn)行不同處理(例 如, “交通工具的類型必須是公共汽車、卡車、出租車、火車或摩托車” ) ,那么就應(yīng)為每個(gè)輸入 值確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類(例如, “拖車” ) 。 輸入條件有效等價(jià)類無(wú)效等價(jià)類 輸入值集合公共汽車,卡車,出租車,火 車,摩托車 拖車 4. 如果存在輸入條件規(guī)定了“必須是”的情況,例如“標(biāo)識(shí)符的第一個(gè)字符必須是字母”,那么 就應(yīng)確定一個(gè)有效等價(jià)類(首字符是字母)和一個(gè)無(wú)效等價(jià)類(首字符不是字母) 。 輸入條件有效等價(jià)類無(wú)效等價(jià)類 第一個(gè)字符首字符是字母首字符不是字母 如果有任何理由可以認(rèn)為程序并未等同地處理等價(jià)類中的元素,那么應(yīng)

21、該將這個(gè)等價(jià)類再劃分為 小一些的等價(jià)類。 2生成測(cè)試用例 第二步是使用等價(jià)類來(lái)生成測(cè)試用例,我們以上述第一個(gè)例子來(lái)說(shuō)明,其過(guò)程如下: 1.為每個(gè)等價(jià)類設(shè)置一個(gè)不同的編號(hào)。 2. 編寫新的測(cè)試用例,盡可能多地覆蓋那些尚未被涵蓋的有效等價(jià)類,直到所有的有效等價(jià)類 都被測(cè)試用例所覆蓋(包含進(jìn)去) 。 3. 編寫新的用例,覆蓋一個(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)輸入書籍類型(硬皮、軟皮或活頁(yè))及數(shù)量(l999 )” ,代表兩個(gè)錯(cuò)誤輸入

22、(書籍類型錯(cuò)誤,數(shù)量錯(cuò)誤)的測(cè)試用例“XYZ 0” ,很可能不會(huì)執(zhí)行對(duì)數(shù)量 的檢查,因?yàn)槌绦蛞苍S會(huì)提示“XYZ 是未知的書籍類型” ,就不檢查輸入的其余部分了。 這里將上述的第 4 個(gè)例子進(jìn)行一下擴(kuò)展,然后進(jìn)行示范說(shuō)明如何用等價(jià)類劃分的思想來(lái)設(shè)計(jì)測(cè)試 用例: 規(guī)定標(biāo)識(shí)符的第一個(gè)字符必須是字母,標(biāo)識(shí)符只能使用字母、數(shù)字和下劃線。 第一步:劃分等價(jià)類,為每一個(gè)等價(jià)類編號(hào)。 輸入條件有效等價(jià)類無(wú)效等價(jià)類 第一個(gè)字符首字符是字母(1)首字符不是字母(2) 字符限制僅使用字母、數(shù)字和下劃線(3)使用了其他字符(4) 第二步:設(shè)計(jì)測(cè)試用例,覆蓋所有有效等價(jià)類,用盡可能少的用例覆蓋最多的有效等價(jià)類。 測(cè)試用

23、例:Test_1 覆蓋(1) (3) 第三步:設(shè)計(jì)測(cè)試用例,覆蓋所有無(wú)效等價(jià)類。每新增一個(gè)測(cè)試用例,只覆蓋一個(gè)無(wú)效等價(jià)類。 測(cè)試用例:123test 覆蓋(2) 測(cè)試用例:Test#¥ 覆蓋(4) 2.2.2 邊界值分析邊界值分析 經(jīng)驗(yàn)證明,考慮了邊界條件的測(cè)試用例與其他沒(méi)有考慮邊界條件的測(cè)試用例相比,具有更高的測(cè) 試回報(bào)率。所謂邊界條件,是指輸入和輸出等價(jià)類中那些恰好處于邊界、或超過(guò)邊界、或在邊界以下 的狀態(tài)。邊界值分析方法與等價(jià)劃分方法存在兩方面的不同: 1. 與從等價(jià)類中挑選出任意一個(gè)元素作為代表不同,邊界值分析需要選擇一個(gè)或多個(gè)元素,以 便等價(jià)類的每個(gè)邊界都經(jīng)過(guò)一次測(cè)試。 比如要求輸入

24、職工年齡,規(guī)定輸入為 18 45。根據(jù)等價(jià)類劃分思想,一個(gè)有效等價(jià)類:18 = 年齡 =45 ,兩個(gè)無(wú)效等價(jià)類:年齡45。這樣選取 10 ,30 ,50 即可滿足覆蓋。但是等 價(jià)類的思想沒(méi)有從邊界值方面來(lái)分析問(wèn)題,從邊界值角度分析,我們就會(huì)再添加 17、18、19 、44、45、46 這樣的邊界值。 2. 與僅僅關(guān)注輸入條件(輸入空間)不同,還需要考慮從結(jié)果空間(輸出等價(jià)類)設(shè)計(jì)測(cè)試用 例。 比如 ATM 機(jī)取款手續(xù)費(fèi)為取款額%1,最低 2 元,最高 50 元。從輸出等價(jià)類來(lái)考慮邊界值,就 要設(shè)計(jì)用例來(lái)測(cè)試手續(xù)費(fèi)會(huì)不會(huì)低于 2 元,會(huì)不會(huì)高于 50 元。 很難提供一份如何進(jìn)行邊界值分析的“詳細(xì)說(shuō)明 ,因?yàn)檫@種方法需要一定程度的創(chuàng)造性,以 及對(duì)問(wèn)題采取一定程度的特殊處理

溫馨提示

  • 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)論