附1-軟件測試方法-STMT-1_第1頁
附1-軟件測試方法-STMT-1_第2頁
附1-軟件測試方法-STMT-1_第3頁
附1-軟件測試方法-STMT-1_第4頁
附1-軟件測試方法-STMT-1_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、軟件測試的方法軟件測試的方法軟件軟件測試的方法測試的方法白盒測試方法白盒測試方法黑盒測試方法黑盒測試方法靜態(tài)測試和動態(tài)測試靜態(tài)測試和動態(tài)測試主動測試和被動測試主動測試和被動測試形式化測試方法形式化測試方法基于風險的測試基于風險的測試模糊測試方法模糊測試方法ALAC測試和隨機測試方法測試和隨機測試方法2第三章 軟件測試方法方法論和具體方法方法論和具體方法p從方法論看,更多體現(xiàn)了一種哲學的思想,從方法論看,更多體現(xiàn)了一種哲學的思想,例如辯證統(tǒng)一的方法,在測試中有許多對立例如辯證統(tǒng)一的方法,在測試中有許多對立統(tǒng)一體,如靜態(tài)測試和動態(tài)測試、白盒測試統(tǒng)一體,如靜態(tài)測試和動態(tài)測試、白盒測試和黑盒測試、自動

2、化測試和手工測試等。和黑盒測試、自動化測試和手工測試等。p軟件測試的方法論來源于軟件工程的方法論軟件測試的方法論來源于軟件工程的方法論,例如有面向?qū)ο蟮拈_發(fā)方法,就有面向?qū)Γ缬忻嫦驅(qū)ο蟮拈_發(fā)方法,就有面向?qū)ο蟮臏y試方法;有敏捷方法,就有和敏捷方象的測試方法;有敏捷方法,就有和敏捷方法對應的測試方法。法對應的測試方法。3第三章 軟件測試方法黑盒子和白盒子黑盒子和白盒子功能測試功能測試數(shù)據(jù)驅(qū)動測試數(shù)據(jù)驅(qū)動測試 結(jié)構(gòu)測試結(jié)構(gòu)測試邏輯驅(qū)動測試邏輯驅(qū)動測試 客戶需求客戶需求事件驅(qū)動事件驅(qū)動輸入輸入輸出輸出4第三章 軟件測試方法靜態(tài)的和動態(tài)的靜態(tài)的和動態(tài)的主持人主持人作者作者記錄員記錄員列席人員列席人

3、員內(nèi)審員內(nèi)審員技術(shù)專業(yè)人員技術(shù)專業(yè)人員用戶代表用戶代表不正式不正式正式正式互審互審 走讀走讀 審查會議審查會議運行程序運行程序5第三章 軟件測試方法自動測試和手工測試自動測試和手工測試手工模擬用戶手工模擬用戶操作操作6第三章 軟件測試方法白盒測試方法白盒測試方法7第三章 軟件測試方法白盒測試方法白盒測試方法(white-box testing)p白盒測試,也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試,也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試。p已知產(chǎn)品的內(nèi)部工作過程,清楚最終生成軟件已知產(chǎn)品的內(nèi)部工作過程,清楚最終生成軟件產(chǎn)品的計算機程序結(jié)構(gòu)及其語句,按照程序內(nèi)產(chǎn)品的計算機程序結(jié)構(gòu)及其語句,按照程序內(nèi)部的結(jié)構(gòu)測試程

4、序,部的結(jié)構(gòu)測試程序,測試程序內(nèi)部的變量狀態(tài)測試程序內(nèi)部的變量狀態(tài)、邏輯結(jié)構(gòu)、運行路徑等、邏輯結(jié)構(gòu)、運行路徑等,檢驗程序中的每條,檢驗程序中的每條通路是否都能按預定要求正確工作,檢查程序通路是否都能按預定要求正確工作,檢查程序內(nèi)部動作或運行是否符合設(shè)計規(guī)格要求,所有內(nèi)部動作或運行是否符合設(shè)計規(guī)格要求,所有內(nèi)部成分是否按規(guī)定正常進行。內(nèi)部成分是否按規(guī)定正常進行。8第三章 軟件測試方法p白盒測試是基于覆蓋的測試,盡可能覆蓋程序的白盒測試是基于覆蓋的測試,盡可能覆蓋程序的結(jié)構(gòu)特性和邏輯路徑,所以其具體方法有:結(jié)構(gòu)特性和邏輯路徑,所以其具體方法有:n邏輯覆蓋邏輯覆蓋n以程序的內(nèi)部邏輯結(jié)構(gòu)為基礎(chǔ),邏輯覆

5、蓋又可進一以程序的內(nèi)部邏輯結(jié)構(gòu)為基礎(chǔ),邏輯覆蓋又可進一步分為語句覆蓋、判定覆蓋、條件覆蓋、判定條步分為語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋等。件覆蓋、條件組合覆蓋等。n循環(huán)覆蓋循環(huán)覆蓋n基本路徑覆蓋基本路徑覆蓋n在程序控制流程的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復在程序控制流程的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復雜性,導出基本可執(zhí)行路徑集合,從而設(shè)計測試用雜性,導出基本可執(zhí)行路徑集合,從而設(shè)計測試用例。例。9第三章 軟件測試方法p白盒測試主要用于單元測試,其基本原則有:白盒測試主要用于單元測試,其基本原則有:n保證每個模塊中所有獨立路徑至少被使用一次。保證每個模塊中所有獨立路徑至少被使用

6、一次。n完成所有邏輯值分別為真值完成所有邏輯值分別為真值(true)和假值和假值(false)的條件的條件下的測試。下的測試。n在上下邊界及可操作范圍內(nèi)運行所有循環(huán),完成循環(huán)在上下邊界及可操作范圍內(nèi)運行所有循環(huán),完成循環(huán)覆蓋測試。覆蓋測試。n檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性,完成邊界條件的檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性,完成邊界條件的測試。測試。10第三章 軟件測試方法p白盒測試法試圖窮舉路徑測試,但幾乎不可能。白盒測試法試圖窮舉路徑測試,但幾乎不可能。n窮舉路徑測試絕不能查出程序違反了設(shè)計規(guī)范,即程窮舉路徑測試絕不能查出程序違反了設(shè)計規(guī)范,即程序在實現(xiàn)一個不是用戶需要的功能。序在實現(xiàn)一個不是用

7、戶需要的功能。n窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。n窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的異常錯窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的異常錯誤。誤。11第三章 軟件測試方法1語句覆蓋語句覆蓋p語句覆蓋法的基本思想是:語句覆蓋法的基本思想是:n設(shè)計若干測試用例,運行被測程序,使程序中的每個設(shè)計若干測試用例,運行被測程序,使程序中的每個可執(zhí)行語句至少被執(zhí)行一次。可執(zhí)行語句至少被執(zhí)行一次。p如果是順序結(jié)構(gòu),就是讓測試從頭執(zhí)行到尾如果是順序結(jié)構(gòu),就是讓測試從頭執(zhí)行到尾p如果有分支、條件和循環(huán),需要利用下面的方法,執(zhí)行足如果有分支、條件和循環(huán)

8、,需要利用下面的方法,執(zhí)行足夠的測試覆蓋全部語句夠的測試覆蓋全部語句p在使用語句覆蓋法時,不能準確的判斷運算中的邏輯關(guān)系在使用語句覆蓋法時,不能準確的判斷運算中的邏輯關(guān)系錯誤錯誤12第三章 軟件測試方法分支測試分支測試 - example1PROGRAM som ( maxint, N : INT )2INT result := 0 ; i := 0 ;3IF N 04THEN N := - N ;5WHILE ( i N ) AND ( result = maxint )6DOi := i + 1 ;7result := result + i ;8OD;9IF result = maxint

9、10THEN OUTPUT ( result )11ELSE OUTPUT ( “too large” )12END.13第三章 軟件測試方法分支測試分支測試 - continuedi:=i+1;result:=result+i;(iN) and(result=maxint)result=maxintN 0N := -N;output(result);output(too large);exitstartyesnonoyesyesnoN =0)result=0 i=014第三章 軟件測試方法2判定覆蓋判定覆蓋p判定覆蓋法的基本思想是:判定覆蓋法的基本思想是:n設(shè)計若干用例,運行被測程序,使得程

10、序設(shè)計若干用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支中每個判斷的取真分支和取假分支至少經(jīng)至少經(jīng)歷一次歷一次,即判斷真假值均曾被滿足。,即判斷真假值均曾被滿足。p一個判定往往代表著程序的一個分支一個判定往往代表著程序的一個分支,所以判定覆蓋也被稱為分支覆蓋。,所以判定覆蓋也被稱為分支覆蓋。p判定覆蓋設(shè)計測試用例時會忽略條件判定覆蓋設(shè)計測試用例時會忽略條件中取中取“或或(OR)”的情況。的情況。15第三章 軟件測試方法3條件覆蓋條件覆蓋p條件覆蓋的基本思想是設(shè)計若干測試用例,執(zhí)行被測條件覆蓋的基本思想是設(shè)計若干測試用例,執(zhí)行被測程序以后,要使每個判斷中每個條件的可能取值至少程序以后

11、,要使每個判斷中每個條件的可能取值至少滿足一次。滿足一次。(iN) and (result=maxint)TrueFalseresult=maxintiNTrueFalse16第三章 軟件測試方法條件測試條件測試目標目標: 保證測試到每個邏輯條件取值為保證測試到每個邏輯條件取值為 true 和和 false簡單條件簡單條件:(a rel-op b) where rel-op= (和和NOT連用連用), 即即 ab; NOT(ab)組合條件組合條件: 由由 AND, OR連接的多個簡單條件,即連接的多個簡單條件,即(ab) AND (c(a+b+c)n測試發(fā)現(xiàn)的錯誤測試發(fā)現(xiàn)的錯誤:n布爾操作符布

12、爾操作符 關(guān)系操作符關(guān)系操作符n布爾變量布爾變量 算術(shù)表達式算術(shù)表達式n布爾括弧布爾括弧17第三章 軟件測試方法條件測試條件測試 (2)域測試域測試n表達式表達式 E1 rel-op E2, 測試測試 E1 = E2n如果如果E1 和和 E2 正確,發(fā)現(xiàn)正確,發(fā)現(xiàn)rel-op的錯誤的錯誤n發(fā)現(xiàn)發(fā)現(xiàn)E1 或或 E2的錯誤,全面分析它們的不同的錯誤,全面分析它們的不同n如果某表達式含有如果某表達式含有n個變量,則個變量,則 需要進行需要進行2n 測試測試分支測試分支測試組合條件組合條件C, 測試測試C為為 true和和 false分支、以及每個條件分支、以及每個條件例如例如 C = (ab) AN

13、D (cb TRUE, FALSEcd TRUE, FALSEC TRUE, FALSETrue AND TrueT. And F., F. And T.,F. And F.18第三章 軟件測試方法條件測試條件測試 的的示例示例 ( i = result = 0 ) :maxint N iN result=maxint -1 1 true false 1 0 false true測試了所有條件測試了所有條件但沒有覆蓋判定(但沒有覆蓋判定(decision) 條件覆蓋不等于判定覆蓋條件覆蓋不等于判定覆蓋i:=i+1;result:=result+i;(iN) and(result=maxint)

14、result=maxintN 0N := -N;output(result);output(too large);exitstartyesnonoyesyesno19第三章 軟件測試方法4判定判定-條件覆蓋條件覆蓋p判定判定-條件覆蓋是判定和條件覆蓋設(shè)計方法的交集,即設(shè)計條件覆蓋是判定和條件覆蓋設(shè)計方法的交集,即設(shè)計足夠的測試用例,使得判斷條件中的所有條件可能取值至足夠的測試用例,使得判斷條件中的所有條件可能取值至少執(zhí)行一次,同時,所有判斷的可能結(jié)果至少執(zhí)行一次少執(zhí)行一次,同時,所有判斷的可能結(jié)果至少執(zhí)行一次5條件組合測試條件組合測試p條件組合覆蓋的基本思想是:條件組合覆蓋的基本思想是:n設(shè)計

15、足夠的測試用例,使得判斷中每個設(shè)計足夠的測試用例,使得判斷中每個判斷條件判斷條件的所有可能的所有可能至少至少出現(xiàn)一次出現(xiàn)一次,并且每個判斷本身的,并且每個判斷本身的判定結(jié)果判定結(jié)果也也至少出現(xiàn)一次至少出現(xiàn)一次。p它與條件覆蓋的差別是它不是簡單地要求每個條件都出現(xiàn)它與條件覆蓋的差別是它不是簡單地要求每個條件都出現(xiàn)“真真”與與“假假”兩種結(jié)果,而是要求讓這些結(jié)果的所有可兩種結(jié)果,而是要求讓這些結(jié)果的所有可能組合都能組合都至少出現(xiàn)一次。至少出現(xiàn)一次。20第三章 軟件測試方法7 基本路徑測試基本路徑測試依據(jù)代碼繪制流程圖依據(jù)代碼繪制流程圖確定流程圖的圈復雜度確定流程圖的圈復雜度(cyclomatic

16、complexity )確定線性獨立路徑的基本集合確定線性獨立路徑的基本集合( basis set )設(shè)計測試用例覆蓋每條基本路徑設(shè)計測試用例覆蓋每條基本路徑6路徑測試路徑測試p顧名思義,路徑覆蓋就是設(shè)計所有的測試用例,來覆蓋程顧名思義,路徑覆蓋就是設(shè)計所有的測試用例,來覆蓋程序中的所有可能的執(zhí)行路徑。序中的所有可能的執(zhí)行路徑。21第三章 軟件測試方法示例示例 源代碼源代碼Procedure: process records1.Do While records remain2.Read record;3.If record field 1 = 0 Then4.store in buffer;5

17、.increment counter;6.Else If record field 2 = 0 Then7.reset counter;8.Else store in file;9.End If10.End If11. End DoEnd22第三章 軟件測試方法示例示例 流程圖流程圖1910112457836圈復雜度圈復雜度V(G) = 連線數(shù)量連線數(shù)量 - 節(jié)點數(shù)量節(jié)點數(shù)量 + 2V(G) =14-12+2=423第三章 軟件測試方法基本路徑測試基本路徑測試:流程圖簡化流程圖簡化順序順序CaseIf-then-elseDo-whileDo-until24第三章 軟件測試方法流程圖的圈復雜度流

18、程圖的圈復雜度 V(G) = 區(qū)域數(shù)量(由節(jié)點、連線包圍的區(qū)域,包括圖形外部區(qū)域) V(G) = 連線數(shù)量 - 節(jié)點數(shù)量 + 2 V(G) = 簡單可預測節(jié)點數(shù)量 + 1圈復雜度(圈復雜度(Cyclomatic complexity):代碼邏輯復雜度的 度量,提供了被測代碼的路徑數(shù)量。復雜度越高,出錯的概率越大V(G)modules25第三章 軟件測試方法流程圖復雜度例子流程圖復雜度例子V(G)=412,378694,51011Region 1Region 2Region 3Region 426第三章 軟件測試方法確定線性獨立的路徑集合確定線性獨立的路徑集合(基本路徑基本路徑) 獨立路徑獨立路

19、徑: 至少引入一系列新的處理語句或條件的任至少引入一系列新的處理語句或條件的任何路徑何路徑 基本集基本集: 由獨立路徑構(gòu)成的集合由獨立路徑構(gòu)成的集合 由基本集導出的由基本集導出的測試用例測試用例,保證每行代碼語句至少被,保證每行代碼語句至少被執(zhí)行一次執(zhí)行一次基本集合基本集合不一定唯一不一定唯一27第三章 軟件測試方法 Path1: 1-2-3-6-7-9-10-1-11示例:基本路徑測試用例示例:基本路徑測試用例 Path2: 1-2-3-6-8-9-10-1-11 Path3: 1-2-3-4-5-10-1-11Path4: 1-11191011245873628第三章 軟件測試方法測試用例

20、覆蓋集合中每條路徑測試用例覆蓋集合中每條路徑基本路徑測試并不是測試所有路徑的組基本路徑測試并不是測試所有路徑的組合,僅僅保證每條基本路徑被執(zhí)行一次合,僅僅保證每條基本路徑被執(zhí)行一次可以不需要活動圖可以不需要活動圖, 但最好繪制程序流程圖但最好繪制程序流程圖計算每個邏輯測試,也就是布爾操作符數(shù)加計算每個邏輯測試,也就是布爾操作符數(shù)加1最好每個單元都進行基本路徑測試,對關(guān)鍵組最好每個單元都進行基本路徑測試,對關(guān)鍵組件則是必要的件則是必要的29第三章 軟件測試方法n目標目標: 在循環(huán)內(nèi)部及邊界上執(zhí)行測試在循環(huán)內(nèi)部及邊界上執(zhí)行測試循環(huán)測試循環(huán)測試 11.簡單循環(huán)簡單循環(huán)(迭代次數(shù)迭代次數(shù)n) 完全跳過

21、循環(huán)完全跳過循環(huán) 只經(jīng)過循環(huán)一次只經(jīng)過循環(huán)一次 經(jīng)過循環(huán)兩次經(jīng)過循環(huán)兩次 經(jīng)過循環(huán)經(jīng)過循環(huán)m( m 0 and b0N = a1 or c1p對于條件對于條件M:條件條件a0:取真(:取真(True)時為)時為T1,取假(,取假(False)時為)時為F1條件條件b0:取真(:取真(True)時為)時為T2,取假(,取假(False)時為)時為F2p對于條件對于條件N:條件條件a1:取真(:取真(True)時為)時為T3,取假(,取假(False)時為)時為F3條件條件c1:取真(:取真(True)時為)時為T4,取假(,取假(False)時為)時為F4第三章 軟件測試方法34p語句覆蓋測試語句覆蓋測試-覆蓋所有的可執(zhí)行語句覆蓋所有的可執(zhí)行語句nP1包含了所有可執(zhí)行語句,可使用包含了所有可執(zhí)行語句,可使用P1來設(shè)計測試用例來設(shè)計測試用例n令令a=2,b=1,c=6,則得到,則得到a=2,b=1,c=5,此時滿足條件,此時滿足條件M和和N,故,故測試用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論