白盒與黑盒測(cè)試_第1頁(yè)
白盒與黑盒測(cè)試_第2頁(yè)
白盒與黑盒測(cè)試_第3頁(yè)
白盒與黑盒測(cè)試_第4頁(yè)
白盒與黑盒測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩67頁(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、軟件工程學(xué)科研究生課程 軟件測(cè)試技術(shù)軟件測(cè)試基本概念軟件測(cè)試方法的分類軟件測(cè)試技術(shù)基礎(chǔ)軟件測(cè)試技術(shù)基礎(chǔ)軟件測(cè)試流程軟件測(cè)試過(guò)程性能白盒測(cè)試/黑盒測(cè)試什么是白盒測(cè)試 已知產(chǎn)品的詳細(xì)設(shè)計(jì)過(guò)程,可以通過(guò)測(cè)試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否已經(jīng)通過(guò)檢查。又稱Structure Based Testing或Structural Testing白盒測(cè)試的主要方法 靜態(tài)方法: 代碼審查 靜態(tài)結(jié)構(gòu)分析法 動(dòng)態(tài)方法: 邏輯覆蓋方法 基本路徑覆蓋 域測(cè)試 符號(hào)測(cè)試、Z路徑覆蓋 程序變異控制流測(cè)試(第4章)是通過(guò)對(duì)程序邏輯結(jié)構(gòu)的遍歷實(shí)現(xiàn)程序的覆蓋從覆蓋源代碼的不同程度可以分為以下六個(gè)標(biāo)準(zhǔn): 語(yǔ)

2、句覆蓋 判定覆蓋(又稱為分支覆蓋) 條件覆蓋 判定-條件覆蓋(又稱為分支-條件覆蓋) 條件組合覆蓋 路徑覆蓋intlogicExample(intx,inty)intmagic=0;if(x0&y0)magic=x+y+10;/語(yǔ)句塊1elsemagic=x+y-10;/語(yǔ)句塊2if(magic0 & y0)中的“&”被程序員錯(cuò)誤地寫(xiě)成了“|”,即if(x0| y0),使用上面設(shè)計(jì)出來(lái)的一組測(cè)試用例來(lái)進(jìn)行測(cè)試,仍然可以達(dá)到100%的語(yǔ)句覆蓋,所以語(yǔ)句覆蓋無(wú)法發(fā)現(xiàn)上述的邏輯錯(cuò)誤在六種邏輯覆蓋標(biāo)準(zhǔn)中,語(yǔ)句覆蓋標(biāo)準(zhǔn)是最弱的。判定覆蓋也叫分支覆蓋,即設(shè)計(jì)若干測(cè)試用例,使得程序中

3、的每個(gè)判定至少都獲得一次“真”值和“假”值,也就是使程序中的每個(gè)取“真”分支和“假”分支至少均執(zhí)行一次判定覆蓋比語(yǔ)句覆蓋要多幾乎一倍的測(cè)試路徑,當(dāng)然也就具有比語(yǔ)句覆蓋更強(qiáng)的測(cè)試能力同樣判定覆蓋也具有和語(yǔ)句覆蓋一樣的簡(jiǎn)單性,無(wú)須細(xì)分每個(gè)判定就可以得到測(cè)試用例一般做白盒測(cè)試不會(huì)直接根據(jù)源代碼,而是根據(jù)流程圖來(lái)設(shè)計(jì)測(cè)試用例和編寫(xiě)測(cè)試代碼,在沒(méi)有設(shè)計(jì)文檔時(shí),要根據(jù)源代碼畫(huà)出流程圖: 數(shù)據(jù)P1P2路徑x=3, y=3TFa-b-e-fx=-3, y=0FTa-c-d-f測(cè)試用例:兩個(gè)判斷的取真、假分支都已經(jīng)被執(zhí)行過(guò),所以滿足了判斷覆蓋的標(biāo)準(zhǔn)測(cè)試的充分性:假設(shè)第一個(gè)判斷語(yǔ)句if(x0 & y0)中

4、的“&”被程序員錯(cuò)誤地寫(xiě)成了“|”,即if(x0| y0),使用上面設(shè)計(jì)出來(lái)的一組測(cè)試用例來(lái)進(jìn)行測(cè)試,仍然可以達(dá)到100%的語(yǔ)句覆蓋,所以判斷覆蓋無(wú)法發(fā)現(xiàn)上述的邏輯錯(cuò)誤跟語(yǔ)句覆蓋相比:由于可執(zhí)行語(yǔ)句要不就在判定的真分支,要不就在假分支上,所以,只要滿足了判定覆蓋標(biāo)準(zhǔn)就一定滿足語(yǔ)句覆蓋標(biāo)準(zhǔn),反之則不然。因此,判定覆蓋比語(yǔ)句覆蓋更強(qiáng)條件覆蓋是指設(shè)計(jì)足夠多的測(cè)試用例,使得程序中每個(gè)判定中包含的每一個(gè)條件的可能取值(真/ /假)都至少被執(zhí)行一次條件覆蓋與判定覆蓋相比較,增加了對(duì)符合判定情況的測(cè)試,增加了測(cè)試路徑。要達(dá)到條件覆蓋,需要足夠多的測(cè)試用例,但條件覆蓋并不能保證判定覆蓋一般做白盒測(cè)試不

5、會(huì)直接根據(jù)源代碼,而是根據(jù)流程圖來(lái)設(shè)計(jì)測(cè)試用例和編寫(xiě)測(cè)試代碼,在沒(méi)有設(shè)計(jì)文檔時(shí),要根據(jù)源代碼畫(huà)出流程圖: 測(cè)試用例:三個(gè)條件的各種可能取值都滿足了一次,因此,達(dá)到了100%條件覆蓋的標(biāo)準(zhǔn)。測(cè)試的充分性:上面的測(cè)試用例同時(shí)也到達(dá)了100%判定覆蓋的標(biāo)準(zhǔn),但并不能保證達(dá)到100%條件覆蓋標(biāo)準(zhǔn)的測(cè)試用例(組)都能到達(dá)100%的判定覆蓋標(biāo)準(zhǔn),看下面的例子:既然條件覆蓋標(biāo)準(zhǔn)不能100%達(dá)到判定覆蓋的標(biāo)準(zhǔn),也就不一定能夠達(dá)到100%的語(yǔ)句覆蓋標(biāo)準(zhǔn)數(shù)據(jù)C1C2C3P1P2路徑x=3, y=3TTTTFa-b-e-fx=-3, y=0FFFFTa-c-d-f數(shù)據(jù)C1C2C3P1P2路徑x=3, y=0TFTF

6、Fa-c-e-fx=-3, y=5FTFFFa-c-e-f設(shè)計(jì)足夠多的測(cè)試用例,使得被測(cè)試程序中的每個(gè)判斷本身的判定結(jié)果(真假)至少滿足一次,同時(shí),每個(gè)邏輯條件的可能值也至少被滿足一次。即同時(shí)滿足100%判定覆蓋和100%條件覆蓋的標(biāo)準(zhǔn)一般做白盒測(cè)試不會(huì)直接根據(jù)源代碼,而是根據(jù)流程圖來(lái)設(shè)計(jì)測(cè)試用例和編寫(xiě)測(cè)試代碼,在沒(méi)有設(shè)計(jì)文檔時(shí),要根據(jù)源代碼畫(huà)出流程圖: 測(cè)試用例:所有條件的可能取值都滿足了一次,而且所有的判斷本身的判定結(jié)果也都滿足了一次。測(cè)試的充分性:達(dá)到100%判定-條件覆蓋標(biāo)準(zhǔn)一定能夠達(dá)到100%條件覆蓋、100%判定覆蓋和100%語(yǔ)句覆蓋。數(shù)據(jù)C1C2C3P1P2路徑x=3, y=3T

7、TTTFa-b-e-fx=-3, y=0 FFFFTa-c-d-f設(shè)計(jì)足夠多的測(cè)試用例,使得被測(cè)試程序中的每個(gè)判斷的所有可能條件取值的組合至少被滿足一次注意:a、條件組合只針對(duì)同一個(gè)判斷語(yǔ)句內(nèi)存在多個(gè)條件的情況,讓這些條件的取值進(jìn)行笛卡爾乘積組合。b、不同的判斷語(yǔ)句內(nèi)的條件取值之間無(wú)需組合。c、對(duì)于單條件的判斷語(yǔ)句,只需要滿足自己的所有取值即可。一般做白盒測(cè)試不會(huì)直接根據(jù)源代碼,而是根據(jù)流程圖來(lái)設(shè)計(jì)測(cè)試用例和編寫(xiě)測(cè)試代碼,在沒(méi)有設(shè)計(jì)文檔時(shí),要根據(jù)源代碼畫(huà)出流程圖: 測(cè)試用例:C1和C2處于同一判斷語(yǔ)句中,它們的所有取值的組合都被滿足了一次測(cè)試的充分性: 100%滿足條件組合標(biāo)準(zhǔn)一定滿足100%

8、條件覆蓋標(biāo)準(zhǔn)和100%判定覆蓋標(biāo)準(zhǔn)。 但上面的例子中,只走了兩條路徑a-c-e-f和a-b-d-f,而本例的程序存在三條路徑(a-b-d-f/a-c-d-f/a-c-e-f),還有一條路徑是a-b-e-f,是不可能覆蓋的路徑數(shù)據(jù)C1C2C3P1P2路徑x=-3, y=0FFFFFa-c-e-fx=-3, y=2FTFFFa-c-e-fx=-3, y=0TFFFFa-c-e-fx=3, y=3TTTTTa-b-d-f設(shè)計(jì)足夠多的測(cè)試用例,使得被測(cè)試程序中的每條路徑至少被覆蓋一次一般做白盒測(cè)試不會(huì)直接根據(jù)源代碼,而是根據(jù)流程圖來(lái)設(shè)計(jì)測(cè)試用例和編寫(xiě)測(cè)試代碼,在沒(méi)有設(shè)計(jì)文檔時(shí),要根據(jù)源代碼畫(huà)出流程圖:

9、 測(cè)試用例: 所有可能的路徑都被滿足了一次測(cè)試的充分性: 由上表可見(jiàn),100%滿足路徑覆蓋,但并不一定能100%滿足條件覆蓋(C2只取到了真),但一定能100%滿足判定覆蓋標(biāo)準(zhǔn)(因?yàn)槁窂骄褪菑呐袛嗟哪硹l分支走的)數(shù)據(jù)C1C2C3P1P2路徑x=3, y=5TTTTTa-b-d-fx=0, y=2FTTFTa-c-d-f這條路徑不可能a-b-e-fx=-8, y=3FTFFFa-c-e-f普遍認(rèn)為這六種邏輯覆蓋從弱到強(qiáng)的排列順序是:語(yǔ)句覆蓋-判定覆蓋-條件覆蓋-判定-條件覆蓋-條件組合覆蓋-路徑覆蓋但經(jīng)過(guò)上面的分析,它們之間的關(guān)系實(shí)際上可以用下圖表示:(路徑覆蓋很難在下圖表示出來(lái))使用控制流圖的

10、圈復(fù)雜度導(dǎo)出的獨(dú)立路徑數(shù)作為程序的邏輯復(fù)雜度的度量并使用該度量作為指南來(lái)定義執(zhí)行路徑的基本集,從該基本集導(dǎo)出的測(cè)試用例保證對(duì)程序中的每一條執(zhí)行語(yǔ)句至少執(zhí)行一次void Sort(int iRecordNum,int iType)0 1 int x=0;2 int y=0;3 while (iRecordNum-)4 5 if(0= =iType)6 x=y+2;7 else8 if(1= =iType)9 x=y+10;10 else11 x=y+20;12 13 注意:如果在程序中遇到復(fù)合條件,例如條件語(yǔ)句中的多個(gè)布爾運(yùn)算符(邏輯OR、AND)時(shí),為每一個(gè)條件創(chuàng)建一個(gè)獨(dú)立的節(jié)點(diǎn),包含條件的節(jié)

11、點(diǎn)稱為判定節(jié)點(diǎn),從每一個(gè)判定節(jié)點(diǎn)發(fā)出兩條或多條邊。1.圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測(cè)度的軟件度量,將該度量用于計(jì)算程序的基本的獨(dú)立路徑數(shù)目,為確保所有語(yǔ)句至少執(zhí)行一次的測(cè)試數(shù)量的下界2.有以下三種方法計(jì)算圈復(fù)雜度: 流圖中區(qū)域的數(shù)量對(duì)應(yīng)于環(huán)型的復(fù)雜性; 給定流圖 G 的圈復(fù)雜度V(G),定義為V(G)=E-N+2,E 是流圖中邊的數(shù)量,N 是流圖中節(jié)點(diǎn)的數(shù)量; 給定流圖 G 的圈復(fù)雜度V(G),定義為(G)=P+1,P 是流圖G 中判定節(jié)點(diǎn)的數(shù)量。對(duì)應(yīng) 代碼的圈復(fù)雜度,計(jì)算如下: 流圖中有4個(gè)區(qū)域; V(G)=10條邊-8 節(jié)點(diǎn)+2=4 V(G)=3 個(gè)判定節(jié)點(diǎn)+1=41234根據(jù)上

12、面的計(jì)算方法,可得出四個(gè)獨(dú)立的路徑: 路徑 1:3-13 路徑 2:3-5-6-12-3-13 路徑 3:3-5-7-9-12-3-13 路徑 4:3-5-7-10-12-3-13根據(jù)上面的獨(dú)立路徑,去設(shè)計(jì)輸入數(shù)據(jù),使程序分別執(zhí)行到上面四條路徑什么是黑盒測(cè)試 把程序看作是一個(gè)不能打開(kāi)的黑盒子,在不考慮程序內(nèi)部結(jié)構(gòu)和特性的情況下,在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。 已知產(chǎn)品的用戶需求規(guī)格,可以通過(guò)測(cè)試證明整個(gè)軟件系統(tǒng)是否符合用戶的最終需求。 又稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試、或基于規(guī)格說(shuō)明的測(cè)試(Specific

13、ation Based Testing)優(yōu)勢(shì) 以用戶(調(diào)用者)的立場(chǎng)進(jìn)行的測(cè)試 不受開(kāi)發(fā)團(tuán)隊(duì)思維定勢(shì)影響 對(duì)測(cè)試人員的開(kāi)發(fā)碎片要求相對(duì)較低 相對(duì)于白盒測(cè)試,結(jié)果直觀,便于衡量 方便將測(cè)試外包給第三方,而不必將源代碼也共享給對(duì)方劣勢(shì) 測(cè)試用例可能是無(wú)窮多的(理論上雖不是,但數(shù)量過(guò)大,無(wú)法在合理時(shí)間內(nèi)執(zhí)行所有測(cè)試用例) 復(fù)現(xiàn)缺陷、查找原因難 成本、代價(jià)高1、三角形問(wèn)題 輸入三個(gè)整數(shù)a、b、c,分別作為三角形的三條邊,現(xiàn)通過(guò)程序判斷由三條邊構(gòu)成的三角形的類型為等邊三角形、等腰三角形、一般三角形(特殊的還有直角三角形),以及構(gòu)不成三角形。 現(xiàn)在要求輸入三個(gè)整數(shù)a、b、c,必須滿足以下條件: 條件1 1

14、a100 條件4 ab+ c 條件2 1b100 條件5 ba+ c 條件3 1c100 條件6 ca+ b 如果輸入值a、b、c不滿足條件1、條件2和條件3 ,程序給出“邊的取值超出允許范圍”的信息。如果輸入值a、b、c 滿足條件1、條件2和條件3,則輸出下列四種情況之一:(1)如果不滿足條件4、條件5和條件6中的一個(gè),則程序輸出為“非三角形”。(2)如果三條邊相等,則程序輸出為“等邊三角形”。(3)如果恰好有兩條邊相等,則程序輸出為“等腰三角形”。(4)如果三條邊都不相等,則程序輸出為“一般三角形”。結(jié)論結(jié)論:三角形問(wèn)題的復(fù)雜之處在于輸入與輸出之間的關(guān)系比較復(fù)雜。2、NextDate函數(shù)

15、NextDate函數(shù)說(shuō)明另一種復(fù)雜的關(guān)系,即輸入變量之間邏輯關(guān)系的復(fù)雜性。 NextDate函數(shù)包含三個(gè)變量month、day和year,函數(shù)的輸出為輸入日期后一天的日期。 要求輸入變量month、day和year均為整數(shù)值,并且滿足下列條件: 條件1 1 month 12 條件2 1 day 31 條件3 1912 year 2050結(jié)論:結(jié)論:在NextDate函數(shù)中有兩種復(fù)雜性的輸入來(lái)源,一是輸入域的復(fù)雜性,二是確定閏年的規(guī)則并要增加“額外天”。黑盒測(cè)試方法 等價(jià)類劃分 邊界值分析 錯(cuò)誤推測(cè) 因果圖 基于模型的測(cè)試等價(jià)類劃分法:把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分為若干部分(子集),

16、然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測(cè)試用例。所謂等價(jià)類是指某個(gè)輸入域的子集合。所謂等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的,它們具有等價(jià)特性,即每一類的代表性數(shù)據(jù)在測(cè)試中的作用都等價(jià)于這一類中的其它數(shù)據(jù)。這樣,對(duì)于表征該類的數(shù)據(jù)輸入將能代表整個(gè)子集合的輸入。因此,可以合理的假定: 測(cè)試某等價(jià)類的代表值就是等價(jià)于對(duì)于這一類其它值的測(cè)試。有效等價(jià)類 對(duì)產(chǎn)品規(guī)格說(shuō)明而言,是有意義的、合理的輸入數(shù)據(jù)所組成的集合 利用有效等價(jià)類,能夠檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說(shuō)明中預(yù)先規(guī)定的功能和性能無(wú)效等價(jià)類 對(duì)產(chǎn)品規(guī)格說(shuō)明而言,是無(wú)意義的、不合理的輸入數(shù)據(jù)所構(gòu)成

17、的集合 利用無(wú)效等價(jià)類,可以鑒別程序異常處理的情況,檢查被測(cè)對(duì)象的功能和性能的實(shí)現(xiàn)是否有不符合規(guī)格說(shuō)明要求的地方 根據(jù)規(guī)格說(shuō)明的定義,對(duì)輸入和輸出條件進(jìn)行分析,劃分等價(jià)類根據(jù)計(jì)算機(jī)基礎(chǔ)知識(shí),對(duì)輸入和輸出條件進(jìn)行分析,劃分等價(jià)類對(duì)每個(gè)等價(jià)類都要進(jìn)行編號(hào)按照區(qū)間劃分:在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,可以確定一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類按照數(shù)值劃分 :在規(guī)定了一組輸入數(shù)據(jù)(假設(shè)包括n個(gè)輸入值),并且程序要對(duì)每一個(gè)輸入值分別進(jìn)行處理的情況下,可確定n個(gè)有效等價(jià)類(每個(gè)值確定一個(gè)有效等價(jià)類)和一個(gè)無(wú)效等價(jià)類按照數(shù)值集合劃分 :在輸入條件規(guī)定了輸入值的集合或規(guī)定了“必須如何”的條件下,可以確

18、定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類(該集合有效值之外)按照限制條件或規(guī)則劃分 :在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則或限制條件的情況下,可確定一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(從不同角度違反規(guī)則)細(xì)分等價(jià)類:在確知已劃分的等價(jià)類中各元素在程序中的處理方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步劃分為更小的等價(jià)類,并建立等價(jià)類表討論:針對(duì)Windows自帶的計(jì)算器的加法功能進(jìn)行測(cè)試,僅限兩個(gè)數(shù)相加 請(qǐng)?zhí)貏e注意按輸出域劃分等價(jià)類針對(duì)輸入的2個(gè)數(shù): 有效等價(jià)類:正數(shù),負(fù)數(shù),0 無(wú)效等價(jià)類:字符(常用和特殊),超出計(jì)算器能接收的輸入范圍的數(shù)針對(duì)輸出: 有效等價(jià)類:正數(shù),負(fù)數(shù),0 無(wú)效等價(jià)類:數(shù)字溢出完

19、備測(cè)試、避免冗余劃分等價(jià)類重要的是:集合的劃分,劃分為互不相交的一組子集,而子集的并是整個(gè)集合并是整個(gè)集合:完備性子集互不相交:保證一種形式的無(wú)冗余性同一類中標(biāo)識(shí)(選擇)一個(gè)測(cè)試用例,同一等價(jià)類中,往往處理相同,相同處理映射到相同的執(zhí)行路徑三角形問(wèn)題 輸入三個(gè)整數(shù)a、b、c,分別作為三角形的三條邊,現(xiàn)通過(guò)程序判斷由三條邊構(gòu)成的三角形的類型為等邊三角形、等腰三角形、一般三角形(特殊的還有直角三角形),以及構(gòu)不成三角形。 分析題目中給出和隱含的對(duì)輸入條件的要求: (1)整數(shù) (2)三個(gè)數(shù) (3)非零數(shù) (4)正數(shù) (5)兩邊之和大于第三邊 (6)等腰 (7)等邊 如果 a 、 b 、 c 滿足條件

20、( 1 ) ( 4 ),則輸出下列四種情況之一: 1)如果不滿足條件(5),則程序輸出為 非三角形 。 2)如果三條邊相等即滿足條件(7),則程序輸出為 等邊三角形 。 3)如果只有兩條邊相等、即滿足條件(6),則程序輸出為 等腰三角形 。 4)如果三條邊都不相等,則程序輸出為 一般三角形 。保險(xiǎn)公司計(jì)算保費(fèi)費(fèi)率的程序保險(xiǎn)公司計(jì)算保費(fèi)費(fèi)率的程序 某保險(xiǎn)公司的人壽保險(xiǎn)的保費(fèi)計(jì)算方式為: 投保額保險(xiǎn)費(fèi)率 其中,保險(xiǎn)費(fèi)率依點(diǎn)數(shù)不同而有別,10點(diǎn)及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ī)則如下:年齡 性別婚姻撫養(yǎng)人數(shù)

21、 2039 4059 其它 M F 已婚 未婚 1人扣0.5點(diǎn) 最多扣3點(diǎn)(四舍五入取整) 6點(diǎn) 4點(diǎn) 2點(diǎn) 5點(diǎn) 3點(diǎn) 3點(diǎn) 5點(diǎn)(1)分析程序規(guī)格說(shuō)明中給出和隱含的對(duì)輸入條件的要求,列出等價(jià)類表(包括有效等價(jià)類和無(wú)效等價(jià)類)。年齡:一位或兩位非零整數(shù),值的有效范圍為199性別:一位英文字符,只能取值M或F婚姻:字符,只能取值已婚或未婚撫養(yǎng)人數(shù):空白或一位非零整數(shù)(19)點(diǎn)數(shù) :一位或兩位非零整數(shù),值的范圍為199(2)根據(jù)(1)中的等價(jià)類表,設(shè)計(jì)能覆蓋所有等價(jià)類的 測(cè)試用例。輸入條件輸入條件有效等價(jià)類有效等價(jià)類編號(hào)編號(hào)無(wú)效等價(jià)類無(wú)效等價(jià)類編號(hào)編號(hào)年齡年齡2039歲歲14059歲歲2119歲

22、歲6099歲歲3小于小于112大于大于9913性別性別單個(gè)英文字符單個(gè)英文字符4非英文字符非英文字符14非單個(gè)英文字符非單個(gè)英文字符15M5除除M和和F之外的之外的其它單個(gè)字符其它單個(gè)字符16F6婚姻婚姻已婚已婚7除除已婚已婚和和未婚未婚之外的其它字符之外的其它字符17未婚未婚8撫養(yǎng)人數(shù)撫養(yǎng)人數(shù)空白空白9除空白和數(shù)字之外除空白和數(shù)字之外的其它字符的其它字符1816人人10小于小于11969人人11大于大于920對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法對(duì)等價(jià)類之間的邊界值及其附近的值進(jìn)行的測(cè)試方法是對(duì)等價(jià)類劃分法的補(bǔ)充無(wú)數(shù)的測(cè)試實(shí)踐表明,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而

23、不是在其內(nèi)部。因此,針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,通常會(huì)取得很好的測(cè)試效果。簡(jiǎn)單的邊界分析產(chǎn)生6n+1測(cè)試用例XYminminmaxmaxn=2對(duì)16-bit 的整數(shù)而言 32767 和 -32768 是邊界屏幕上光標(biāo)在最左上、最右下位置報(bào)表的第一行和最后一行數(shù)組元素的第一個(gè)和最后一個(gè)循環(huán)的第 0 次、第 1 次和倒數(shù)第 2 次、最后一次項(xiàng)邊界值測(cè)試用例的設(shè)計(jì)思路字符起始-1個(gè)字符/結(jié)束+1個(gè)字符假設(shè)一個(gè)文本輸入?yún)^(qū)域允許輸入1個(gè)到255個(gè) 字符,輸入1個(gè)和255個(gè)字符作為有效等價(jià)類;輸入0個(gè)和256個(gè)字符作為無(wú)效等價(jià)類,這幾個(gè)數(shù)值都屬于邊界條件值。數(shù)值最小值-1/最大值+1假設(shè)某軟件的數(shù)據(jù)輸入

24、域要求輸入5位的數(shù)據(jù)值,可以使用10000作為最小值、99999作為最大值;然后使用剛好小于5位和大于5位的 數(shù)值來(lái)作為邊界條件。空間小于空余空間一點(diǎn)/大于滿空間一點(diǎn)例如在用U盤(pán)存儲(chǔ)數(shù)據(jù)時(shí),使用比剩余磁盤(pán)空間大一點(diǎn)(幾KB)的文件作為邊界條件。邊界值分析使用與等價(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)輸

25、出錯(cuò)誤信息。等價(jià)類劃分: 可以考慮作出如下劃分: 輸入 (i)=0 輸出 (a)=0 和 (b) Error 測(cè)試用例有兩個(gè): 輸入4,輸出2。對(duì)應(yīng)于 (ii) 和 (a) 。 輸入-10,輸出0和錯(cuò)誤提示。對(duì)應(yīng)于 (i) 和 (b) 。邊界值分析: 劃分(ii)的邊界為0和最大正實(shí)數(shù);劃分(i)的邊界為最小負(fù)實(shí)數(shù)和0。由此得到以下測(cè)試用例: 輸入 最小負(fù)實(shí)數(shù) 輸入 絕對(duì)值很小的負(fù)數(shù) 輸入 0 輸入 絕對(duì)值很小的正數(shù) 輸入 最大正實(shí)數(shù)三角形問(wèn)題的邊界值分析測(cè)試用例三角形問(wèn)題的邊界值分析測(cè)試用例 在三角形問(wèn)題描述中,除了要求邊長(zhǎng)是整數(shù)外,沒(méi)有給出其它的限制條件。在此,我們將三角形每邊邊長(zhǎng)的取范圍

26、值設(shè)值為1, 100 。 說(shuō)明:如果程序規(guī)格說(shuō)明中沒(méi)有顯式地給出邊界值,則可以在設(shè)計(jì)測(cè)試用例前先設(shè)定取值的下限值和上限值。測(cè)試用例測(cè)試用例abc預(yù)期輸出預(yù)期輸出Test 1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等腰三角形等腰三角形等邊三角形等邊三角形等腰三角形等腰三角形非三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形非三角形非三角形Test10Test11Test12Test13129910060605

27、05060605050等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形非三角形非三角形有效等價(jià)類:NextDate函數(shù)的邊界值分析測(cè)試用例函數(shù)的邊界值分析測(cè)試用例 在NextDate函數(shù)中,隱含規(guī)定了變量month和變量day的取值范圍為1mouth12和1day31,并設(shè)定變量year的取值范圍為1912year2050 。測(cè)試用例測(cè)試用例mouth dayyear預(yù)期輸出預(yù)期輸出Test 1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911.6.161912.6.

28、161913.6.161975.6.162049.6.162050.6.162051.6.16Test8Test9Test10Test11Test12Test13666666-112303132200120012001200120012001day超出超出1312001.6.22001.6.32001.7.1輸入日期超界輸入日期超界day超出超出131Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001Month超出超出1122001.1.162001.2.162001.11.162

29、001.12.16Month超出超出112定義:基于經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中所有可能存在的各種錯(cuò)誤, 從而有針對(duì)性的設(shè)計(jì)測(cè)試用例的方法基本思想:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測(cè)試用例: 例如, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況;輸入表格為空格或輸入表格只有一行 測(cè)試一個(gè)對(duì)線性表(比如數(shù)組)進(jìn)行排序的程序,可推測(cè)列出以下幾項(xiàng)需要特別測(cè)試的情況: 輸入的線性表為空表; 表中只含有一個(gè)元素; 輸入表中所有元素已排好序; 輸入表已按逆序排好; 輸入表中部分或全部元素相同定義:是一種形式化語(yǔ)言,是一種組合邏輯網(wǎng)絡(luò)圖。它是把輸入條件視為“因”,把輸出或程序狀態(tài)的改變視為“果”,

30、將黑盒看成是從因到果的網(wǎng)絡(luò)圖,采用邏輯圖的形式來(lái)表達(dá)功能說(shuō)明書(shū)中輸入條件的各種組合與輸出的關(guān)系。因果圖法的基本原理是通過(guò)因果圖,把用自然語(yǔ)言描述的功能說(shuō)明轉(zhuǎn)換為判定表,然后為判定表的每一列設(shè)計(jì)一個(gè)測(cè)試用例。等價(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ì),這就需要利用因果圖(邏輯模型)1

31、)4種符號(hào)分別表示了規(guī)格說(shuō)明中4種因果關(guān)系:a)恒等:若ci是1,則ei也是1;否則ei為0。b)非:若ci是1,則ei是0;否則ei是1。c)或():若c1或c2或c3是1,則ei是1;否則ei為0。“或”可有任意個(gè)輸入。d)與():若c1和c2都是1,則ei為1;否則ei為0?!芭c”也可有任意個(gè)輸入。2)因果圖中使用了簡(jiǎn)單的邏輯符號(hào),以直線聯(lián)接左右結(jié)點(diǎn)。左結(jié)點(diǎn)表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)表示輸出狀態(tài)(或稱結(jié)果)。3)Ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。Ci和ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。 4)約束:是指輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系。例如, 某些輸入條件本身不可能同時(shí)出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號(hào)標(biāo)明這些約束。A.輸入條件的約束有以下4類: E約束(異):a和b中至多有一個(gè)可能為 1,即a和b不能同時(shí)為1。 I約束(或):a、b和c中至少有一個(gè)必須是1,即 a、b 和c不能同時(shí)為0。 O約束(唯一);a和b必須有一個(gè),且僅有1個(gè)為1。R約束(要求):a是1時(shí),b必須是1,即不可能a是1時(shí)b是0。B . 輸出條件約束類型: 只有M 約束( 強(qiá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)論