版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件測(cè)試第五
章軟件測(cè)試第五章5.1軟件測(cè)試的基本概念一、軟件測(cè)試的目的和重要性 因?yàn)殚_發(fā)工作的前期不可避免地會(huì)引入錯(cuò)誤,測(cè)試的目的是為了發(fā)現(xiàn)和改正錯(cuò)誤,這對(duì)于某些涉及人的生命安全或重要的軍事、經(jīng)濟(jì)目標(biāo)的項(xiàng)目顯得尤其重要。1963年美國(guó)飛往火星的火箭爆炸,原因是FORTRAN程序:DO5I=1,3誤寫為:DO5I=1.3損失1000萬美元。1967年蘇聯(lián)“聯(lián)盟一號(hào)”宇宙飛船返回時(shí)因忽略一個(gè)小數(shù)點(diǎn),在進(jìn)入大氣層時(shí)打不開降落傘而燒毀。5.1軟件測(cè)試的基本概念一、軟件測(cè)試的目的和重要性1963二、軟件測(cè)試的特點(diǎn)1、軟件測(cè)試的開銷大 按照Boehm的統(tǒng)計(jì),軟件測(cè)試的開銷大約占總成本的30%-50%。例如:APPOLLO登月計(jì)劃,80%的經(jīng)費(fèi)用于軟件測(cè)試。2、不能進(jìn)行“窮舉”測(cè)試 只有將所有可能的情況都測(cè)試到,才有可能檢查出所有的錯(cuò)誤。但這是不可能的:例:程序P有兩個(gè)整型輸入量X、Y,輸出量為Z,在32位機(jī)上運(yùn)行。所有的測(cè)試數(shù)據(jù)組(Xi,Yi)的數(shù)目為:2
2=21毫秒執(zhí)行1次,共需5億年。323264PXYZ二、軟件測(cè)試的特點(diǎn)1、軟件測(cè)試的開銷大2、不能進(jìn)行“窮舉”測(cè)二、軟件測(cè)試的特點(diǎn)—結(jié)論3、軟件測(cè)試難度大 根據(jù)上述分析,既然不能進(jìn)行
“窮舉”測(cè)試,又要查出盡可能多的錯(cuò)誤,軟件測(cè)試工作的難度大。只有選擇— “高效的測(cè)試用例” 什么是“高效的測(cè)試用例”? 如何選擇“高效的測(cè)試用例”? 這就是本章討論的主要問題?。?!二、軟件測(cè)試的特點(diǎn)—結(jié)論3、軟件測(cè)試難度大“高效的測(cè)試用三、軟件測(cè)試的基本原則3、充分注意測(cè)試中的群集現(xiàn)象。1、盡量不由程序設(shè)計(jì)者進(jìn)行測(cè)試。2、關(guān)鍵是注重測(cè)試用例的選擇。 輸入數(shù)據(jù)的組成(輸入數(shù)據(jù)、預(yù)期的輸出結(jié)果) 既有合理輸入數(shù)據(jù),也有不合理的輸入數(shù)據(jù)。 用例既能檢查應(yīng)完成的任務(wù),也能夠檢查不應(yīng)該完成的任務(wù)。 長(zhǎng)期保存測(cè)試用例。三、軟件測(cè)試的基本原則3、充分注意測(cè)試中的群集現(xiàn)象。1、盡量5.2軟件測(cè)試方法軟件測(cè)試方法分為兩類:靜態(tài)分析、動(dòng)態(tài)測(cè)試一、靜態(tài)分析方法指以人工的、非形式化的方法對(duì)程序進(jìn)行分析和測(cè)試。 桌前檢查 代碼會(huì)審 步行檢查步行檢查時(shí),還常使用以下分析方法:①
調(diào)用圖 從語義的角度考察程序的控制路線。②數(shù)據(jù)流分析圖 檢查分析變量的定義和引用情況。5.2軟件測(cè)試方法軟件測(cè)試方法分為兩類:靜態(tài)分析、動(dòng)態(tài)測(cè)試①調(diào)用圖
無論Y為何值,都不能夠調(diào)用子程序。 READYY>0NX:=YX<0YNY調(diào)用子程序ABCDE即執(zhí)行ABC后,是不可能執(zhí)行路徑CDE的。①調(diào)用圖 無論Y為何值,都不能夠調(diào)用子程序。 READ二、動(dòng)態(tài)測(cè)試方法(1)通過選擇適當(dāng)?shù)臏y(cè)試用例,執(zhí)行程序。常用的方法:1、白盒法分析程序的內(nèi)部邏輯結(jié)構(gòu),注意選擇適當(dāng)?shù)母采w標(biāo)準(zhǔn),設(shè)計(jì)測(cè)試用例,對(duì)主要路徑進(jìn)行盡可能多的測(cè)試。2、黑盒法
不考慮程序的內(nèi)部結(jié)構(gòu)與特性,只根據(jù)程序功能或程序的外部特性設(shè)計(jì)測(cè)試用例。二、動(dòng)態(tài)測(cè)試方法(1)通過選擇適當(dāng)?shù)臏y(cè)試用例,執(zhí)行程序。2、白盒法
白盒法又稱為邏輯覆蓋法,其測(cè)試用例選擇,是按照不同覆蓋標(biāo)準(zhǔn)確定的。
語句覆蓋判定覆蓋條件覆蓋判定條件覆蓋條件組合覆蓋弱強(qiáng)白盒法
白盒法又稱為邏輯覆蓋法,其測(cè)試用例選擇,是按照不①語句覆蓋:選擇足夠的測(cè)試用例,使得程序中每個(gè)語句至少都能被執(zhí)行一次。②判定覆蓋:執(zhí)行足夠的測(cè)試用例,使得程序中每個(gè)判定至少都獲得一次“真”值和“假”值。③條件覆蓋:執(zhí)行足夠的測(cè)試用例,使得判定中的每個(gè)條件獲得各種可能的結(jié)果。④判定/條件覆蓋:執(zhí)行足夠的測(cè)試用例,使得判定中每個(gè)條件取到各種可能的值,并使每個(gè)判定取到各種可能的結(jié)果。⑤條件組合覆蓋:執(zhí)行足夠的例子,使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。白盒法常用的覆蓋標(biāo)準(zhǔn)①語句覆蓋:選擇足夠的測(cè)試用例,使得程序中每個(gè)語句至少都白盒法步驟:例:用白盒法測(cè)試以下程序段:Procedure(VARA,B,X:REAL);BEGINIF(A>1)AND(B=0)THENX:=X/A;IF(A=2)OR(X>1)THENX:=X+1END;1)選擇邏輯覆蓋標(biāo)準(zhǔn)。2)按照覆蓋標(biāo)準(zhǔn)列出所有情況。3)選擇確定測(cè)試用例。4)驗(yàn)證分析運(yùn)行結(jié)果與預(yù)期結(jié)果。邏輯結(jié)構(gòu)白盒法步驟:例:用白盒法測(cè)試以下程序段:1)選擇邏輯覆蓋標(biāo)準(zhǔn)白盒法舉例Procedure(VARA,B,X:REAL);BEGINIF(A>1)AND(B=0)THENX:=X/A;IF(A=2)OR(X>1)THENX:=X+1END;A>1ANDB=0X:=X/AA=2ORX>1X:=X+1YNYN邏輯結(jié)構(gòu)白盒法舉例Procedure(VARA,B,X:REAL1、語句覆蓋使得程序中每個(gè)語句至少都能被執(zhí)行一次。A>1ANDB=0X:=X/AA=2ORX>1X:=X+1abcde滿足語句覆蓋的情況:執(zhí)行路徑:ace選擇用例:[(2,0,4),(2,0,3)]用例格式:[輸入(A,B,X),輸出(A,B,X)]YNYN1、語句覆蓋使得程序中每個(gè)語句至少都能被執(zhí)行一次。A>1X:2、判定覆蓋使得程序中每個(gè)判定至少為TRUE或FALSE各一次。A>1ANDB=0X:=X/AA=2ORX>1X:=X+1abcde覆蓋情況:應(yīng)執(zhí)行路徑ace∧abd 或:acd∧abe選擇用例(其一):⑴[(2,0,4),(2,0,3)]ace[(1,1,1),(1,1,1)]abd⑵[(2,1,1),(2,1,2)]abe[(3,0,3),(3,1,1)]acdYYNN2、判定覆蓋使得程序中每個(gè)判定至少為TRUE或FALSE各3、條件覆蓋A>1ANDB=0X:=X/AA=2ORX>1X:=X+1abcde使得判定中的每個(gè)條件獲得各種可能的結(jié)果。應(yīng)滿足以下覆蓋情況:判定一:A>1,A≤1,B=0,B≠0判定二:A=2,A≠2,X>1,X≤1選擇用例:[(2,0,4),(2,0,3)][(1,1,1),(1,1,1)]NNYY2A≤1A≠20B=04X>11A>1A=21B≠01X≤1注意:[(1,0,3),(1,0,4)] [(2,1,1),(2,1,2)]滿足條件覆蓋,但不滿足判斷覆蓋。3、條件覆蓋A>1X:=X/AA=2X:=X+1abcde使4、判定/條件覆蓋 同時(shí)滿足判斷覆蓋和條件覆蓋。A>1ANDB=0X:=X/AA=2ORX>1X:=X+1abcde應(yīng)滿足以下覆蓋情況:條件:A>1,A≤1,B=0,B≠0 A=2,A≠2,X>1,X≤1應(yīng)執(zhí)行路徑ace∧abd 或:acd∧abe選擇用例:[(2,0,4),(2,0,3)](ace)[(1,1,1),(1,1,1)](abd)YYNN4、判定/條件覆蓋 同時(shí)滿足判斷覆蓋和條件覆蓋。A>1X:=5、條件組合覆蓋使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。A>1X:=X/AA=2X:=X+1abcdeB=0X>1YNYNYNYN編譯系統(tǒng)下的執(zhí)行情況:部分路徑未被執(zhí)行。滿足以下覆蓋情況:①A>1,B=0②A>1,B≠0③A≤1,B=0
④A≤1,B≠0⑤A=2,X>1
⑥A=2,X≤1
⑦A≠2,X>1
⑧A≠2,X≤1選擇用例:[(2,0,4),(2,0,3)]①⑤[(2,1,1),(2,1,2)]②⑥[(1,0,3),(1,0,4)]③⑦[(1,1,1),(1,1,1)]④⑧5、條件組合覆蓋使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一路徑覆蓋:選擇足夠多的測(cè)試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)行一次。STARTINPUT(A,B,C)IFA>5THENX=10ELSEX=1ENDIFIFB>10THENY=20ELSEY=2ENDIFIFC>15THENZ=30ELSEZ=3ENDIFPRINT(X,Y,Z)STOP共有8條可能的執(zhí)行路徑①三個(gè)判定表達(dá)式之值依次為假、假、假:輸入:A=1,B=1,C=1;預(yù)期輸出:X=1,Y=2,Z=3②三個(gè)判定表達(dá)式之值依次為假、假、真:輸入:A=2,B=3,C=23;預(yù)期輸出:X=1,Y=2,Z=30③三個(gè)判定表達(dá)式之值依次為假、真、假:輸入:A=3,B=12,C=6;預(yù)期輸出:X=1,Y=20,Z=3④三個(gè)判定表達(dá)式之值依次為假、真、真:輸入:A=4,B=13,C=16;預(yù)期輸出:X=1,Y=20,Z=30⑤三個(gè)判定表達(dá)式之值依次為真、假、假:輸入:A=6,B=7,C=9;預(yù)期輸出:X=10,Y=2,Z=3⑥三個(gè)判定表達(dá)式之值依次為真、假、真:輸入:A=8,B=8,C=18;預(yù)期輸出:X=10,Y=2,Z=30⑦三個(gè)判定表達(dá)式之值依次為真、真、假:輸入:A=10,B=12,C=6;預(yù)期輸出:X=10,Y=20,Z=3⑧三個(gè)判定表達(dá)式之值依次為真、真、真:輸入:A=11,B=14,C=57;預(yù)期輸出:X=10,Y=20,Z=30路徑覆蓋:選擇足夠多的測(cè)試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)二、動(dòng)態(tài)測(cè)試方法(2)等價(jià)分類法邊值分析法錯(cuò)誤推測(cè)法因果圖法(2)黑盒法
不考慮程序的內(nèi)部結(jié)構(gòu)與特性,只根據(jù)程序功能或程序的外部特性設(shè)計(jì)測(cè)試用例。二、動(dòng)態(tài)測(cè)試方法(2)等邊錯(cuò)因(2)黑盒法1、等價(jià)分類法基本思想:根據(jù)程序的I/O特性,將程序的定義域劃分為有限個(gè)等價(jià)區(qū)段—“等價(jià)類”,從等價(jià)類中選擇出的用例,具有“代表性”。等價(jià)類分為:有效等價(jià)類—對(duì)于程序的規(guī)格說明是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。無效等價(jià)類—對(duì)于程序的規(guī)格說明,是不合理的,是沒有意義的輸入數(shù)據(jù)構(gòu)成的集合。1、等價(jià)分類法基本思想:根據(jù)程序的I/O特性,將程序的定義域等價(jià)分類法步驟應(yīng)按照輸入條件(如輸入值的范圍,值的個(gè)數(shù),值的集合,輸入條件必須如何)劃分為有效等價(jià)類和無效等價(jià)類。例如:每個(gè)學(xué)生可選修1-3門課程可以劃分一個(gè)有效等價(jià)類:選修1-3門課程??梢詣澐謨蓚€(gè)無效等價(jià)類:未選修課,選修課超過3門。又如:標(biāo)識(shí)符的第一個(gè)字符必須是字母??梢詣澐譃橐粋€(gè)有效等價(jià)類:第一個(gè)字符是字母??梢詣澐忠粋€(gè)無效等價(jià)類:第一個(gè)字符不是字母。①劃分“等價(jià)類”
顯然,關(guān)鍵是如何劃分等價(jià)類A、為每個(gè)等價(jià)類編號(hào);B、使一個(gè)測(cè)試用例盡可能覆蓋多個(gè)有效等價(jià)類C、特別要注意的是:一個(gè)測(cè)試用例只能覆蓋一個(gè)無效等價(jià)類。②選擇測(cè)試用例等價(jià)分類法步驟等價(jià)分類法步驟應(yīng)按照輸入條件(如輸入值的范圍,值的個(gè)如何劃分等價(jià)類?有效等價(jià)類(合理等價(jià)類)無效等價(jià)類(不合理等價(jià)類)(1)如果輸入條件規(guī)定了取值范圍,可定義一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。例
輸入值是學(xué)生成績(jī),范圍是0~1000100有效等價(jià)類0≤成績(jī)≤100無效等價(jià)類成績(jī)>100無效等價(jià)類成績(jī)<0(2)如果輸入條件代表集合的某個(gè)元素,則可定義一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。如何劃分等價(jià)類?(1)如果輸入條件規(guī)定了取值范圍,可定義一個(gè)(3)如規(guī)定了輸入數(shù)據(jù)的一組值,且程序?qū)Σ煌斎胫底霾煌幚?,則每個(gè)允許的輸入值是一個(gè)有效等價(jià)類,并有一個(gè)無效等價(jià)類(所有不允許的輸入值的集合)。例:輸入條件說明學(xué)歷可為:???、本科、碩士、博士四種之一,則分別取這四個(gè)值作為四個(gè)有效等價(jià)類,另外把四種學(xué)歷之外的任何學(xué)歷作為無效等價(jià)類(4)如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,可確定一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。(5)如已劃分的等價(jià)類各元素在程序中的處理方式不同,則應(yīng)將此等價(jià)類進(jìn)一步劃分成更小的等價(jià)類。用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例步驟:(1)形成等價(jià)類表,每一等價(jià)類規(guī)定一個(gè)唯一的編號(hào);(2)設(shè)計(jì)一測(cè)試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類,重復(fù)這一步驟,直到所有有效等價(jià)類均被測(cè)試用例所覆蓋;(3)設(shè)計(jì)一新測(cè)試用例,使其只覆蓋一個(gè)無效等價(jià)類,重復(fù)這一步驟直到所有無效等價(jià)類均被覆蓋;(3)如規(guī)定了輸入數(shù)據(jù)的一組值,且程序?qū)Σ煌斎胫底霾煌幚砝?某報(bào)表處理系統(tǒng)要求用戶輸入處理報(bào)表的日期,日期限制在2003年1月至2008年12月,即系統(tǒng)只能對(duì)該段期間內(nèi)的報(bào)表進(jìn)行處理,如日期不在此范圍內(nèi),則顯示輸入錯(cuò)誤信息。系統(tǒng)日期規(guī)定由年、月的6位數(shù)字字符組成,前四位代表年,后兩位代表月。如何用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例,來測(cè)試程序的日期檢查功能?輸入條件有效等價(jià)類無效等價(jià)類
報(bào)表日期的類型及長(zhǎng)度6位數(shù)字字符(1)有非數(shù)字字符(4)少于6個(gè)數(shù)字字符(5)多于6個(gè)數(shù)字字符(6)年份范圍在2003~2008之間(2)小于2003(7)大于2008(8)月份范圍在1~12之間(3)“報(bào)表日期”輸入條件的等價(jià)類表小于1(9)大于12(10)例:某報(bào)表處理系統(tǒng)要求用戶輸入處理報(bào)表的日期,日期限制在20第二步:為有效等價(jià)類設(shè)計(jì)測(cè)試用例
測(cè)試數(shù)據(jù)期望結(jié)果覆蓋范圍200306等價(jià)類(1)(2)(3)輸入有效對(duì)表中編號(hào)為1,2,3的3個(gè)有效等價(jià)類用一個(gè)測(cè)試用例覆蓋:(1)6位數(shù)字字符(2)年在2003~2008之間(3)月在1~12之間第二步:為有效等價(jià)類設(shè)計(jì)測(cè)試用例測(cè)試數(shù)據(jù)第三步:為每一個(gè)無效等價(jià)類設(shè)至少設(shè)計(jì)一個(gè)測(cè)試用例
測(cè)試數(shù)據(jù)期望結(jié)果覆蓋范圍003MAY等價(jià)類(4)輸入無效20035等價(jià)類(5)輸入無效2003005等價(jià)類(6)輸入無效200105等價(jià)類(7)輸入無效200905等價(jià)類(8)輸入無效200300等價(jià)類(9)輸入無效200313等價(jià)類(10)輸入無效不能出現(xiàn)相同的測(cè)試用例本例的10個(gè)等價(jià)類至少需要8個(gè)測(cè)試用例第三步:為每一個(gè)無效等價(jià)類設(shè)至少測(cè)試數(shù)據(jù)2、邊值分析法
基本思想:選擇等價(jià)類的邊緣值作為測(cè)試用例,讓每個(gè)等價(jià)類的邊界都得到測(cè)試,選擇測(cè)試用例既考慮輸入亦考慮輸出。
分析步驟:
A、先劃分等價(jià)類。
B、選擇測(cè)試用例,測(cè)試等價(jià)類邊界。邊界選擇原則:
A、按照輸入值范圍的邊界。
B、按照輸入/輸出值個(gè)數(shù)的邊界。
C、輸出值域的邊界。
D、輸入/輸出有序集的邊界。2、邊值分析法基本思想:選擇等價(jià)類的邊緣值作為測(cè)試用例,A、按照輸入值范圍的邊界。例如:輸入值的范圍是-1.0至1.0,則可選擇用例–1.0、1.0、-1.001、1.001。
B、按照輸入/輸出值個(gè)數(shù)的邊界。
例如:輸入文件可有1-255個(gè)記錄,則設(shè)計(jì)用例:文件的記錄數(shù)為0個(gè)、1個(gè)、255個(gè)、256個(gè)。
C、輸出值域的邊界。
例如:檢索文獻(xiàn)摘要,最多4篇。設(shè)計(jì)用例:可檢索0篇、1篇、4篇,和5篇(錯(cuò)誤)。
D、輸入/輸出有序集(如順序文件、線性表)的邊界。
應(yīng)選擇第一個(gè)元素和最后一個(gè)元素。邊值分析法舉例A、按照輸入值范圍的邊界。邊值分析法舉例3、錯(cuò)誤推測(cè)法 憑經(jīng)驗(yàn)或直覺推測(cè)可能的錯(cuò)誤,列出程序中可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,選擇測(cè)試用例。 把輸入條件視為“因”,把輸出條件視為“果”,將黑盒看成是從因到果的網(wǎng)絡(luò)圖,采用邏輯圖的形式來表達(dá)功能說明書中輸入條件的各種組合與輸出的關(guān)系。根據(jù)這種關(guān)系可選擇高效的測(cè)試用例。因果圖是一種形式化語言,是一種組合邏輯網(wǎng)絡(luò)圖。4、因果圖法3、錯(cuò)誤推測(cè)法 憑經(jīng)驗(yàn)或直覺推測(cè)可能的錯(cuò)誤,列出程序中可5.3軟件測(cè)試的步驟測(cè)試步驟及策略
所有測(cè)試過程都應(yīng)采用綜合測(cè)試策略;即先作靜態(tài)分析,再作動(dòng)態(tài)測(cè)試。并事先制訂測(cè)試計(jì)劃。測(cè)試過程通??煞?步進(jìn)行:?jiǎn)卧獪y(cè)試單元測(cè)試單元測(cè)試被測(cè)模塊被測(cè)模塊集成測(cè)試設(shè)計(jì)信息已測(cè)試的模塊確認(rèn)測(cè)試已集成的模塊軟件需求系統(tǒng)測(cè)試已確認(rèn)的軟件可交付的軟件系統(tǒng)其他元素5.3軟件測(cè)試的步驟測(cè)試步驟及策略單元單元單元被測(cè)模塊被測(cè)一、模塊測(cè)試(ModuleTesting)1、測(cè)試內(nèi)容模塊模塊接口測(cè)試局部數(shù)據(jù)結(jié)構(gòu)測(cè)試重要路徑測(cè)試錯(cuò)誤處理測(cè)試邊界條件測(cè)試I/O參數(shù)值的個(gè)數(shù)、類型、次序、格式是否正確,I/O文件屬性、操作是否正確等。數(shù)據(jù)說明是否正確、一致,變量及其初值定義是否正確等。檢查“錯(cuò)誤處理程序”本身的錯(cuò)誤。邊界條件常包括循環(huán)邊界,最大最小值、控制流中等于、大于、小于的比較值等。重要路徑通常是指完成模塊功能的主要路徑,一般是控制結(jié)構(gòu)。也稱單元測(cè)試(unittesting)一、模塊測(cè)試(ModuleTesting)1、測(cè)試內(nèi)容模塊2、模塊測(cè)試步驟 考慮到被測(cè)模塊與其它模塊的聯(lián)系,因此測(cè)試時(shí)需要使用兩類輔助模塊來模擬其他模塊。
驅(qū)動(dòng)模塊(driver)—模擬主程序功能,用于向被測(cè)模塊傳遞數(shù)據(jù),接收、打印從被測(cè)模塊返回的數(shù)據(jù)。
樁模塊(stub)—又稱為假模塊,用于模擬那些由被測(cè)模塊所調(diào)用的下屬模塊功能。 一般,驅(qū)動(dòng)模塊比樁模塊容易設(shè)計(jì)。但都是額外開銷。測(cè)試方法以白盒法為主。被測(cè)模塊驅(qū)動(dòng)模塊樁模塊樁模塊樁模塊2、模塊測(cè)試步驟 考慮到被測(cè)模塊與其它模塊的聯(lián)系,因此測(cè)試時(shí)二、組裝測(cè)試(IntegrationTesting)1、組裝測(cè)試的任務(wù)①確定模塊組裝方案,將經(jīng)過測(cè)試的模塊組裝為一個(gè)完整的系統(tǒng)。組裝方案分為漸增式及非漸增式。②測(cè)試方法以黑盒法為主,按照組裝方案進(jìn)行測(cè)試。 也稱為聯(lián)合測(cè)試或集成測(cè)試,重點(diǎn)測(cè)試模塊的接口部分,需設(shè)計(jì)測(cè)試過程使用的驅(qū)動(dòng)模塊或樁模塊。問題:漸增式與非漸增式各有何優(yōu)、缺點(diǎn)?為什么通常采用漸增式?二、組裝測(cè)試(IntegrationTesting)1、組2、漸增式組裝測(cè)試 漸增式是先進(jìn)行模塊測(cè)試,然后將這些模塊逐步組裝成較大的系統(tǒng),每連接一個(gè)模塊進(jìn)行一次測(cè)試。兩種方案:設(shè)計(jì)驅(qū)動(dòng)模塊或樁模塊,對(duì)每一個(gè)新組裝的子系統(tǒng)進(jìn)行測(cè)試,對(duì)發(fā)現(xiàn)問題較多的子系統(tǒng)或模塊應(yīng)該用白盒法作回歸測(cè)試。自頂而下增值自底而上增值2、漸增式組裝測(cè)試 漸增式是先進(jìn)行模塊測(cè)試,然后將這些模塊逐自頂而下增值M1M4M3M2M6M5程序模塊示意圖S5M1S1S1S1S2S2S2S3S3S3第一步,測(cè)試主控模塊M1設(shè)計(jì)樁模塊S1、S2、S3,模擬被M1調(diào)用的M2、M3、M4。M2M3M4第二步,依次用M2、M3、M4替代樁模塊S1、S2、S3,每替代一次進(jìn)行一次測(cè)試。S4S4S4S5S5第三步,對(duì)由主控模塊M1和模塊M2、M3、M4構(gòu)成的子系統(tǒng)進(jìn)行測(cè)試,設(shè)計(jì)樁模塊S4、S5。M5M6第四步,依次用模塊M5和M6替代樁模塊S4、S5,并同時(shí)進(jìn)行新的測(cè)試。組裝測(cè)試完畢。自頂而下增值M1M4M3M2M6M5程序模塊示意圖S5M1S自底而上增值M3M6M5D1D2D3D1D1D2D2D3D3M2M4M1第四步,把已測(cè)試的子系統(tǒng)按程序結(jié)構(gòu)連接起來完成程序整體的組裝測(cè)試。D4D4D4D5D5D5M1M4M3M2M6M5程序模塊示意圖第一步,對(duì)最底層的模塊M3、M5、M6進(jìn)行測(cè)試,設(shè)計(jì)驅(qū)動(dòng)模塊D1、D2、D3來模擬調(diào)用。第三步,設(shè)計(jì)驅(qū)動(dòng)模塊D4、D5和D6模擬調(diào)用,分別對(duì)新子系統(tǒng)進(jìn)行測(cè)試。第二步,用實(shí)際模塊M2、M1和M4替換驅(qū)動(dòng)模塊D1、D2、D3。D6自底而上增值M3M6M5D1D2D3D1D1D2D2D3D3深度優(yōu)先與寬度優(yōu)先 無論是自頂而下增值還是自底而上增值,還可選擇深度優(yōu)先或者寬度優(yōu)先增值。舉例:按自頂而下增值法,寫出下圖中分別按照深度優(yōu)先或者寬度優(yōu)先增值的模塊組裝次序。ABCDHGJEFIKLMN深度優(yōu)先與寬度優(yōu)先 無論是自頂而下增值還是自底而上增值,還可問題(1)自頂而下增值與自底而上增值各有何優(yōu)、缺點(diǎn)?(2)為什么在實(shí)際的組裝測(cè)試中,都應(yīng)該采用混合增值的方法?(3)請(qǐng)自己設(shè)計(jì)2-3個(gè)混合增值的測(cè)試方法。問題確定集成過程的原則自頂而下增值優(yōu)點(diǎn):能夠盡早發(fā)現(xiàn)系統(tǒng)主控方面的問題。缺點(diǎn):無法驗(yàn)證樁模塊是否完全模擬了下屬模塊的功能。自底而上增值優(yōu)點(diǎn):驅(qū)動(dòng)模塊較容易編寫樁模塊,能夠盡早查出底層涉及較復(fù)雜的算法和實(shí)際的I/O模塊中的錯(cuò)誤。缺點(diǎn):最后才能發(fā)現(xiàn)系統(tǒng)主控方面的問題。集成過程的原則①盡早測(cè)試關(guān)鍵模塊。②盡早測(cè)試包含I/O的模塊。確定集成過程的原則自頂而下增值集成過程的原則3、混合增值常見的混合增值方案:衍變的自頂而下先自底而上集成子系統(tǒng),再自頂而下集成總系統(tǒng)。自底而上—自頂而下增值對(duì)含有讀操作的子系統(tǒng)采用自底而上。對(duì)含有寫操作的子系統(tǒng)采用自頂而下。回歸測(cè)試在回歸測(cè)試中自底而上,對(duì)其余部分(尤其是對(duì)修改過的子系統(tǒng))采用自頂而下。3、混合增值常見的混合增值方案:自底而上—自頂而下增值回歸三、確認(rèn)測(cè)試(validationtesting)
1、任務(wù)
又稱為有效性測(cè)試或功能測(cè)試。其任務(wù)是驗(yàn)證系統(tǒng)的功能、性能等特性是否符合需求規(guī)格說明。選擇測(cè)試人員選擇測(cè)試用例實(shí)際運(yùn)行測(cè)試軟件計(jì)劃用戶文檔開發(fā)文檔源程序文本支持環(huán)境有效性測(cè)試軟件配置審查管理機(jī)構(gòu)裁決專家鑒定會(huì)交用戶運(yùn)行維護(hù)測(cè)試報(bào)告軟件配置三、確認(rèn)測(cè)試(validationtesting) 1、任2、確認(rèn)測(cè)試步驟(1)有效性測(cè)試 制定測(cè)試計(jì)劃,運(yùn)用黑盒法,驗(yàn)證軟件特性是否與需求符合。(2)軟件配置復(fù)查軟件配置—指軟件工程過程中所產(chǎn)生的所有信息項(xiàng):文檔、報(bào)告、程序、表格、數(shù)據(jù)。隨著軟件工程過程的進(jìn)展軟件配置項(xiàng)(SCIsoftwareConfigurationItem)快速增加和變化。應(yīng)復(fù)查SCI是否齊全。 2、確認(rèn)測(cè)試步驟(1)有效性測(cè)試(2)軟件配置復(fù)查(3)測(cè)試和測(cè)試 測(cè)試α測(cè)試是指軟件開發(fā)公司組織內(nèi)部人員模擬各類用戶行對(duì)即將面市軟件產(chǎn)品(稱為α版本)進(jìn)行測(cè)試,試圖發(fā)現(xiàn)錯(cuò)誤并修正。α測(cè)試的關(guān)鍵在于盡可能逼真地模擬實(shí)際運(yùn)行環(huán)境和用對(duì)軟件產(chǎn)品的操作并盡最大努力涵蓋所有可能的用戶操作方式。
測(cè)試
經(jīng)過α測(cè)試調(diào)整的軟件產(chǎn)品稱為β版本。緊隨其后的β測(cè)試是指軟件開發(fā)公司組織各方面的典型用戶在日常工作中實(shí)際使用β版本,并要求用戶報(bào)告異常情況、提出批評(píng)意見。然后軟件開發(fā)公司再對(duì)β版本進(jìn)行改錯(cuò)和完善。(3)測(cè)試和測(cè)試 測(cè)試α測(cè)試是指軟件開發(fā)公司組織內(nèi)四、系統(tǒng)測(cè)試(systemtesting)系統(tǒng)測(cè)試(SystemTesting)階段產(chǎn)出
1.計(jì)劃——《系統(tǒng)測(cè)試計(jì)劃》
2.設(shè)計(jì)——《系統(tǒng)方案》(系統(tǒng)測(cè)試項(xiàng)和系統(tǒng)測(cè)試子項(xiàng))
3.實(shí)現(xiàn)——《系統(tǒng)測(cè)試用例》
4.執(zhí)行——《測(cè)試報(bào)告》概念:將已經(jīng)集成好的軟件系統(tǒng),與其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,進(jìn)行一系列的測(cè)試活動(dòng)。目的:驗(yàn)證系統(tǒng)對(duì)需求的符合程度;對(duì)象:軟硬件集成一起的系統(tǒng),并盡可能地在實(shí)際運(yùn)行環(huán)境與條件;常用類型:
1、功能測(cè)試——(針對(duì)軟件質(zhì)量中)“功能性”目的:根據(jù)產(chǎn)品的需求規(guī)格說明書和測(cè)試列表,驗(yàn)證產(chǎn)品的功能實(shí)現(xiàn)是否符合需求規(guī)格;關(guān)注點(diǎn):●功能是否遺漏●功能實(shí)現(xiàn)是否滿足用戶需求和系統(tǒng)設(shè)計(jì)的隱性需求●輸入能否正確接受,輸出結(jié)果是否正確測(cè)試方法:等價(jià)類、邊界值、判定表、因果圖、正交、狀態(tài)遷移、流程分析……
2、性能測(cè)試——“效率”目的:測(cè)試軟件集成系統(tǒng)中運(yùn)行的性能,度量系統(tǒng)相對(duì)于目標(biāo)的差距;四、系統(tǒng)測(cè)試(systemtesting)系統(tǒng)測(cè)試(Sy3、壓力測(cè)試(streeTesting)——“效率、可靠性”目的:驗(yàn)證系統(tǒng)在其資源超負(fù)荷的情況下的表現(xiàn)(自我保護(hù)能力、可靠性),發(fā)現(xiàn)性能瓶頸、優(yōu)化系統(tǒng);4、容量測(cè)試(VolumeTesting)——“效率”目的:驗(yàn)證系統(tǒng)在不同配置、不同場(chǎng)景下能正確處理的最大業(yè)務(wù)量;對(duì)象:面向數(shù)據(jù)的;4、容量測(cè)試
5、負(fù)載測(cè)試
6、安全性測(cè)試
7、圖形用戶界面(GUI)測(cè)試
8、可用性測(cè)試
9、安全性測(cè)試
10、配置測(cè)試
11、兼容性測(cè)試
12、異常測(cè)試
13、備份測(cè)試
14、健壯性測(cè)試
15、文檔測(cè)試
16、在線幫助測(cè)試
17、網(wǎng)絡(luò)測(cè)試
18、穩(wěn)定性測(cè)試3、壓力測(cè)試(streeTesting)——“效率、可靠性3、軟件測(cè)試文檔模塊測(cè)試報(bào)告至少選擇一個(gè)典型模塊進(jìn)行測(cè)試。A、綜合測(cè)試策略(靜態(tài)分析、白盒法為主,輔以黑盒法)B、測(cè)試情況(根據(jù)覆蓋標(biāo)準(zhǔn)列出)C、測(cè)試用例(保留)D、查錯(cuò)記錄(數(shù)量、位置)、分析結(jié)果。組裝測(cè)試報(bào)告A、組裝次序、測(cè)試方法(以黑盒法為主)B、測(cè)試情況C、測(cè)試用例(保留)D、查錯(cuò)記錄(數(shù)量、位置)、分析結(jié)果。功能測(cè)試與系統(tǒng)測(cè)試與上類似。3、軟件測(cè)試文檔模塊測(cè)試報(bào)告5.4軟件糾錯(cuò)技術(shù) 軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤,在發(fā)現(xiàn)錯(cuò)誤后,則應(yīng)按照一定的技術(shù)去糾正它。糾錯(cuò)的關(guān)鍵是“錯(cuò)誤定位”。一、糾錯(cuò)的原則1、注意錯(cuò)誤的“群集現(xiàn)象”。2、不能只修改錯(cuò)誤的征兆、表現(xiàn)。還應(yīng)該修改錯(cuò)誤的本質(zhì)。3、注意在修改一個(gè)錯(cuò)誤的同時(shí),又引入新的錯(cuò)誤。5.4軟件糾錯(cuò)技術(shù) 軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤,在發(fā)現(xiàn)錯(cuò)誤二、糾錯(cuò)的技術(shù)1、硬性糾錯(cuò) 又稱為蠻干法,是使用較多,效率較低的方法。主存信息轉(zhuǎn)儲(chǔ)法關(guān)鍵部分設(shè)置打印語句使用自動(dòng)糾錯(cuò)工具2、回溯法排錯(cuò) 適用于小程序。發(fā)現(xiàn)錯(cuò)誤時(shí),人工沿控制流追蹤源代碼程序。二、糾錯(cuò)的技術(shù)1、硬性糾錯(cuò)主存信息轉(zhuǎn)儲(chǔ)法2、回溯法排錯(cuò)3、歸納法從測(cè)試結(jié)果發(fā)現(xiàn)的錯(cuò)誤入手,分析它們之間的聯(lián)系查找錯(cuò)誤。是一種從特殊推斷一般的系統(tǒng)化思考方法。收集有關(guān)數(shù)據(jù)組織數(shù)據(jù)研究數(shù)據(jù)間的關(guān)系提出假設(shè)證明假設(shè)糾正錯(cuò)誤能能不能不能列出所有已知的測(cè)試用例和程序執(zhí)行結(jié)果常用的構(gòu)造線索的技術(shù)是“分類法”分析線索之間的關(guān)系,找出矛盾,設(shè)計(jì)出錯(cuò)原因的假設(shè)歸納排錯(cuò)法步驟將假設(shè)與原始線索或數(shù)據(jù)進(jìn)行比較,能否解釋現(xiàn)象,證明假設(shè)。yesnoWhatWhenwhereHow3、歸納法從測(cè)試結(jié)果發(fā)現(xiàn)的錯(cuò)誤入手,分析它們之間的收集組織4、演繹法排錯(cuò)
演繹法是一種從一般原理出發(fā),經(jīng)過排除和精化的過程,推導(dǎo)出結(jié)論的方法。列舉可能的原因排除不適當(dāng)?shù)脑驅(qū)ΡA舻募僭O(shè)繼續(xù)推斷證明假設(shè)糾正錯(cuò)誤收集更多的數(shù)據(jù)沒有剩余不能能有剩余演繹法排錯(cuò)的步驟4、演繹法排錯(cuò)演繹法是一種從一般原理出發(fā),經(jīng)過排除和軟件測(cè)試第五
章軟件測(cè)試第五章5.1軟件測(cè)試的基本概念一、軟件測(cè)試的目的和重要性 因?yàn)殚_發(fā)工作的前期不可避免地會(huì)引入錯(cuò)誤,測(cè)試的目的是為了發(fā)現(xiàn)和改正錯(cuò)誤,這對(duì)于某些涉及人的生命安全或重要的軍事、經(jīng)濟(jì)目標(biāo)的項(xiàng)目顯得尤其重要。1963年美國(guó)飛往火星的火箭爆炸,原因是FORTRAN程序:DO5I=1,3誤寫為:DO5I=1.3損失1000萬美元。1967年蘇聯(lián)“聯(lián)盟一號(hào)”宇宙飛船返回時(shí)因忽略一個(gè)小數(shù)點(diǎn),在進(jìn)入大氣層時(shí)打不開降落傘而燒毀。5.1軟件測(cè)試的基本概念一、軟件測(cè)試的目的和重要性1963二、軟件測(cè)試的特點(diǎn)1、軟件測(cè)試的開銷大 按照Boehm的統(tǒng)計(jì),軟件測(cè)試的開銷大約占總成本的30%-50%。例如:APPOLLO登月計(jì)劃,80%的經(jīng)費(fèi)用于軟件測(cè)試。2、不能進(jìn)行“窮舉”測(cè)試 只有將所有可能的情況都測(cè)試到,才有可能檢查出所有的錯(cuò)誤。但這是不可能的:例:程序P有兩個(gè)整型輸入量X、Y,輸出量為Z,在32位機(jī)上運(yùn)行。所有的測(cè)試數(shù)據(jù)組(Xi,Yi)的數(shù)目為:2
2=21毫秒執(zhí)行1次,共需5億年。323264PXYZ二、軟件測(cè)試的特點(diǎn)1、軟件測(cè)試的開銷大2、不能進(jìn)行“窮舉”測(cè)二、軟件測(cè)試的特點(diǎn)—結(jié)論3、軟件測(cè)試難度大 根據(jù)上述分析,既然不能進(jìn)行
“窮舉”測(cè)試,又要查出盡可能多的錯(cuò)誤,軟件測(cè)試工作的難度大。只有選擇— “高效的測(cè)試用例” 什么是“高效的測(cè)試用例”? 如何選擇“高效的測(cè)試用例”? 這就是本章討論的主要問題?。?!二、軟件測(cè)試的特點(diǎn)—結(jié)論3、軟件測(cè)試難度大“高效的測(cè)試用三、軟件測(cè)試的基本原則3、充分注意測(cè)試中的群集現(xiàn)象。1、盡量不由程序設(shè)計(jì)者進(jìn)行測(cè)試。2、關(guān)鍵是注重測(cè)試用例的選擇。 輸入數(shù)據(jù)的組成(輸入數(shù)據(jù)、預(yù)期的輸出結(jié)果) 既有合理輸入數(shù)據(jù),也有不合理的輸入數(shù)據(jù)。 用例既能檢查應(yīng)完成的任務(wù),也能夠檢查不應(yīng)該完成的任務(wù)。 長(zhǎng)期保存測(cè)試用例。三、軟件測(cè)試的基本原則3、充分注意測(cè)試中的群集現(xiàn)象。1、盡量5.2軟件測(cè)試方法軟件測(cè)試方法分為兩類:靜態(tài)分析、動(dòng)態(tài)測(cè)試一、靜態(tài)分析方法指以人工的、非形式化的方法對(duì)程序進(jìn)行分析和測(cè)試。 桌前檢查 代碼會(huì)審 步行檢查步行檢查時(shí),還常使用以下分析方法:①
調(diào)用圖 從語義的角度考察程序的控制路線。②數(shù)據(jù)流分析圖 檢查分析變量的定義和引用情況。5.2軟件測(cè)試方法軟件測(cè)試方法分為兩類:靜態(tài)分析、動(dòng)態(tài)測(cè)試①調(diào)用圖
無論Y為何值,都不能夠調(diào)用子程序。 READYY>0NX:=YX<0YNY調(diào)用子程序ABCDE即執(zhí)行ABC后,是不可能執(zhí)行路徑CDE的。①調(diào)用圖 無論Y為何值,都不能夠調(diào)用子程序。 READ二、動(dòng)態(tài)測(cè)試方法(1)通過選擇適當(dāng)?shù)臏y(cè)試用例,執(zhí)行程序。常用的方法:1、白盒法分析程序的內(nèi)部邏輯結(jié)構(gòu),注意選擇適當(dāng)?shù)母采w標(biāo)準(zhǔn),設(shè)計(jì)測(cè)試用例,對(duì)主要路徑進(jìn)行盡可能多的測(cè)試。2、黑盒法
不考慮程序的內(nèi)部結(jié)構(gòu)與特性,只根據(jù)程序功能或程序的外部特性設(shè)計(jì)測(cè)試用例。二、動(dòng)態(tài)測(cè)試方法(1)通過選擇適當(dāng)?shù)臏y(cè)試用例,執(zhí)行程序。2、白盒法
白盒法又稱為邏輯覆蓋法,其測(cè)試用例選擇,是按照不同覆蓋標(biāo)準(zhǔn)確定的。
語句覆蓋判定覆蓋條件覆蓋判定條件覆蓋條件組合覆蓋弱強(qiáng)白盒法
白盒法又稱為邏輯覆蓋法,其測(cè)試用例選擇,是按照不①語句覆蓋:選擇足夠的測(cè)試用例,使得程序中每個(gè)語句至少都能被執(zhí)行一次。②判定覆蓋:執(zhí)行足夠的測(cè)試用例,使得程序中每個(gè)判定至少都獲得一次“真”值和“假”值。③條件覆蓋:執(zhí)行足夠的測(cè)試用例,使得判定中的每個(gè)條件獲得各種可能的結(jié)果。④判定/條件覆蓋:執(zhí)行足夠的測(cè)試用例,使得判定中每個(gè)條件取到各種可能的值,并使每個(gè)判定取到各種可能的結(jié)果。⑤條件組合覆蓋:執(zhí)行足夠的例子,使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。白盒法常用的覆蓋標(biāo)準(zhǔn)①語句覆蓋:選擇足夠的測(cè)試用例,使得程序中每個(gè)語句至少都白盒法步驟:例:用白盒法測(cè)試以下程序段:Procedure(VARA,B,X:REAL);BEGINIF(A>1)AND(B=0)THENX:=X/A;IF(A=2)OR(X>1)THENX:=X+1END;1)選擇邏輯覆蓋標(biāo)準(zhǔn)。2)按照覆蓋標(biāo)準(zhǔn)列出所有情況。3)選擇確定測(cè)試用例。4)驗(yàn)證分析運(yùn)行結(jié)果與預(yù)期結(jié)果。邏輯結(jié)構(gòu)白盒法步驟:例:用白盒法測(cè)試以下程序段:1)選擇邏輯覆蓋標(biāo)準(zhǔn)白盒法舉例Procedure(VARA,B,X:REAL);BEGINIF(A>1)AND(B=0)THENX:=X/A;IF(A=2)OR(X>1)THENX:=X+1END;A>1ANDB=0X:=X/AA=2ORX>1X:=X+1YNYN邏輯結(jié)構(gòu)白盒法舉例Procedure(VARA,B,X:REAL1、語句覆蓋使得程序中每個(gè)語句至少都能被執(zhí)行一次。A>1ANDB=0X:=X/AA=2ORX>1X:=X+1abcde滿足語句覆蓋的情況:執(zhí)行路徑:ace選擇用例:[(2,0,4),(2,0,3)]用例格式:[輸入(A,B,X),輸出(A,B,X)]YNYN1、語句覆蓋使得程序中每個(gè)語句至少都能被執(zhí)行一次。A>1X:2、判定覆蓋使得程序中每個(gè)判定至少為TRUE或FALSE各一次。A>1ANDB=0X:=X/AA=2ORX>1X:=X+1abcde覆蓋情況:應(yīng)執(zhí)行路徑ace∧abd 或:acd∧abe選擇用例(其一):⑴[(2,0,4),(2,0,3)]ace[(1,1,1),(1,1,1)]abd⑵[(2,1,1),(2,1,2)]abe[(3,0,3),(3,1,1)]acdYYNN2、判定覆蓋使得程序中每個(gè)判定至少為TRUE或FALSE各3、條件覆蓋A>1ANDB=0X:=X/AA=2ORX>1X:=X+1abcde使得判定中的每個(gè)條件獲得各種可能的結(jié)果。應(yīng)滿足以下覆蓋情況:判定一:A>1,A≤1,B=0,B≠0判定二:A=2,A≠2,X>1,X≤1選擇用例:[(2,0,4),(2,0,3)][(1,1,1),(1,1,1)]NNYY2A≤1A≠20B=04X>11A>1A=21B≠01X≤1注意:[(1,0,3),(1,0,4)] [(2,1,1),(2,1,2)]滿足條件覆蓋,但不滿足判斷覆蓋。3、條件覆蓋A>1X:=X/AA=2X:=X+1abcde使4、判定/條件覆蓋 同時(shí)滿足判斷覆蓋和條件覆蓋。A>1ANDB=0X:=X/AA=2ORX>1X:=X+1abcde應(yīng)滿足以下覆蓋情況:條件:A>1,A≤1,B=0,B≠0 A=2,A≠2,X>1,X≤1應(yīng)執(zhí)行路徑ace∧abd 或:acd∧abe選擇用例:[(2,0,4),(2,0,3)](ace)[(1,1,1),(1,1,1)](abd)YYNN4、判定/條件覆蓋 同時(shí)滿足判斷覆蓋和條件覆蓋。A>1X:=5、條件組合覆蓋使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。A>1X:=X/AA=2X:=X+1abcdeB=0X>1YNYNYNYN編譯系統(tǒng)下的執(zhí)行情況:部分路徑未被執(zhí)行。滿足以下覆蓋情況:①A>1,B=0②A>1,B≠0③A≤1,B=0
④A≤1,B≠0⑤A=2,X>1
⑥A=2,X≤1
⑦A≠2,X>1
⑧A≠2,X≤1選擇用例:[(2,0,4),(2,0,3)]①⑤[(2,1,1),(2,1,2)]②⑥[(1,0,3),(1,0,4)]③⑦[(1,1,1),(1,1,1)]④⑧5、條件組合覆蓋使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一路徑覆蓋:選擇足夠多的測(cè)試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)行一次。STARTINPUT(A,B,C)IFA>5THENX=10ELSEX=1ENDIFIFB>10THENY=20ELSEY=2ENDIFIFC>15THENZ=30ELSEZ=3ENDIFPRINT(X,Y,Z)STOP共有8條可能的執(zhí)行路徑①三個(gè)判定表達(dá)式之值依次為假、假、假:輸入:A=1,B=1,C=1;預(yù)期輸出:X=1,Y=2,Z=3②三個(gè)判定表達(dá)式之值依次為假、假、真:輸入:A=2,B=3,C=23;預(yù)期輸出:X=1,Y=2,Z=30③三個(gè)判定表達(dá)式之值依次為假、真、假:輸入:A=3,B=12,C=6;預(yù)期輸出:X=1,Y=20,Z=3④三個(gè)判定表達(dá)式之值依次為假、真、真:輸入:A=4,B=13,C=16;預(yù)期輸出:X=1,Y=20,Z=30⑤三個(gè)判定表達(dá)式之值依次為真、假、假:輸入:A=6,B=7,C=9;預(yù)期輸出:X=10,Y=2,Z=3⑥三個(gè)判定表達(dá)式之值依次為真、假、真:輸入:A=8,B=8,C=18;預(yù)期輸出:X=10,Y=2,Z=30⑦三個(gè)判定表達(dá)式之值依次為真、真、假:輸入:A=10,B=12,C=6;預(yù)期輸出:X=10,Y=20,Z=3⑧三個(gè)判定表達(dá)式之值依次為真、真、真:輸入:A=11,B=14,C=57;預(yù)期輸出:X=10,Y=20,Z=30路徑覆蓋:選擇足夠多的測(cè)試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)二、動(dòng)態(tài)測(cè)試方法(2)等價(jià)分類法邊值分析法錯(cuò)誤推測(cè)法因果圖法(2)黑盒法
不考慮程序的內(nèi)部結(jié)構(gòu)與特性,只根據(jù)程序功能或程序的外部特性設(shè)計(jì)測(cè)試用例。二、動(dòng)態(tài)測(cè)試方法(2)等邊錯(cuò)因(2)黑盒法1、等價(jià)分類法基本思想:根據(jù)程序的I/O特性,將程序的定義域劃分為有限個(gè)等價(jià)區(qū)段—“等價(jià)類”,從等價(jià)類中選擇出的用例,具有“代表性”。等價(jià)類分為:有效等價(jià)類—對(duì)于程序的規(guī)格說明是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。無效等價(jià)類—對(duì)于程序的規(guī)格說明,是不合理的,是沒有意義的輸入數(shù)據(jù)構(gòu)成的集合。1、等價(jià)分類法基本思想:根據(jù)程序的I/O特性,將程序的定義域等價(jià)分類法步驟應(yīng)按照輸入條件(如輸入值的范圍,值的個(gè)數(shù),值的集合,輸入條件必須如何)劃分為有效等價(jià)類和無效等價(jià)類。例如:每個(gè)學(xué)生可選修1-3門課程可以劃分一個(gè)有效等價(jià)類:選修1-3門課程??梢詣澐謨蓚€(gè)無效等價(jià)類:未選修課,選修課超過3門。又如:標(biāo)識(shí)符的第一個(gè)字符必須是字母??梢詣澐譃橐粋€(gè)有效等價(jià)類:第一個(gè)字符是字母??梢詣澐忠粋€(gè)無效等價(jià)類:第一個(gè)字符不是字母。①劃分“等價(jià)類”
顯然,關(guān)鍵是如何劃分等價(jià)類A、為每個(gè)等價(jià)類編號(hào);B、使一個(gè)測(cè)試用例盡可能覆蓋多個(gè)有效等價(jià)類C、特別要注意的是:一個(gè)測(cè)試用例只能覆蓋一個(gè)無效等價(jià)類。②選擇測(cè)試用例等價(jià)分類法步驟等價(jià)分類法步驟應(yīng)按照輸入條件(如輸入值的范圍,值的個(gè)如何劃分等價(jià)類?有效等價(jià)類(合理等價(jià)類)無效等價(jià)類(不合理等價(jià)類)(1)如果輸入條件規(guī)定了取值范圍,可定義一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。例
輸入值是學(xué)生成績(jī),范圍是0~1000100有效等價(jià)類0≤成績(jī)≤100無效等價(jià)類成績(jī)>100無效等價(jià)類成績(jī)<0(2)如果輸入條件代表集合的某個(gè)元素,則可定義一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。如何劃分等價(jià)類?(1)如果輸入條件規(guī)定了取值范圍,可定義一個(gè)(3)如規(guī)定了輸入數(shù)據(jù)的一組值,且程序?qū)Σ煌斎胫底霾煌幚?,則每個(gè)允許的輸入值是一個(gè)有效等價(jià)類,并有一個(gè)無效等價(jià)類(所有不允許的輸入值的集合)。例:輸入條件說明學(xué)歷可為:???、本科、碩士、博士四種之一,則分別取這四個(gè)值作為四個(gè)有效等價(jià)類,另外把四種學(xué)歷之外的任何學(xué)歷作為無效等價(jià)類(4)如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,可確定一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。(5)如已劃分的等價(jià)類各元素在程序中的處理方式不同,則應(yīng)將此等價(jià)類進(jìn)一步劃分成更小的等價(jià)類。用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例步驟:(1)形成等價(jià)類表,每一等價(jià)類規(guī)定一個(gè)唯一的編號(hào);(2)設(shè)計(jì)一測(cè)試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類,重復(fù)這一步驟,直到所有有效等價(jià)類均被測(cè)試用例所覆蓋;(3)設(shè)計(jì)一新測(cè)試用例,使其只覆蓋一個(gè)無效等價(jià)類,重復(fù)這一步驟直到所有無效等價(jià)類均被覆蓋;(3)如規(guī)定了輸入數(shù)據(jù)的一組值,且程序?qū)Σ煌斎胫底霾煌幚砝?某報(bào)表處理系統(tǒng)要求用戶輸入處理報(bào)表的日期,日期限制在2003年1月至2008年12月,即系統(tǒng)只能對(duì)該段期間內(nèi)的報(bào)表進(jìn)行處理,如日期不在此范圍內(nèi),則顯示輸入錯(cuò)誤信息。系統(tǒng)日期規(guī)定由年、月的6位數(shù)字字符組成,前四位代表年,后兩位代表月。如何用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例,來測(cè)試程序的日期檢查功能?輸入條件有效等價(jià)類無效等價(jià)類
報(bào)表日期的類型及長(zhǎng)度6位數(shù)字字符(1)有非數(shù)字字符(4)少于6個(gè)數(shù)字字符(5)多于6個(gè)數(shù)字字符(6)年份范圍在2003~2008之間(2)小于2003(7)大于2008(8)月份范圍在1~12之間(3)“報(bào)表日期”輸入條件的等價(jià)類表小于1(9)大于12(10)例:某報(bào)表處理系統(tǒng)要求用戶輸入處理報(bào)表的日期,日期限制在20第二步:為有效等價(jià)類設(shè)計(jì)測(cè)試用例
測(cè)試數(shù)據(jù)期望結(jié)果覆蓋范圍200306等價(jià)類(1)(2)(3)輸入有效對(duì)表中編號(hào)為1,2,3的3個(gè)有效等價(jià)類用一個(gè)測(cè)試用例覆蓋:(1)6位數(shù)字字符(2)年在2003~2008之間(3)月在1~12之間第二步:為有效等價(jià)類設(shè)計(jì)測(cè)試用例測(cè)試數(shù)據(jù)第三步:為每一個(gè)無效等價(jià)類設(shè)至少設(shè)計(jì)一個(gè)測(cè)試用例
測(cè)試數(shù)據(jù)期望結(jié)果覆蓋范圍003MAY等價(jià)類(4)輸入無效20035等價(jià)類(5)輸入無效2003005等價(jià)類(6)輸入無效200105等價(jià)類(7)輸入無效200905等價(jià)類(8)輸入無效200300等價(jià)類(9)輸入無效200313等價(jià)類(10)輸入無效不能出現(xiàn)相同的測(cè)試用例本例的10個(gè)等價(jià)類至少需要8個(gè)測(cè)試用例第三步:為每一個(gè)無效等價(jià)類設(shè)至少測(cè)試數(shù)據(jù)2、邊值分析法
基本思想:選擇等價(jià)類的邊緣值作為測(cè)試用例,讓每個(gè)等價(jià)類的邊界都得到測(cè)試,選擇測(cè)試用例既考慮輸入亦考慮輸出。
分析步驟:
A、先劃分等價(jià)類。
B、選擇測(cè)試用例,測(cè)試等價(jià)類邊界。邊界選擇原則:
A、按照輸入值范圍的邊界。
B、按照輸入/輸出值個(gè)數(shù)的邊界。
C、輸出值域的邊界。
D、輸入/輸出有序集的邊界。2、邊值分析法基本思想:選擇等價(jià)類的邊緣值作為測(cè)試用例,A、按照輸入值范圍的邊界。例如:輸入值的范圍是-1.0至1.0,則可選擇用例–1.0、1.0、-1.001、1.001。
B、按照輸入/輸出值個(gè)數(shù)的邊界。
例如:輸入文件可有1-255個(gè)記錄,則設(shè)計(jì)用例:文件的記錄數(shù)為0個(gè)、1個(gè)、255個(gè)、256個(gè)。
C、輸出值域的邊界。
例如:檢索文獻(xiàn)摘要,最多4篇。設(shè)計(jì)用例:可檢索0篇、1篇、4篇,和5篇(錯(cuò)誤)。
D、輸入/輸出有序集(如順序文件、線性表)的邊界。
應(yīng)選擇第一個(gè)元素和最后一個(gè)元素。邊值分析法舉例A、按照輸入值范圍的邊界。邊值分析法舉例3、錯(cuò)誤推測(cè)法 憑經(jīng)驗(yàn)或直覺推測(cè)可能的錯(cuò)誤,列出程序中可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,選擇測(cè)試用例。 把輸入條件視為“因”,把輸出條件視為“果”,將黑盒看成是從因到果的網(wǎng)絡(luò)圖,采用邏輯圖的形式來表達(dá)功能說明書中輸入條件的各種組合與輸出的關(guān)系。根據(jù)這種關(guān)系可選擇高效的測(cè)試用例。因果圖是一種形式化語言,是一種組合邏輯網(wǎng)絡(luò)圖。4、因果圖法3、錯(cuò)誤推測(cè)法 憑經(jīng)驗(yàn)或直覺推測(cè)可能的錯(cuò)誤,列出程序中可5.3軟件測(cè)試的步驟測(cè)試步驟及策略
所有測(cè)試過程都應(yīng)采用綜合測(cè)試策略;即先作靜態(tài)分析,再作動(dòng)態(tài)測(cè)試。并事先制訂測(cè)試計(jì)劃。測(cè)試過程通??煞?步進(jìn)行:?jiǎn)卧獪y(cè)試單元測(cè)試單元測(cè)試被測(cè)模塊被測(cè)模塊集成測(cè)試設(shè)計(jì)信息已測(cè)試的模塊確認(rèn)測(cè)試已集成的模塊軟件需求系統(tǒng)測(cè)試已確認(rèn)的軟件可交付的軟件系統(tǒng)其他元素5.3軟件測(cè)試的步驟測(cè)試步驟及策略單元單元單元被測(cè)模塊被測(cè)一、模塊測(cè)試(ModuleTesting)1、測(cè)試內(nèi)容模塊模塊接口測(cè)試局部數(shù)據(jù)結(jié)構(gòu)測(cè)試重要路徑測(cè)試錯(cuò)誤處理測(cè)試邊界條件測(cè)試I/O參數(shù)值的個(gè)數(shù)、類型、次序、格式是否正確,I/O文件屬性、操作是否正確等。數(shù)據(jù)說明是否正確、一致,變量及其初值定義是否正確等。檢查“錯(cuò)誤處理程序”本身的錯(cuò)誤。邊界條件常包括循環(huán)邊界,最大最小值、控制流中等于、大于、小于的比較值等。重要路徑通常是指完成模塊功能的主要路徑,一般是控制結(jié)構(gòu)。也稱單元測(cè)試(unittesting)一、模塊測(cè)試(ModuleTesting)1、測(cè)試內(nèi)容模塊2、模塊測(cè)試步驟 考慮到被測(cè)模塊與其它模塊的聯(lián)系,因此測(cè)試時(shí)需要使用兩類輔助模塊來模擬其他模塊。
驅(qū)動(dòng)模塊(driver)—模擬主程序功能,用于向被測(cè)模塊傳遞數(shù)據(jù),接收、打印從被測(cè)模塊返回的數(shù)據(jù)。
樁模塊(stub)—又稱為假模塊,用于模擬那些由被測(cè)模塊所調(diào)用的下屬模塊功能。 一般,驅(qū)動(dòng)模塊比樁模塊容易設(shè)計(jì)。但都是額外開銷。測(cè)試方法以白盒法為主。被測(cè)模塊驅(qū)動(dòng)模塊樁模塊樁模塊樁模塊2、模塊測(cè)試步驟 考慮到被測(cè)模塊與其它模塊的聯(lián)系,因此測(cè)試時(shí)二、組裝測(cè)試(IntegrationTesting)1、組裝測(cè)試的任務(wù)①確定模塊組裝方案,將經(jīng)過測(cè)試的模塊組裝為一個(gè)完整的系統(tǒng)。組裝方案分為漸增式及非漸增式。②測(cè)試方法以黑盒法為主,按照組裝方案進(jìn)行測(cè)試。 也稱為聯(lián)合測(cè)試或集成測(cè)試,重點(diǎn)測(cè)試模塊的接口部分,需設(shè)計(jì)測(cè)試過程使用的驅(qū)動(dòng)模塊或樁模塊。問題:漸增式與非漸增式各有何優(yōu)、缺點(diǎn)?為什么通常采用漸增式?二、組裝測(cè)試(IntegrationTesting)1、組2、漸增式組裝測(cè)試 漸增式是先進(jìn)行模塊測(cè)試,然后將這些模塊逐步組裝成較大的系統(tǒng),每連接一個(gè)模塊進(jìn)行一次測(cè)試。兩種方案:設(shè)計(jì)驅(qū)動(dòng)模塊或樁模塊,對(duì)每一個(gè)新組裝的子系統(tǒng)進(jìn)行測(cè)試,對(duì)發(fā)現(xiàn)問題較多的子系統(tǒng)或模塊應(yīng)該用白盒法作回歸測(cè)試。自頂而下增值自底而上增值2、漸增式組裝測(cè)試 漸增式是先進(jìn)行模塊測(cè)試,然后將這些模塊逐自頂而下增值M1M4M3M2M6M5程序模塊示意圖S5M1S1S1S1S2S2S2S3S3S3第一步,測(cè)試主控模塊M1設(shè)計(jì)樁模塊S1、S2、S3,模擬被M1調(diào)用的M2、M3、M4。M2M3M4第二步,依次用M2、M3、M4替代樁模塊S1、S2、S3,每替代一次進(jìn)行一次測(cè)試。S4S4S4S5S5第三步,對(duì)由主控模塊M1和模塊M2、M3、M4構(gòu)成的子系統(tǒng)進(jìn)行測(cè)試,設(shè)計(jì)樁模塊S4、S5。M5M6第四步,依次用模塊M5和M6替代樁模塊S4、S5,并同時(shí)進(jìn)行新的測(cè)試。組裝測(cè)試完畢。自頂而下增值M1M4M3M2M6M5程序模塊示意圖S5M1S自底而上增值M3M6M5D1D2D3D1D1D2D2D3D3M2M4M1第四步,把已測(cè)試的子系統(tǒng)按程序結(jié)構(gòu)連接起來完成程序整體的組裝測(cè)試。D4D4D4D5D5D5M1M4M3M2M6M5程序模塊示意圖第一步,對(duì)最底層的模塊M3、M5、M6進(jìn)行測(cè)試,設(shè)計(jì)驅(qū)動(dòng)模塊D1、D2、D3來模擬調(diào)用。第三步,設(shè)計(jì)驅(qū)動(dòng)模塊D4、D5和D6模擬調(diào)用,分別對(duì)新子系統(tǒng)進(jìn)行測(cè)試。第二步,用實(shí)際模塊M2、M1和M4替換驅(qū)動(dòng)模塊D1、D2、D3。D6自底而上增值M3M6M5D1D2D3D1D1D2D2D3D3深度優(yōu)先與寬度優(yōu)先 無論是自頂而下增值還是自底而上增值,還可選擇深度優(yōu)先或者寬度優(yōu)先增值。舉例:按自頂而下增值法,寫出下圖中分別按照深度優(yōu)先或者寬度優(yōu)先增值的模塊組裝次序。ABCDHGJEFIKLMN深度優(yōu)先與寬度優(yōu)先 無論是自頂而下增值還是自底而上增值,還可問題(1)自頂而下增值與自底而上增值各有何優(yōu)、缺點(diǎn)?(2)為什么在實(shí)際的組裝測(cè)試中,都應(yīng)該采用混合增值的方法?(3)請(qǐng)自己設(shè)計(jì)2-3個(gè)混合增值的測(cè)試方法。問題確定集成過程的原則自頂而下增值優(yōu)點(diǎn):能夠盡早發(fā)現(xiàn)系統(tǒng)主控方面的問題。缺點(diǎn):無法驗(yàn)證樁模塊是否完全模擬了下屬模塊的功能。自底而上增值優(yōu)點(diǎn):驅(qū)動(dòng)模塊較容易編寫樁模塊,能夠盡早查出底層涉及較復(fù)雜的算法和實(shí)際的I/O模塊中的錯(cuò)誤。缺點(diǎn):最后才能發(fā)現(xiàn)系統(tǒng)主控方面的問題。集成過程的原則①盡早測(cè)試關(guān)鍵模塊。②盡早測(cè)試包含I/O的模塊。確定集成過程的原則自頂而下增值集成過程的原則3、混合增值常見的混合增值方案:衍變的自頂而下先自底而上集成子系統(tǒng),再自頂而下集成總系統(tǒng)。自底而上—自頂而下增值對(duì)含有讀操作的子系統(tǒng)采用自底而上。對(duì)含有寫操作的子系統(tǒng)采用自頂而下。回歸測(cè)試在回歸測(cè)試中自底而上,對(duì)其余部分(尤其是對(duì)修改過的子系統(tǒng))采用自頂而下。3、混合增值常見的混合增值方案:自底而上—自頂而下增值回歸三、確認(rèn)測(cè)試(validationtesting)
1、任務(wù)
又稱為有效性測(cè)試或功能測(cè)試。其任務(wù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 我國(guó)上市公司區(qū)域差異剖析:特征、成因與發(fā)展策略
- 骨肉瘤術(shù)后康復(fù)護(hù)理指南
- 硅晶片拋光工道德能力考核試卷含答案
- 純堿生產(chǎn)工崗前基礎(chǔ)常識(shí)考核試卷含答案
- 齒輪裝配工崗前競(jìng)爭(zhēng)分析考核試卷含答案
- 苯乙烯-丙烯腈樹脂(SAN)裝置操作工安全實(shí)踐測(cè)試考核試卷含答案
- 林草種子工安全生產(chǎn)知識(shí)評(píng)優(yōu)考核試卷含答案
- 企業(yè)調(diào)休制度
- 2026廣西貴港桂平市尋旺鄉(xiāng)中心幼兒園招聘專任教師、安保人員3人備考題庫(kù)有完整答案詳解
- 人體胚胎發(fā)育:投資策略課件
- DB32T 4398-2022《建筑物掏土糾偏技術(shù)標(biāo)準(zhǔn)》
- (精確版)消防工程施工進(jìn)度表
- 保險(xiǎn)公司資產(chǎn)負(fù)債表、利潤(rùn)表、現(xiàn)金流量表和所有者權(quán)益變動(dòng)表格式
- 送貨單格式模板
- 防止激情違紀(jì)和犯罪授課講義
- XX少兒棋院加盟協(xié)議
- 五年級(jí)數(shù)學(xué)應(yīng)用題專題訓(xùn)練50題
- 2021年四川省資陽市中考數(shù)學(xué)試卷
- 河南省鄭氏中原纖維素有限公司年產(chǎn) 0.2 萬噸預(yù)糊化淀粉、0.5 萬噸羧甲基纖維素鈉、1.3 萬噸羧甲基淀粉鈉項(xiàng)目環(huán)境影響報(bào)告
- 高處作業(yè)安全培訓(xùn)課件
- c語言知識(shí)點(diǎn)思維導(dǎo)圖
評(píng)論
0/150
提交評(píng)論