軟件工程第九章_第1頁(yè)
軟件工程第九章_第2頁(yè)
軟件工程第九章_第3頁(yè)
軟件工程第九章_第4頁(yè)
軟件工程第九章_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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è)試用例,以便覆蓋每一個(gè)條件、每一個(gè)路徑和每一個(gè)語(yǔ)句 ,從而以最少的代價(jià)發(fā)現(xiàn)盡可能多的錯(cuò)誤。白盒測(cè)試原則:保證程序中每一獨(dú)立的路徑至少執(zhí)行一次;保證所有判定的每一個(gè)分支至少執(zhí)行一次;保證每個(gè)判定表達(dá)式中每個(gè)條件的所有可能結(jié)果至少出現(xiàn)一次;保證每一循環(huán)都在邊界條件和一般條件至少各執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。幾種典型的白盒測(cè)試技術(shù)1.邏輯覆蓋1)語(yǔ)句覆蓋2)判定覆蓋3)條件覆蓋4)判定/條件覆蓋5)條件組合覆蓋6)路徑覆蓋可以設(shè)計(jì)如下兩組數(shù)據(jù)以滿足判定覆蓋:x=3,y=0,z=1 (通過(guò)路徑 abce);x=2,y=1,z=2 (通過(guò)路徑 acde)。條件覆蓋定義

2、:設(shè)計(jì)足夠的測(cè)試用例,使每個(gè)判定表達(dá)式中的每個(gè)條件的每種可能值都至少出現(xiàn)一次共有 4 個(gè)條件:x 1,y = 0,x = 2,z 1。條件覆蓋要求設(shè)計(jì)測(cè)試用例,覆蓋第一個(gè)判定表達(dá)式的x 1,y = 0,x W 1,y#0等各種結(jié)果,并覆 蓋第二個(gè)判定表達(dá)式的x = 2,z 1,x豐2,z W 1等各種結(jié)果。設(shè)計(jì)如下兩組測(cè)試用例,可以滿足條件覆蓋的標(biāo)準(zhǔn):x=2,y=0,z=3(覆蓋 x1, y=0,x=2,z1,通過(guò)路徑 abcde);x=1, y=1, z=1(覆蓋 xW1, y#0, x#2, zW1,通過(guò)路徑 ace)。但是,如果設(shè)計(jì)如下一組測(cè)試用例:x=1, y=0,z=3(覆蓋 xW1

3、, y=0,x#2, z1,通過(guò)路徑 acde);x=2, y=1, z=1(覆蓋 x1, y#0, x=2,zW1,通過(guò)路徑 ace)。雖滿足條件覆蓋,但不滿足語(yǔ)句覆蓋和判定覆蓋判定/條件覆蓋x=2, y=0, z=3(覆蓋 x1, y=0,x=2,z1,通過(guò)路徑 abcde);x=1, y=1, z=1(覆蓋 x1, y#0, x#2, zW1,通過(guò)路徑 ace)。條件組合覆蓋兩個(gè)判定表達(dá)式中含有4個(gè)條件,共有8種組合:x1, y=0; x1, y#0;x1, y=0; x1, y#0;x=2, z1; x=2, z1;x#2, z1;xN2, z1ox=2, y=0, z=3 ;覆蓋條件

4、組合和,通過(guò)路徑abcde;x=2, y=1, z=1 ;覆蓋條件組合和,通過(guò)路徑acde;x=0, y=0, z=3 ;覆蓋條件組合和,通過(guò)路徑acde;x=1, y=1, z=1 ;覆蓋條件組合和,通過(guò)路徑ace。但未通過(guò)路徑abce。路徑覆蓋共有4條路徑,設(shè)計(jì)以下4組測(cè)試用例,就可以覆蓋這4條路徑:x=2, y=0, z=3;覆蓋路徑 abcdex=2, y=1, z=1;覆蓋路徑 acdex=1, y=1, z=1 ;覆蓋路徑 acex=3, y=0, z=1;覆蓋路徑 abce幾種典型的白盒測(cè)試技術(shù)2.基本路徑測(cè)試其主要思想是根據(jù)軟件詳細(xì)設(shè)計(jì)的過(guò)程性描述或源代碼中的控制流程求出程序的

5、環(huán)形復(fù)雜性度量,然后用此 度量確定程序的基本路徑集合,并由此導(dǎo)出一組測(cè)試用例來(lái)覆蓋該集合中的每一個(gè)獨(dú)立的路徑,從而可以保 證每個(gè)語(yǔ)句至少執(zhí)行一次例:試用基本路徑測(cè)試法對(duì)如下所示的程序流程圖設(shè)計(jì)測(cè)試用例。該例子描述了最多輸入50個(gè)值(以-1作為 輸入結(jié)束標(biāo)志),計(jì)算其中有效的學(xué)生分?jǐn)?shù)的個(gè)數(shù)、總分?jǐn)?shù)和平均值。PROCEDURE averageINTERFACE RETURNS average, sum, n1; *n1 為有效成績(jī)的個(gè)數(shù)。*INTERFACE ACCEPTS score ;TYPE score1, 50 IS SCALAR ARRAY;TYPE average, n1, n2, s

6、um IS SCALAR; *n2 為輸入值的個(gè)數(shù)。*TYPE i IS INTEGER;i = 1 ; n1=n2=0; sum=0;DO WHILE (score i - 1) AND (n2=0) AND (score i 0THEN average = sum/n1 ;ELSE average = - 1;END IF;END averageANI* n2corenl 0a vem 整專 suin. ul0 AND scoreANI* n2corenl 0a vem 整專 suin. ul0 AND scorenl=nl+1 sinn= sinn+ s core 國(guó)i =L iil=n

7、2=0. siun=0開始步驟2步驟2:據(jù)流圖確定環(huán)形復(fù)雜性度量V (G):1)V (G) =E- N +2 = 16 - 12 + 2 = 6 ;其中E為流圖中的邊數(shù),N為結(jié)點(diǎn)數(shù);2)V(G)= 6 (個(gè)區(qū)域);3)V(G)= P + 1 = 5 + 1 = 6 ;其中P為謂詞結(jié)點(diǎn)的個(gè)數(shù)。在流圖中,結(jié)點(diǎn)2、3、5、6、9是謂詞結(jié)點(diǎn)。步驟3:確定基本路徑集合(即獨(dú)立路徑集合)。一條獨(dú)立路徑是指,和其他的獨(dú)立路徑相比,至少引入一個(gè) 新處理語(yǔ)句或一個(gè)新判斷的程序通路。V(G)值正好等于該程序的獨(dú)立路徑的條數(shù)。于是可確定6條獨(dú)立的解:可按如下步 驟設(shè)計(jì)測(cè)試用 例:步驟1:根據(jù)詳 綱設(shè)計(jì)或代碼 導(dǎo)出過(guò)

8、程,averaged勺流圖 o路徑:路徑 1: 12.91012路徑 2: 1291112路徑 3: 12391012路徑 4: 1234582.路徑 5: 12345682.路徑 6: 123456782.步驟4:為每一條獨(dú)立路徑各設(shè)計(jì)一組測(cè)試用例,以便強(qiáng)迫程序沿著該路徑至少執(zhí)行一次。路徑1的測(cè)試用例:scorek=有效分?jǐn)?shù)值,當(dāng)k i ;score i = 1 ,2i50;期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分averageo路徑2的測(cè)試用例:score 1 = 1 ;期望的結(jié)果:average = - 1 ,其他量保持初值。路徑3的測(cè)試用例:輸入多于50個(gè)

9、有效分?jǐn)?shù),即試圖處理51個(gè)分?jǐn)?shù),要求前51個(gè)為有效分?jǐn)?shù);期望結(jié)果:n1=50、且算出正確的總分和平均分。路徑4的測(cè)試用例:score i =有效分?jǐn)?shù),當(dāng)i50;score k 0,k i ;期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分averageo路徑5的測(cè)試用例:score i =有效分?jǐn)?shù),當(dāng)i100,k i ;期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分averageo路徑6的測(cè)試用例:score i =有效分?jǐn)?shù),當(dāng)i50;期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分averageo1、下面是一段求最大值的程序

10、,其中datalist是數(shù)據(jù)表,n是datalist的長(zhǎng)度。int GetMax(int n, int datalist)int k=0;for ( int j=1; j datalistk ) k=j;return k;(1)畫出該程序的控制流圖,并計(jì)算其McCabe環(huán)路復(fù)雜性。(2)用基本路徑覆蓋法給出測(cè)試路徑。(3)為各測(cè)試路徑設(shè)計(jì)測(cè)試用例。解:1.控制流圖如下,McCabe環(huán)路復(fù)雜性為3。預(yù)期結(jié)果:k=0Path2:取 n=2, datalist0 = 1, datalist1 = 0,預(yù)期結(jié)果:k=0Path3:取 n=2, datalist0 = 0, datalist1 = 1,

11、預(yù)期結(jié)果:k=11、假設(shè)某程序讀入三個(gè)整數(shù),分別解釋為三角形的各邊,并據(jù)此打印信息,說(shuō)明三角形是普通的、等腰的或 等邊的。為此程序設(shè)計(jì)一組有效的測(cè)試用例。2、設(shè)計(jì)并實(shí)現(xiàn)上題說(shuō)明的程序(必要的地方增加出錯(cuò)處理),用基本路徑測(cè)試法設(shè)計(jì)測(cè)試用例,實(shí)際測(cè)試和 調(diào)試后總結(jié)所得到的結(jié)果解:1)程序流程圖如下:I開始 1 1 含入孔加口/解:1)程序流程圖如下:I#include math.h main( )TTJ int a ,b , c;結(jié)束printf (please input a , b , c:);scanf (%d%d%d , &a , &b , &c );while ( a=0 II b=0

12、 II c 0!nplease input a , b , c:);scanf (%d%d%d ,&a , &b , &c );if ( a+b = c ) printf (-It is nofna)t riangle! else if ( a=b )if ( a=c ) printf ( It is a equilateral triangle!n );elseprintf (It is a isosceles triangle!n );else if (a=c )printf (It is a isosceles triangle!n );else if (b=c )printf (It

13、is a isosceles triangle!n );elseprintf (It is a general triangle!n );程序圖(流圖)如下:求出巡回秩數(shù):V (G) =E-N+2=26-18+2=10V (G) =P+1=9+1=10其中結(jié)點(diǎn)2、3、4、6、7、9、10、13、15是謂詞結(jié)點(diǎn)V(G)=10 (個(gè)區(qū)域)確定基本路徑集合(10條)路徑1:1-2-5-2路徑2:1-2-3-5-2路徑3:1-2-3-4-5-2路徑4:1-2-3-4-6-8 -18路徑5:1-2-3-4-6-7 -8-18路徑6:1-2-3-4-6-7 -9-10 -11 -18路徑7:1-2-3-4

14、-6-7 -9-10-12-18路徑8:1-2-3-4-6-7 -9-13-14-18路徑9:1-2-3-4-6-7 -9-13-15-16-18路徑10:1-2-3-4-6-7 -9-13 -15 -17 -186)為每一條獨(dú)立路徑設(shè)計(jì)設(shè)計(jì)用例:路徑1的測(cè)試用例:a = - 3, b = 4, c = 5;期望結(jié)果:輸出出錯(cuò):a , b , c must be 0!提示輸入:please input a , b , c:路徑2的測(cè)試用例:a = 3 , b = - 4 , c = 5 ;期望結(jié)果:輸出出錯(cuò):a , b , c must be 0!提示輸入:please input a , b

15、 , c:路徑3的測(cè)試用例:a = 3 , b = 4 , c = - 5 ;期望結(jié)果:輸出出錯(cuò):a , b , c must be 0!提示輸入:please input a , b , c:路徑4的測(cè)試用例:a = 3 , b = 1 , c = 5 ;期望結(jié)果:輸出:It is not a triangle!路徑5的測(cè)試用例:a = 3 , b = 7 , c = 2;期望結(jié)果:輸出:It is not a triangle!1R2R10131510R5R8R7R9121416181路徑6的測(cè)試用例:a = 3 , b = 3 , c = 3 ;1R2R10131510R5R8R7R9121416181期望結(jié)果:輸出:It is a equilateral triangle!路徑7的測(cè)試用例:a = 3 , b = 3 , c = 5 ;期望

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論