版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1軟件測試方法和技術是多種多樣的,可以從不同的角度加以分類從測試是否針對系統(tǒng)的內(nèi)部結構和具體實現(xiàn)算法的角度來看,可分為黑盒測試和白盒測試從是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試軟件測試方法2兩種測試方法從不同的角度出發(fā),反映了軟件的不同側(cè)面,也適用于不同的開發(fā)環(huán)境黑盒測試:基于軟件設計規(guī)范設計測試用例白盒測試:基于代碼覆蓋情況設計測試用例eg.排水系統(tǒng)測試方法-黑盒與白盒3白盒測試(WHITE-BOXTESTING)也稱結構測試、邏輯驅(qū)動測試。此方法把測試對象看做一個透明的盒子,它允許測試人員利用程序內(nèi)部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預期的狀態(tài)一致。因此白盒測試又稱為邏輯測試。白盒測試的主要方法有邏輯驅(qū)動、基路測試等。第4章白盒測試4軟件人員使用白盒測試方法,主要想對程序模塊進行如下的檢查:對程序模塊的所有獨立的執(zhí)行路徑至少測試一次;對所有的邏輯判定,取“真”與取“假”的兩種情況都至少測試一次;在循環(huán)的邊界和運行界限內(nèi)執(zhí)行循環(huán)體;測試內(nèi)部數(shù)據(jù)結構的有效性等。白盒測試的作用5對一個具有多重選擇和循環(huán)嵌套的程序,不同的路徑數(shù)目可能是天文數(shù)字。給出一個小程序的流程圖,它包括了一個執(zhí)行20次的循環(huán)。包含的不同執(zhí)行路徑數(shù)達520條,對每一條路徑進行測試需要1毫秒,假定一年工作365×24小時,要想把所有路徑測試完,需3170年。白盒測試615sideA=atoi(argv[1]);16sideB=atoi(argv[2]);17sideC=atoi(argv[3]);1819If((sideA==sideB)&&(sideA==sideC))20{21s=0.5*(sideA+sideB+sideC);22Area=sqrt(s/(s-sideA)*(s-sideB)*(s-sideC));23printf(“area=%g\n”,Area);24}25else26puts(“notanequilateraltriangle”);27return0;28}Figure1.CodeUnderTest白盒測試技術S=0.5×(SideA+SideB+SideC)Area=[S(S-SideA)(S-SideB)(S-SideC)]1/2白盒測試7TrueDirectGraph TestCase1 TestCase2 Inputs: Inputs: SideA=2 SideA=3 SideB=2 SideB=4 SideC=2 SideC=5Entrance1516171921222326ExitTrueFalseEntrance1516171921222326ExitFalseEntrance15161719ExitFalse26212223TrueActualOutput ActualOutputArea=1.73205 notequilateraltriangle白盒測試技術白盒測試8
語句覆蓋判定覆蓋條件覆蓋
判定-條件覆蓋條件組合覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結構為基礎的設計測試用例的技術。它屬白盒測試范疇。4.1邏輯覆蓋9例(A>1)
and
(B==0)(A==2)
or
(X>1)X=X/AX=X+1TTFFabdce
四條路徑101、語句覆蓋
使程序中每個語句至少執(zhí)行一次。選擇足夠的測試用例,使得程序中每個語句至少都能被執(zhí)行一次.
開始(A>1)AND(B==0)(A==2)OR(X>1)返回X=X/AX=X+1FFTTabdce只需設計一個測試用例:
輸入數(shù)據(jù):A=2,
B=0,
X=4
即達到了語句覆蓋。語句覆蓋是最弱的邏輯覆蓋(如:AND寫成OR,X>1寫成
X<1,查不出來)112、
判定覆蓋(分支覆蓋)
使每個判定的真假分支都至少執(zhí)行一次。選擇足夠的測試用例,使得程序中的每一個分支至少都執(zhí)行一次.開始(A>1)AND(B==0)(A==2)OR(X>1)返回X=X/AX=X+1FFTTabdce可設計兩組測試用例:A=3,B=0,X=3
可覆蓋c、d分支
A=2,B=1,X=1
可覆蓋b、e分支
兩組測試用例可覆蓋所有判定的真假分支
判定覆蓋仍是弱的邏輯覆蓋,只覆蓋了全部路徑的一半。123、條件覆蓋使每個判定的每個條件的可能取值至少執(zhí)行一次。執(zhí)行足夠的測試用例,使得判定中的每個條件獲得各種可能的結果.開始(A>1)AND(B==0)(A==2)OR(X>1)返回X=X/AX=X+1FFTTabdce滿足條件:T1,T1,T2,T2T3,T3T4,T4第一判定表達式:設條件A>1取真記為T1
假
T1
條件B=0取真記為T2
假
T2第二判定表達式:設條件A=2取真記為T3
假
T3
條件X>1取真記為T4
假
T413測試用例通過滿足的覆蓋ABX路徑條件分支103abeT1,T2,T3,T4b,e211abeT1,T2,T3,T4b,e
兩個測試用例覆蓋了四個條件八種可能取值。未覆蓋c、d分支,不滿足判定覆蓋的要求.
條件覆蓋不一定包含判定覆蓋判定覆蓋也不一定包含條件覆蓋144、判定/條件覆蓋
選取足夠多的測試用例,使判斷中的每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷本身的所有可能判斷結果至少執(zhí)行一次.開始(A>1)AND(B==0)(A==2)OR(X>1)返回X=X/AX=X+1FFTTabdce滿足條件:T1,T1,T2,T2T3,T3T4,T415測試用例通過滿足的條件覆蓋ABX路徑分支204aceT1,T2,T3,T4c,e111abdT1,T2,T3,T4b,d能同時滿足判定、條件兩種覆蓋標準的取值165、條件組合覆蓋所有可能的條件取值組合至少執(zhí)行一次
A>1,B=0A>1,B≠0A≯1,B=0A≯1,B≠0A=2,X>1A=2,X≯1A≠2,X>1A≠2,X≯1測試用例通過滿足的覆蓋ABX路徑條件分支204aceT1,T2,T3,T4c,e211abeT1,T2,T3,T4b,e102abdT1,T2,T3,T4b,d111abdT1,T2,T3,T4b,d176、修正條件判定覆蓋每一個程序模塊的入口、出口都至少被調(diào)用一次;每個條件對于判定的結果值是獨立的。
借助于表達式語法分析樹進行測試用例的分析和設計:
中間內(nèi)部結點:二元/一元操作符葉子結點:變量/常量Eg.A∪B∩C
(借助于表達式語法分析樹進行分析)18修正條件判定覆蓋測試數(shù)據(jù)設計方法及案例對于一個給定的表達式語法分析樹,遍歷完此樹即可達到修正判定覆蓋。步驟:首先選擇一個條件(即子句,作為待考察因素/測試子句),然后從此子句的葉子結點往上一直走到該語法樹的根節(jié)點,再從根節(jié)點到其他的每個子句(葉子節(jié)點)。在遍歷樹的過程中,若給定子句的父節(jié)點是or,則其兄弟結點的值必須是false;是and,則必須是true;是not,則其父節(jié)點的值是not結點上值的反值。如此重復下去,直至遍歷完成。Eg.A∪B∩C若B作為測試子句,則A應為false,C應為true同理,若A作為測試子句,則B應為false,C為true若C作為測試子句,則A、B的取值保證A∪B為真即可19發(fā)現(xiàn)錯誤的能力標準含義1(弱)語句覆蓋每條語句至少執(zhí)行一次2判定覆蓋每一判定的每個分支至少執(zhí)行一次3條件覆蓋每一判定中的每個條件,分別按“真”、“假”至少各執(zhí)行一次4判定/條件覆蓋同時滿足判定覆蓋和條件覆蓋的要求5(強)條件組合覆蓋求出判定中所有條件的各種可能組合值,每一可能的條件組合至少執(zhí)行一次
邏輯覆蓋測試的5種標準
204.2路徑測試路徑測試就是設計足夠的測試用例,覆蓋程序中所有可能的路徑。
測試用例
通過路徑
覆蓋條件【(2,0,4),(2,0,3)】ace
【(1,1,1),(1,1,1)】abd【(1,1,2),(1,1,3)】abe
【(3,0,3),(3,0,1)】acd21案例:P99
條件測試路徑選擇
當程序中判定多于一個時,形成的分支結構可以分為兩類:嵌套型分支結構和連鎖型分支結構。對于連鎖型分支結構,若有n個判定語句,需要有2n個測試用例,覆蓋它的2n條路徑。對于嵌套型分支結構,若有n個判定語句,需要n+1個測試用例;22循環(huán)測試路徑選擇循環(huán)分為4種不同類型:簡單循環(huán)、連鎖循環(huán)、嵌套循環(huán)和非結構循環(huán)。
(1)簡單循環(huán)①零次循環(huán):從循環(huán)入口到出口
②一次循環(huán):檢查循環(huán)初始值
③二次循環(huán):檢查2次循環(huán)
④m次循環(huán):檢查多次循環(huán)
⑤最大次數(shù)循環(huán)、比最大次數(shù)多一次、少一次的循環(huán)。23例:求數(shù)組中的最小值k=i;for(j=i+1;j<=n;j++)
if(A[j]<A[k])k=j;
24k=i;j=i+1;j<=n?A[j]<A[k]?j++fdcabek=jYN測試用例選擇26
①
對最內(nèi)層循環(huán)做簡單循環(huán)的全部測試。所有其它層的循環(huán)變量置為最小值;
②逐步外推,對其外面一層循環(huán)進行測試。測試時保持所有外層循環(huán)的循環(huán)變量取最小值,所有其它嵌套內(nèi)層循環(huán)的循環(huán)變量取“典型”值;
③反復進行,直到所有各層循環(huán)測試完畢。④對全部各層循環(huán)同時取最小循環(huán)次數(shù),或者同時取最大循環(huán)次數(shù)(2)
嵌套循環(huán)2728(3)連鎖循環(huán)
如果各個循環(huán)互相獨立,則可以用與簡單循環(huán)相同的方法進行測試。但如果幾個循環(huán)不是互相獨立的,則需要使用測試嵌套循環(huán)的辦法來處理。(4)非結構循環(huán)
這一類循環(huán)應該使用結構化程序設計方法重新設計測試用例。
29基本路徑測試基本路徑測試方法把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),程序中的循環(huán)體最多只執(zhí)行一次。簡化循環(huán)路徑循環(huán)使路徑數(shù)量急劇增長簡化無論循環(huán)的形式和實際執(zhí)行循環(huán)體的次數(shù)多少,只考慮循環(huán)0次和1次兩種情況進入循環(huán)體一次跳出循環(huán)體30基本路徑測試思路在程序控制流圖的基礎上,分析控制構造的環(huán)路復雜性,導出基本可執(zhí)行路徑集合,設計測試用例的方法。設計出的測試用例要保證在測試中,程序的每一個可執(zhí)行語句至少要執(zhí)行一次。311.程序的控制流圖符號○為控制流圖的一個結點,表示一個或多個無分支的PDL語句或源程序語句。箭頭為邊,表示控制流的方向。32在選擇或多分支結構中,分支的匯聚處應有一個匯聚結點。邊和結點圈定的區(qū)域叫做區(qū)域,當對區(qū)域計數(shù)時,圖形外的區(qū)域也應記為一個區(qū)域。如果判斷中的條件表達式是由一個或多個邏輯運算符(OR,AND,...)
連接的復合條件表達式,則需改為一系列只有單個條件的嵌套的判斷。3334352.程序環(huán)路復雜性程序的環(huán)路復雜性給出了程序基本路徑集中的獨立路徑條數(shù),這是確保程序中每個可執(zhí)行語句至少執(zhí)行一次所必需的測試用例數(shù)目的上界。環(huán)路復雜度V(G)=P+1(P:判定節(jié)點數(shù))從控制流圖來看,一條獨立路徑是至少包含有一條在其它獨立路徑中從未有過的邊的路徑。36例如,在圖示的控制流圖中,一組獨立的路徑是
path1:1-11
path2:1-2-3-4-5-10-1-11
path3:1-2-3-6-8-9-10-1-11
path4:1-2-3-6-7-9-10-1-11路徑path1,path2,path3,path4組成了控制流圖的一個基本路徑集。373.基本路徑測試法的操作步驟導出控制流圖計算環(huán)路復雜度確定基本路徑集生成測試用例38結構測試案例分析求數(shù)組中的最小值
k=i;for(j=i+1;j<=n;j++){if(A[j]<A[k])k=j;}k=i;j=i+1j<=n?A[j]<A[k]?k=jj++acbdef39基本路徑測試340測試用例用例編號輸入預期輸出循環(huán)inA[i]A[i+1]路徑k10111ac1211212abefc1311221abdfc241疑問測試用例是否足夠?循環(huán)測試是否足夠?在結構復雜,測試用例數(shù)非常多的情況下,這些測試用例已經(jīng)可以滿足測試,但并不具有充分性如何達到充分性?
測試2次循環(huán)42測試用例(較充分)用例編號輸入輸出循環(huán)inA[i]A[i+1]A[i+2]路徑k10111ac1211212abefc1311221abdfc24213123abefbefc15213213abdfbefc26213231abefbdfc37213321abdfbdfc3434.最少測試用例數(shù)計算對于具體的程序,至少要設計多少測試用例?估算最少測試用例數(shù)幫助執(zhí)行測試有助于估算測試的時間44454.3靜態(tài)白盒測試4.3.1代碼檢查法代碼檢查方式桌面檢查代碼審查走查代碼檢查項目代碼檢查規(guī)則缺陷檢查表編碼規(guī)范464.3.2靜態(tài)結構分析法測試工具函數(shù)調(diào)用關系圖、模塊控制流圖eg.LogiscopeP834.3.3靜態(tài)質(zhì)量度量參考資料:/p-29310738424.html474849505152535455564.4白盒測試綜合策略先靜后動先結構分析,再動態(tài)檢測不同階段,測試側(cè)重點不同57黑盒測試(BLACK-BOXTESTING)也稱功能測試、數(shù)據(jù)驅(qū)動測試把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結構和內(nèi)部特性的情況下,針對軟件界面和軟件功能進行測試,只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。黑盒測試方法主要有等價類劃分、邊界值分析、錯誤推測、場景法、因-果圖、正交實驗法等,主要針對軟件界面和軟件功能進行測試。5黑盒測試58
黑盒測試方法是在程序接口上進行測試,主要是為了發(fā)現(xiàn)以下錯誤:是否有不正確或遺漏了的功能?輸入能否正確地接受?能否輸出正確的結果?是否有數(shù)據(jù)結構錯誤或外部信息(例如數(shù)據(jù)庫文件)訪問錯誤?性能上是否能夠滿足要求?是否有初始化或終止性錯誤?
黑盒測試的作用59
從理論上講,黑盒測試只有采取窮舉輸入測試,把所有可能的輸入都作為測試情況考慮,才能查出程序中所有的錯誤,實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,還要對那些不合法的但是可能的輸入進行測試。這樣看來,完全測試是不可能的,所以我們要進行有針對性的測試,通過制定測試案例指導測試的實施,保證軟件測試有計劃,有步驟,有組織的進行。黑盒測試的作用60黑盒測試流程規(guī)范(Specification)生成測試用例測試用例被測軟件輸出生成預期的輸出結果規(guī)范(Specification)預期的輸出結果比較和分析正確/錯誤61
(中科院軟件研究所2000年碩士研究生統(tǒng)考題)設要對一個自動飲料售貨機軟件進行黑盒測試。該軟件的規(guī)格說明如下:
“有一個處理單價為1元5角錢的盒裝飲料的自動售貨機軟件。若投入1元5角硬幣,按下“可樂”、“雪碧”或“紅茶”按鈕,相應的飲料就送出來。若投入的是2元硬幣,在送出飲料的同時退還5角硬幣。”
(1)試利用因果圖法,建立該軟件的因果圖;
(2)設計測試該軟件的全部測試用例。
黑盒測試---舉例625.1.1等價類劃分等價類劃分是一種典型的黑盒測試方法,使用這一方法時,完全不考慮程序的內(nèi)部結構,只依據(jù)程序的規(guī)格說明來設計測試用例。等價類劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)作為測試用例。63步驟劃分等價類(列出等價類表)選取測試用例劃分等價類
等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。測試某等價類的代表值就等價于對這一類其它值的測試。64等價類的劃分有兩種不同的情況:
①
有效等價類:是指對于程序的規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構成的集合。
②
無效等價類:是指對于程序的規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構成的集合。在設計測試用例時,要同時考慮有效等價類和無效等價類的設計。65劃分等價類的原則。
(1)
如果輸入條件規(guī)定了取值范圍,或值的個數(shù),則可以確立一個有效等價類和兩個無效等價類。
66例如,在程序的規(guī)格說明中,對輸入條件有一句話:
“……
項數(shù)可以從1到999……”
則有效等價類是“1≤項數(shù)≤999”兩個無效等價類是“項數(shù)<1”或“項數(shù)>999”。在數(shù)軸上表示成:67
(2)
如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時可確立一個有效等價類和一個無效等價類。例:在Pascal語言中對變量標識符規(guī)定為“以字母打頭的……串”。那么所有以字母打頭的構成有效等價類,而不在此集合內(nèi)(不以字母打頭)的歸于無效等價類。68
(3)
如果輸入條件是一個布爾量,則可以確定一個有效等價類和一個無效等價類。
(4)
如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對每個輸入值分別進行處理。這時可為每一個輸入值確立一個有效等價類,此外針對這組值確立一個無效等價類,它是所有不允許的輸入值的集合。例:輸入條件說明學歷可為:學士、碩士、博士三種之一,則分別取這三個值作為三個有效等價類,另外把三種學歷之外的任何學歷作為無效等價類69(5)
如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。例:Pascal語言規(guī)定“一個語句必須以分號‘;’結束”。這時,可以確定一個有效等價類“以‘;’結束”,若干個無效等價類“以‘:’結束”、“以‘,’結束”、“以‘
’結束”、“以LF結束”等。70確立測試用例
在確立了等價類之后,建立等價類表,列出所有劃分出的等價類。71再從劃分出的等價類中按以下原則選擇測試用例:
(1)
為每一個等價類規(guī)定一個唯一編號;
(2)
設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止;
(3)
設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。72
用等價類劃分法設計測試用例的實例
在某一PASCAL語言版本中規(guī)定:“標識符是由字母開頭,后跟字母或數(shù)字的任意組合構成。有效字符數(shù)為8個,最大字符數(shù)為80個?!?并且規(guī)定:“標識符必須先說明,再使用?!?/p>
“在同一說明語句中,標識符至少必須有一個?!?/p>
73用等價類劃分方法,建立輸入等價類表:74下面選取了9個測試用例,它們覆蓋了所有的等價類。
①VARx,T1234567:REAL;
BEGINx:=5.414;
T1234567:=2.732;
...…(1),(2),(4),(8),(9),(12),(14)
②VAR:REAL;
(3)
③VARx,:REAL;(5)
75④VART12345678:REAL;
(6)⑤VART12345......:REAL;
(7)
多于80個字符⑥VART$:CHAR;
(10)⑦VARGOTO:INTEGER;
(11)⑧VAR2T:REAL;
(13)⑨VARPAR:REAL;
(15)
BEGIN......
PAP:=SIN(5.14*0.8)/6;76練習1
某報表處理系統(tǒng)要求用戶輸入處理報表的日期,日期限制在2003年1月至2008年12月,即系統(tǒng)只能對該段期間內(nèi)的報表進行處理,如日期不在此范圍內(nèi),則顯示輸入錯誤信息。系統(tǒng)日期規(guī)定由年、月的6位數(shù)字字符組成,前四位代表年,后兩位代表月。
如何用等價類劃分法設計測試用例,
來測試程序的日期檢查功能?77第一步:等價類劃分輸入條件有效等價類無效等價類
報表日期的類型及長度6位數(shù)字字符(1)有非數(shù)字字符(4)少于6個數(shù)字字符(5)多于6個數(shù)字字符(6)年份范圍在2003~2008之間(2)小于2003(7)大于2008(8)月份范圍在1~12之間(3)“報表日期”輸入條件的等價類表小于1(9)大于12(10)78第二步:為有效等價類設計測試用例
測試數(shù)據(jù)期望結果覆蓋范圍200306等價類(1)(2)(3)輸入有效對表中編號為1,2,3的3個有效等價類用一個測試用例覆蓋:(1)6位數(shù)字字符(2)年在2003~2008之間(3)月在1~12之間79第三步:為每一個無效等價類設至少設計一個測試用例
測試數(shù)據(jù)期望結果覆蓋范圍003MAY等價類(4)輸入無效20035等價類(5)輸入無效2003005等價類(6)輸入無效200105等價類(7)輸入無效200905等價類(8)輸入無效200300等價類(9)輸入無效200313等價類(10)輸入無效不能出現(xiàn)相同的測試用例本例的10個等價類至少需要8個測試用例80練習2
對招干考試系統(tǒng)“輸入學生成績”子模塊設計測試錄入準考證號的測試用例。準考證號數(shù)據(jù)格式定義:共6位數(shù)字組成,其中第一位為專業(yè)代號:1-行政專業(yè),2-法律專業(yè),3-財經(jīng)專業(yè)后5位為考生順序號,編碼范圍為:行政專業(yè)準考證號碼為:110001~111215
法律專業(yè)準考證號碼為:210001~212006
財經(jīng)專業(yè)準考證號碼為:310001~314015
準考證號碼的等價類劃分
有效等價類:
(1)110001~111215(2)210001~212006(3)310001~314015
無效等價類:
(4)-
~110000(5)111216~210000(6)212007~31000(7)314016~+81練習3根據(jù)下面給出的規(guī)格說明,利用等價類劃分的方法,給出足夠的測試用例。“一個程序讀入3個整數(shù),把這三個數(shù)值看作一個三角形的3條邊的長度值。這個程序要打印出信息,說明這個三角形是不等邊的、是等腰的、還是等邊的。”
82舉例輸入條件有效等價類無效等價類是否三角形的三條邊(A>0),(1)(B>0),(2)(C>0),(3)(A+B>C),(4)(B+C>A),(5)(A+C>B),(6)(A≤0),(7)(B≤0),(8)(C≤0),(9)(A+B≤C),(10)(B+C≤A),(11)(A+C≤B),(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(A≠B)and(B≠C)and(C≠A)(16)是否等邊三角形(A=B)and(B=C)and(C=A)(17)(A≠B),(18)(B≠C),(19)(C≠A),(20)83舉例序號【A,B,C】覆蓋等價類輸出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】(7)不能構成三角形3【1,0,2】(8)4【1,2,0】(9)5【1,2,3】(10)6【1,3,2】(11)7【3,1,2】(12)8【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)等邊三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等邊三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)845.1.2邊界值分析邊界值分析也是一種黑盒測試方法,是對等價類劃分方法的補充。人們從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。85比如,在做三角形計算時,要輸入三角形的三個邊長:A、B和C。我們應注意到這三個數(shù)值應當滿足
A>0、B>0、C>0、
A+B>C、A+C>B、B+C>A,才能構成三角形。但如果把六個不等式中的任何一個大于號“>”錯寫成大于等于號“≥”,那就不能構成三角形。問題恰出現(xiàn)在容易被疏忽的邊界附近。86邊界值分析不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測試情況這里所說的邊界是指,相當于輸入等價類和輸出等價類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。使用邊界值分析方法設計測試用例,首先應確定邊界情況。應當選取正好等于,剛剛大于,或剛剛小于邊界的值做為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值做為測試數(shù)據(jù)。
87
邊界條件類型
如果軟件測試問題包含確定的邊界,那么數(shù)據(jù)類型可能是:數(shù)值字符位置數(shù)量速度地址尺寸……還要考慮數(shù)據(jù)類型的特征:第一個/最后一個最小值/最大值開始/完成空/滿最慢/最快相鄰/最遠超過/在內(nèi)……88輸入條件報表日期的類型及長度1個數(shù)字字符5個數(shù)字字符7個數(shù)字字符有1個非數(shù)字字符全部是非數(shù)字字符6個數(shù)字字符顯示出錯顯示出錯顯示出錯顯示出錯顯示出錯輸入有效日期范圍月份范圍“報表日期(6位數(shù)字字符)”邊界值分析法測試用例測試用例說明測試數(shù)據(jù)期望結果選取理由52003520030052005.5MAY---200305月份為1月月份為12月月份<1月份>12200301200312200300200313200301200812200300200813輸入有效輸入有效顯示出錯顯示出錯輸入有效輸入有效顯示出錯顯示出錯在有效范圍邊界上選取數(shù)據(jù)僅有1個合法字符比有效長度少1比有效長度多1只有1個非法字符6個非法字符類型及長度均有效最小日期最大日期剛好小于最小日期剛好大于最大日期最小月份最大月份剛好小于最小月份剛好大于最大月份89有效等價類和用來測試getNumDaysInMonth()方法所選的有效輸入
有效等價類一個月有31天,非閏年19017(七月)一個月有31天,閏年19047(七月)一個月有30天,非閏年19016(六月)一個月有30天,閏年19046(六月)一個月為28或29天,非閏年19012(二月)月份輸入值年份輸入值一個月為28或29天,閏年2(二月)190490用來測試getNumDaysInMonth()方法的附加邊界值等價類可以被400整除的閏年20002(二月)可以被100整除的非閏年19002(二月)非正數(shù)無效月份12910正數(shù)無效月份131513月份輸入值年份輸入值915.1.3錯誤推測法人們也可以靠經(jīng)驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的例子。這就是錯誤推測法。錯誤推測法的基本想法是:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例。92錯誤推測法根據(jù)經(jīng)驗、直覺和預感來進行測試例:一定要考慮建立處理下列等價類:缺省值空白空值零值無輸入條件重復信息(eg.用戶名已存在)在已經(jīng)找到軟件缺陷的地方再找找
93現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結果就形成事件流。這種在軟件設計方面的思想也可引入到軟件測試中,可以比較生動地描繪出事件觸發(fā)時的情景,有利于測試設計者設計測試用例,同時使測試用例更容易理解和執(zhí)行。提出這種測試思想的是Rational公司,并在RUP2000中文版當中有其詳盡的解釋和應用。用例場景用來描述流經(jīng)用例的路徑,從用例開始到結束遍歷這條路徑上所有基本流和備選流。5.1.4場景法94場景法:基本流和備選流右圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡單的路徑。備選流用不同的彩色表示,一個備選流可能從基本流開始,在某個特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個備選流(如備選流2),或者終止用例而不再重新加入到某個流(如備選流2和4)。95場景法:基本流和備選流按照上圖中每個經(jīng)過用例的路徑,可以確定以下不同的用例場景:場景1基本流場景2基本流備選流1場景3基本流備選流1備選流2場景4基本流備選流3場景5基本流備選流3備選流1場景6基本流備選流3備選流1備選流2場景7基本流備選流4場景8基本流備選流3備選流4注:為方便起見,場景5、6和8只考慮了備選流3循環(huán)執(zhí)行一次的情況。965.1.5因果圖因果圖的適用范圍
如果在測試時必須考慮輸入條件的各種組合,可使用一種適合于描述對于多種條件的組合、相應產(chǎn)生多個動作的形式來設計測試用例,這就需要利用因果圖。
因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。97用因果圖生成測試用例的基本步驟
(1)
分析軟件規(guī)格說明描述中
哪些是原因
(即輸入條件或輸入條件的等價類)及哪些是結果
(即輸出條件)
并給每個原因和結果賦予一個標識符。
(2)
分析軟件規(guī)格說明描述中的語義,找出原因與結果之間,原因與原因之間對應的是什么關系?
根據(jù)這些關系,畫出因果圖。
98
(3)
由于語法或環(huán)境限制,有些原因與原因之間,原因與結果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號標明約束或限制條件。
(4)
把因果圖轉(zhuǎn)換成判定表。
(5)
把判定表的每一列拿出來作為依據(jù),設計測試用例。
99因果圖設計方法
通常在因果圖中,用Ci表示原因,用Ei表示結果,其基本符號如下圖所示。Ci和Ei均可取值“0”和“1”,“0”表示某狀態(tài)不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。因果圖的基本符號如下:CiEi恒等Ci=1,Ei=1;Ci=0,Ei=0;Ci(a)(b)Ei非Ci=1,Ei=0;Ci=0,Ei=1;100因果圖設計方法(d)與C1,C2,C3全=1,Ei=1;
C1,C2,C3有一個以上=0,Ei=0;C1C2C3Ei(c)C1C2C3Ei或C1,C2,C3有一個以上=1,Ei=1;C1,C2,C3全=0,Ei=0;101因果圖設計方法
為了表示原因與原因之間、結果與結果之間可能存在的約束條件,在因果圖中可以附加一些表示約束條件的符號。從輸入(原因)考慮有4種約束:如圖(a)(b)(c)(d)從輸出(結果)考慮:還有1種約束,如圖(e)(a)互斥:a和b同時只能有一個為1,但可以都為0abac(b)E
包含:a、b、c中至少有一個為1Ib102因果圖設計方法(c)要求:若a=1,則要求b也要=1;其它不約束abab(e)R
強制(屏蔽):a=1,強制b=0;其它不約束M(d)abO唯一:a和b有且僅有一個為1103
例如,有一個處理單價為5角錢的飲料的自動售貨機軟件測試用例的設計。其規(guī)格說明如下:
若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應的飲料就送出來。若售貨機沒有零錢找,則一個顯示〖零錢找完〗的紅燈亮,這時在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時退還5角硬幣?!?04(1)分析這一段說明,列出原因和結果
原因:1.
售貨機有零錢找
2.
投入1元硬幣
5.
投入5角硬幣
4.
押下橙汁按鈕
5.
押下啤酒按鈕 建立中間結點,表示處理中間狀態(tài)
11.
投入1元硬幣且押下飲料按鈕
12.
押下〖橙汁〗或〖啤酒〗的按鈕
15.
應當找5角零錢并且售貨機有零錢找
14.
錢已付清
105
結果:21.
售貨機〖零錢找完〗燈亮
22.
退還1元硬幣
25.
退還5角硬幣
24.
送出橙汁飲料
25.
送出啤酒飲料
(2)畫出因果圖。所有原因結點列在左 邊,所有結果結點列在右邊。
(3)
由于2與3,4與5不能同時發(fā)生,
分別加上約束條件E。
(4)因果圖
(5)轉(zhuǎn)換成判定表106
107
108練習4某電力公司有A、B、C、D四類收費標準,并規(guī)定:居民用電<100度/月按A類收費≥100度/月按B類收費動力用電<10000度/月,非高峰,B類收費≥10000度/月,非高峰,C類收費
<10000度/月,高峰,C類收費≥10000度/月,高峰,D類收費109組合條件條件(原因)
動作(結果)ABC123123456101100011000110000100001104101050011D000110010000測試用例110為判定表每一列設計一個測試用例:1列居民電,90度/月A2列居民電,110度/月B3列動力電,非高峰,8000度/月B4列動力電,非高峰,1.2萬度/月C5列動力電,高峰,0.9萬度/月C6列動力電,高峰,1.1萬度/月D
條件測試用例預期結果組合(輸入數(shù)據(jù))(輸出動作)1115.1.6正交實驗法1、正交測試用例設計簡介正交測試用例設計又稱為組合實驗法,利用因果圖來設計測試用例時,作為輸入條件的原因與輸出結果之間的因果關系,有時很難從軟件需求規(guī)格說明中得到。往往因果關系非常龐大,以至于據(jù)此因果圖而得到的測試用例數(shù)目多的驚人,給軟件測試帶來沉重的負擔,為了有效地,合理地減少測試的工時與費用,可利用正交實驗設計方法進行測試用例的設計。正交實驗設計方法是依據(jù)伽羅瓦(Galois,1811-1832,法國數(shù)學家))理論,從大量的測試數(shù)據(jù)(測試用例)中挑選適量的,有代表性的點(測試用例),從而合理地安排測試的一種科學實驗設計方法。1122、正交試驗法的使用原因
(A)測試需求對某人進行查詢,假設查詢某個人時有三個查詢條件:根據(jù)“姓名”進行查詢根據(jù)“身份證號碼”查詢根據(jù)“手機號碼”查詢113正交試驗法的使用原因(續(xù))
(B)全部測試
分析上述測試需求,有3個被測元素,我們稱為因素,每個因素有兩個取值(填寫,不填寫),我們稱取值為因子,所以全部的測試用例個數(shù)是2*2*2=8,參見下表。序號姓名身份證號碼手機號碼10002011300141005110601070118111114正交試驗法的使用原因(續(xù))
(C)利用正交表測試,參見下表。(D)正交表測試,再補充一條可疑測試用例得到的結果,參見下表。序號姓名身份證號碼手機號碼1000201131014110序號姓名身份證號碼手機號碼100020113101411051111153、因素和因子的概念(A)什么是因素(Factor)在一項測試中,凡欲考察的變量稱為因素(變量)。(B)什么是因子(Level)在測試范圍內(nèi),因素被考察的值稱為因子(變量的取值)。
(C)什么是正交試驗設計
正交試驗設計是研究多因素、多因子的一種設計方法,它是根據(jù)正交性從全面測試中挑選出部分有代表性的點進行測試,這些有代表性的點具備了“均勻分散,齊整可比”的特點,正交試驗設計是一種基于正交表的、高效率、快速、經(jīng)濟的測試設計方法。1164、正交表的構成
正交表是一整套規(guī)則的設計表格(Ln(tc)),L為正交表的代號,n為測試的次數(shù),t為因子數(shù),c為因素數(shù)/列數(shù),也就是可能安排最多的因素個數(shù)。例如L9(34),它表示需作9次測試,最多可觀察4個因素,每個因素均為3因子。(A)行數(shù)(Runs):正交表中的行的個數(shù),即測試的次數(shù)。(B)因素數(shù)(Factors):正交表中列的個數(shù)。(C)因子數(shù)(Levels):任何單個因素能夠取得的值的最大個數(shù)。正交表中的包含的值為從0到數(shù)“因子數(shù)-1”或從1到“因子數(shù)”。(D)正交表的表示形式:Ln(tc)(因子數(shù)因素數(shù))。一個正交表中也可以各列的水平數(shù)不相等,我們稱它為混合型正交表,如L8(4×24),此表的5列中,有1列為4因子,4列為2因子。1175、正交表的正交性
(A)整齊可比性在同一張正交表中,每個因素的每個因子出現(xiàn)的次數(shù)是完全相同的。由于在測試中每個因素的每個因子與其它因素的每個因子參與測試的機率是完全相同的,這就保證在各個因子中最大程度的排除了其它因素因子的干擾。因而,能最有效地進行比較和作出展望,容易找到好的測試條件。例如:在兩因子正交表中,任何一列都有數(shù)碼“1”與“2”,且任何一列中它們出現(xiàn)的次數(shù)是相等的;如在三因子正交表中,任何一列都有“1”、“2”、“3”,且在任一列的出現(xiàn)數(shù)均相等。118正交表的正交性(續(xù))
(B)均衡分散性在同一張正交表中,任意兩列(兩個因素)的因子搭配(橫向形成的數(shù)字對)是完全相同的。這樣就保證了測試條件均衡地分散在因素因子的完全組合之中,因而具有很強的代表性,容易得到好測試條件。例如在兩因子正交表中,任何兩列(同一橫行內(nèi))有序?qū)ψ庸灿?種:(1.1)、(1.2)、(2.1)、(2.2)。每種對數(shù)出現(xiàn)次數(shù)相等。在三因子情況下,任何兩列(同一橫行內(nèi))有序?qū)灿?種,1.1、1.2、1.3、2.1、2.2、2.3、3.1、3.2、3.3,且每對出現(xiàn)數(shù)也均相等。1196、正交表設計步驟
正交表設計的主要步驟如下:①確定因素數(shù)(列數(shù))根據(jù)測試目的,選擇處理因素與不可忽略的交互作用,明確其共有多少個數(shù),如果對研究中的某些問題尚不太了解,列可多一些,但一般不宜過多。當每個試驗號無重復,只有1個試驗數(shù)據(jù)時,可設2個或多個空白列,作為計算誤差項之用。②確定各因素的因子數(shù)根據(jù)測試目的,一般二因子(有、無)可作因素篩選用;也可適用于測試次數(shù)少、分批進行的研究。三因子可觀察變化趨勢,選擇最佳搭配;多因子能以一次滿足測試要求。120正交表設計步驟(續(xù))③選定正交表根據(jù)確定的列數(shù)(c)與因子數(shù)(t)選擇相應的正交表。常用的正交表有L8(27)、L9(34)、L16(45)、L8(4x24)等。在行數(shù)為mn型的正交表中(m,n是正整數(shù)),測試次數(shù)(行數(shù))=因素數(shù)x(每列因子數(shù)-1)+1,例如:L8(27),8=7x(2-1)+1,利用上述關系式可以從所要考察的因子數(shù)來決定最低的測試次數(shù),而選擇合適的正交表。例如要考察5個3因子及一個2因子,則起碼的測試次數(shù)為5x(3-1)+1x(2-1)+1=12(次),這就是說要在行數(shù)不小于12,而且既有2因子列又有3因子列的正交表中選擇,L18(2x37)適合。綜上所述,(a)需實際因素數(shù)≥正交表因素數(shù);實際因素的因子數(shù)≥正交表因素的因子數(shù)。(b)當有2個或以上正交表可以被選擇時,需選擇行數(shù)最少的正交表。121正交表設計步驟(續(xù))④把變量的值映射到表中。⑤把每一行各因素的取值組合做為一個測試用例。⑥補充上有價值的其它測試用例正交實驗的正交表設計是正交設計的關鍵,它承擔著將各因素及交互作用合理安排到正交表的各列中的重要任務,因此一個正交表設計就是一個設計方案。122示例1:因子數(shù)相同示例2:因子數(shù)相同,但在正交表中找不到相同的因素數(shù)示例3:因子數(shù)不相同示例123
因子數(shù)相同:因子數(shù)(變量的取值)相同、因素數(shù)(變量)剛好符合正交表。(A)測試需求對某人進行查詢,假設查詢某個人時有三個查詢條件:根據(jù)“姓名”進行查詢根據(jù)“身份證號碼”查詢根據(jù)“手機號碼”查詢1、示例1:因子數(shù)相同124(B)考慮查詢條件要么不填寫,要么填寫,此時可用正交表進行設計(C)確定因素數(shù)和因子
①有三個因素:姓名、身份證號、手機號碼②每個因素有兩個因子:姓名:填、不填身份證號:填、不填手機號碼:填、不填(D)選擇正交表表中的因素數(shù)>=3表中至少有三個因素的水平數(shù)>=2行數(shù)取最少的一個結果:L4(23)示例1:因子數(shù)相同(續(xù))125(E)正交表姓名:0—>填寫;1—>不填寫身份證號:0—>填寫;1—>不填寫手機號碼:0—>填寫;1—>不填寫(F)用L4(23)設計的測試用例測試用例如下:1:填寫姓名、填寫身份證號、填寫手機號2:填寫姓名、不填身份證號、不填手機號3:不填姓名、填寫身份證號、不填手機號4:不填姓名、不填身份證號、填寫手機號增補測試用例5:不填姓名、不填身份證號、不填手機號示例1:因子數(shù)相同(續(xù))126(A)測試需求(B)確定因素和因子①有五個因素:音形碼、拼音碼、路名碼、行業(yè)類別和特征碼。②每個因素有兩個因子:
音形碼:填、不填拼音碼:填、不填路名碼:填、不填行業(yè)類別:填、不填特征碼:填、不填2、示例2:因子數(shù)相同,但在正交表中找不到相同的因素數(shù)127(C)選擇正交表表中的因素數(shù)>=5表中至少有五個因素的水平數(shù)>=2行數(shù)取最少的一個結果:L8(27)(D)正交表音形碼:1—>不填寫;2—>填寫拼音碼: 1—>不填寫;2—>填寫路名碼: 1—>不填寫;2—>填寫行業(yè)類別:1—>不填寫;2—>填寫特征碼: 1—>不填寫;2—>填寫帶入因子后得到示例2:因子數(shù)相同,但在正交表中找不到相同的因素數(shù)(續(xù))128
(E)用L8(27)設計的測試用例音形碼不填、拼音碼不填、路名碼不填、行業(yè)類別不填、特征碼不填音形碼不填、拼音碼不填、路名碼不填、行業(yè)類別填寫、特征碼填寫音形碼不填、拼音碼填寫、路名碼填寫、行業(yè)類別不填、特征碼不填音形碼不填、拼音碼填寫、路名碼填寫、行業(yè)類別填寫、特征碼填寫音形碼填寫、拼音碼不填、路名碼填寫、行業(yè)類別不填、特征碼填寫音形碼填寫、拼音碼不填、路名碼填寫、行業(yè)類別填寫、特征碼不填音形碼填寫、拼音碼填寫、路名碼不填、行業(yè)類別不填、特征碼填寫音形碼填寫、拼音碼填寫、路名碼不填、行業(yè)類別填寫、特征碼不填示例2:因子數(shù)相同,但在正交表中找不到相同的因素數(shù)(續(xù))129(A)測試需求假設有一個系統(tǒng)有5個獨立的變量(A,B,C,D,E)。變量A和B都有兩個取值(A1、A2和B1、B2)。變量C和D都有三個可能的取值(C1、C2、C3和D1、D2、D3)。變量E有六個可能的取值(E1、E2、E3、E4、E5、E6)。(B)確定因素和因子①有五個因素(變量):A、B、C、D和E。②兩個因素有兩個因子(變量的取值)、兩個因素有三個因子,一個因素有六個因子。A:A1、A2B:B1、B2C:C1、C2、C3D:D1、D2、D3E:E1、E2、E3、E4、E5、E63、示例3:因子數(shù)不相同130(C)選擇正交表表中的因素數(shù)(變量)>=5表中有二個因素的因子(變量的取值)>=2另外二個因素的因子>=3另外一個因素的因子>=6從L49(78)、L18(36×61)中取行數(shù)最少的一個結果:L18(36×61)(D)正交表A:0—>A1,1—>A2;B:0—>B1,1—>B2;C:0—>C1,1—>C2,2—>C3;D:0—>D1,1—>D2,2—>D3;E:0—>E1,1—>E2,2—>E3,3—>E4,4—>E5,5—>E6;示例3:因子數(shù)不相同(續(xù))131(E)找到正交表L18(36×61)
。
因為變量只有5個,所以在7列中需要刪除兩列,因為第7個因素中含有6個因子能保證E的6個取值,所以不能刪除第7列,結論是刪除其它6列中的任意兩列均可。因子中出現(xiàn)不能帶入的值時,將該因素的取值循環(huán)帶入。(F)用L18(36×61)設計的測試用例測試用例省略測試用例減少數(shù):216—>18加上一些可疑的情況(設為n個)為18+n它比原來也少多了示例3:因子數(shù)不相同(續(xù))132
學創(chuàng)網(wǎng)案例分析
學創(chuàng)網(wǎng)后臺,圖書管理/錄入圖書/添加圖書模塊進行正交測試,界面參考如下圖。案例133(A)測試需求該模塊有有11個獨立的變量。(B)確定因素和因子①有11個因素(變量)。②9個因素有2個因子(變量的取值)、1個因素有3個因子,1個因素有4個因子。譯者:可填、可不填出版社:可填、可不填出版日期:可填、可不填ISBN:可填、可不填條形碼:可填、可不填是否折扣:可選、可不選版次:可填、可不填圖書簡介:可填、可不填裝幀:平裝、精裝開本:8、16、32圖書分類:考試、輔導書、工具書、教材134(C)選擇正交表表中的因素數(shù)(變量)>=11表中有9個因素的因子(變量的取值)>=21個因素的因子>=31個因素的因子>=4從L24
(211×4×6)、L24(3×4×213)中取行數(shù)最少的一個結果:雖然兩個行數(shù)相同,但是選擇L24(3×4×213)更接近。(D)正交表譯者(E):可填(0)、可不填(1)出版社(F):可填(0)、可不填(1)出版日期(G):可填(0)、可不填(1)ISBN(H):可填(0)、可不填(1)條形碼(I):可填(0)、可不填(1)是否折扣(J):可選(0)、可不選(1)版次(K):可填(0)、可不填(1)圖書簡介(L):可填(0)、可不填(1)裝幀(M):平裝(0)、精裝(1)開本(N):8(0)、16(1)、32(2)圖書分類(O):考試(0)、輔導書(1)、工具書(2)、教材(3)(E)找到正交表L24(3×4×213),其中刪掉4列A、B、C、D。135
靜態(tài)測試是尋找文檔、程序代碼中可能存在的錯誤而不執(zhí)行程序代碼的過程。靜態(tài)測試可以手工進行,也可以借助軟件工具自動進行。靜態(tài)測試技術具有以下特點:靜態(tài)測試不必動態(tài)地執(zhí)行程序,也就不必進行測試用例設計和結果判斷等工作。靜態(tài)測試可以由人工進行,充分發(fā)揮人的邏輯思維優(yōu)勢,行之有效。靜態(tài)測試實施不需特別條件,容易開展。靜態(tài)測試在發(fā)現(xiàn)了錯誤的同時也就定位了錯誤,不需做額外的錯誤定位工作。 靜態(tài)測試主要包括由人工進行的軟件需求評審,軟件設計評審,代碼走查以及主要由軟件工具自動進行的工具輔助靜態(tài)分析。
靜態(tài)測試136
動態(tài)測試:實際運行被測程序,輸入相應的測試用例,判定執(zhí)行結果是否符合要求,從而檢驗程序的正確性、可靠性和有效性。動態(tài)測試技術具有以下特點:實際運行被測試程序,取得程序運行的真實情況、動態(tài)情況,進而進行分析。必須生成測試數(shù)據(jù)來運行程序,測試質(zhì)量依賴于測試數(shù)據(jù)。生成測試數(shù)據(jù),分析測試結果工作量大,使開展測試工作費時、費力。動態(tài)測試中涉及多方面工作,人員多、設備多、數(shù)據(jù)多,要求有較好的管理和工作規(guī)程。動態(tài)測試包括三部分核心內(nèi)容:生成測試數(shù)據(jù),執(zhí)行程序和驗證程序的輸出結果。動態(tài)測試137動態(tài)測試適合層次:單元測試集成測試系統(tǒng)測試用戶的驗收測試回歸測試動態(tài)測試138軟件測試方法測試用例選擇方法靜態(tài)測試動態(tài)測試白盒測試調(diào)試、單元測試黑盒測試集成、系統(tǒng)、驗收軟件測試方法與測試用例設計方法關系白盒測試檢查設計代碼走讀黑盒測試檢查產(chǎn)品說明書139測試方法組合靜態(tài)黑盒測試動態(tài)黑盒測試靜態(tài)白盒測試動態(tài)白盒測試140檢查產(chǎn)品說明書
---靜態(tài)黑盒測試產(chǎn)品說明書文檔(圖片/文字)實例(計算器)產(chǎn)品說明書的必要性一致性確保最終產(chǎn)品符合客戶要求(每個人對于產(chǎn)品外觀、功能和使用方式都有獨到的見解,必須統(tǒng)一)正確計劃測試量可以作為測試項目的書面材料141產(chǎn)品說明書產(chǎn)品說明書:無需執(zhí)行程序無需了解其建立途徑(P13:易用性研究、與客戶溝通、焦點人群、銷售收入等)盡早找出軟件缺陷如何測試產(chǎn)品說明書/需求?142如何測試產(chǎn)品說明書第一步:對產(chǎn)品說明書進行高級審查設身處地為客戶著想、熟悉軟件應用領域相關知識研究現(xiàn)有的標準和規(guī)范公司慣用語/約定、行業(yè)要求/國家標準、用戶界面、硬件等審查和測試同類軟件,用于檢查本產(chǎn)品的產(chǎn)品說明書規(guī)模、復雜性、測試性、質(zhì)量/可靠性先大局,再細節(jié);先整體,再局部。第二步:產(chǎn)品說明書的低級測試技術產(chǎn)品說明書屬性檢查清單完整、準確、精確、一致、貼切、合理、代碼無關、可測試產(chǎn)品說明書用語檢查清單檢查對問題的描述是否準確清晰143閉著眼睛測試軟件
---動態(tài)黑盒測試1動態(tài)黑盒測試隨意敲擊鍵盤尋找破綻/缺陷目標明確的結構化方法進行測試窮舉測試不可能,選取典型的/具有代表性的數(shù)據(jù)進行測試144動態(tài)黑盒測試2通過測試和失敗測試通過測試:軟件能做什么失敗測試:采取各種手段搞垮軟件尋求缺陷eg.測試剛下線的汽車1453等價類劃分Windows文件名測試(P46)
windows文件名可以包含除了、/:*?“<>之外的字符;文件名長度是1-255個。1464邊界值分析及錯誤推測邊界條件、邊界類型、測試邊界線(P50)、次邊界條件、2的乘方(eg1M)、ASCII表、默認、空白、空值、零值、無、重復/已存在數(shù)據(jù)、非法、錯誤、不正確和垃圾數(shù)據(jù)1475通過狀態(tài)測試-1軟件狀態(tài):軟件當前所處的情況或模式實例:畫圖板(P55)實例:word編輯器(未修改/修改)1485通過狀態(tài)測試–2軟件測試員必須測試程序的狀態(tài)及其轉(zhuǎn)換測試軟件的邏輯流程之問題建立狀態(tài)轉(zhuǎn)換圖所有狀態(tài)狀態(tài)間轉(zhuǎn)換條件進入/退出狀態(tài)時需設置的信息及輸出結果減少要測試的狀態(tài)及轉(zhuǎn)換的數(shù)量(P58)狀態(tài)測試:測試狀態(tài)及其轉(zhuǎn)換并
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 業(yè)務信息平臺合同范例
- 墓碑購銷合同范例
- 大白料采購合同模板
- 家電購銷電子合同范例
- 農(nóng)民集體承包土地合同模板
- 公司食堂授權合同模板
- 加工單位銷售合同模板
- 彩鋼瓦翻新質(zhì)保合同范例
- 中國進口合同模板
- 2024形象代言人合同范文
- 污水處理廠單位、分部、分項工程劃分
- 小學生自我意識心理輔導《獨特的我——認識自己,悅納自己》教案
- 涼菜日常工作操作流程與規(guī)范
- 不銹鋼管道及板件焊接工藝卡
- 施工現(xiàn)場保衛(wèi)方案
- 《柔性接口給水管道支墩》(10S505國標圖集)簡介-國標10s505
- 圍棋教案13教學設計
- EXCEL 支票打印模板
- 稱念諸佛名號功德(3)
- 瘋狂動物城歌詞.doc
- 某住宅樓施工圖預算畢業(yè)設計范本
評論
0/150
提交評論