《軟件測試的方法》PPT課件.ppt_第1頁
《軟件測試的方法》PPT課件.ppt_第2頁
《軟件測試的方法》PPT課件.ppt_第3頁
《軟件測試的方法》PPT課件.ppt_第4頁
《軟件測試的方法》PPT課件.ppt_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、顧進(jìn)廣, Ph.D., Professor,軟件測試技術(shù)與工具 第3講 軟件測試的方法, ,第2章回顧,ONTOWEBWUST,軟件缺陷是軟件質(zhì)量的對(duì)立面 軟件缺陷(Bug)是什么 驗(yàn)證和確認(rèn) 軟件測試的分類和階段 - 單元、集成、系統(tǒng)(性能、適用性、兼容性)、驗(yàn)收測試 軟件測試的工作范疇 - 策略、計(jì)劃、設(shè)計(jì)、執(zhí)行、報(bào)告、評(píng)估,第3章 軟件測試的方法,3.1 白盒測試方法 3.2 黑盒測試方法 3.3 靜態(tài)測試和動(dòng)態(tài)測試 3.4 主動(dòng)測試和被動(dòng)測試 3.5 形式化測試方法 3.6 基于風(fēng)險(xiǎn)的測試 3.7 模糊測試方法 3.8 ALAC測試和隨機(jī)測試方法,方法論和具體方法,從方法論看,更多體現(xiàn)

2、了一種哲學(xué)的思想,例如辯證統(tǒng)一的方法,在測試中有許多對(duì)立統(tǒng)一體,如靜態(tài)測試和動(dòng)態(tài)測試、白盒測試和黑盒測試、自動(dòng)化測試和手工測試等。 軟件測試的方法論來源于軟件工程的方法論,例如有面向?qū)ο蟮拈_發(fā)方法,就有面向?qū)ο蟮臏y試方法;有敏捷方法,就有和敏捷方法對(duì)應(yīng)的測試方法。,黑盒子和白盒子,功能測試 數(shù)據(jù)驅(qū)動(dòng)測試,結(jié)構(gòu)測試 邏輯驅(qū)動(dòng)測試,靜態(tài)的和動(dòng)態(tài)的,運(yùn)行程序,自動(dòng)測試和手工測試,手工模擬用戶操作,3.1白盒測試方法,3.1.1 語句覆蓋 3.1.2 判定覆蓋 3.1.3 條件覆蓋 3.1.4 判定條件覆蓋 3.1.5 條件組合覆蓋 3.1.6 路徑覆蓋 3.1.7 基本路徑測試法,Zhu.K,白盒測

3、試方法,邏輯覆蓋:以程序的內(nèi)部邏輯結(jié)構(gòu)為基礎(chǔ),分為語句覆蓋、判定覆蓋、判定-條件覆蓋、條件組合覆蓋等 基本路徑測試:在程序控制流程的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測試用例。,Zhu.K,3.1.1 語句覆蓋,語句覆蓋法的基本思想是設(shè)計(jì)若干測試用例,運(yùn)行被測程序,使程序中的每個(gè)可執(zhí)行語句至少被執(zhí)行一次 如果是順序結(jié)構(gòu),就是讓測試從頭執(zhí)行到尾 如果有分支、條件和循環(huán),需要利用下面的方法,執(zhí)行足夠的測試覆蓋全部語句,3.1.2 判定覆蓋,判定覆蓋法的基本思想是設(shè)計(jì)若干用例,運(yùn)行被測程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷真假值均曾被滿足。

4、一個(gè)判定往往代表著程序的一個(gè)分支, 所以判定覆蓋也被稱為分支覆蓋。,Zhu.K,分支測試 - example,1PROGRAM som ( maxint, N : INT ) 2INT result := 0 ; i := 0 ; 3IF N 0 4THEN N := - N ; 5WHILE ( i N ) AND ( result = maxint ) 6DOi := i + 1 ; 7result := result + i ; 8OD; 9IF result = maxint 10THEN OUTPUT ( result ) 11ELSE OUTPUT ( “too large” )

5、12END.,分支測試 - continued,測試覆蓋全部語句:maxintN 10-1 0-1 但沒有覆蓋所有分支;,用例采取: maxintN 103 0-1 則覆蓋全部分支,(N=0),result=0 i=0,3.1.3 條件覆蓋,條件覆蓋的基本思想是設(shè)計(jì)若干測試用例,執(zhí)行被測程序以后,要使每個(gè)判斷中每個(gè)條件的可能取值至少滿足一次。,(iN) and (result=maxint),True False,result=maxint,iN,True False,條件測試,目標(biāo): 保證測試到每個(gè)邏輯條件取值為 true 和 false,簡單條件:(a rel-op b) where re

6、l-op= (和NOT連用), 即 ab; NOT(ab) 組合條件: 由 AND, OR連接的多個(gè)簡單條件,即(ab) AND (c(a+b+c) 測試發(fā)現(xiàn)的錯(cuò)誤: 布爾操作符 關(guān)系操作符 布爾變量 算術(shù)表達(dá)式 布爾括弧,條件測試 (2),域測試 表達(dá)式 E1 rel-op E2, 測試 E1 = E2 如果E1 和 E2 正確,發(fā)現(xiàn)rel-op的錯(cuò)誤 發(fā)現(xiàn)E1 或 E2的錯(cuò)誤,全面分析它們的不同 如果某表達(dá)式含有n個(gè)變量,則 需要進(jìn)行2n 測試,分支測試 組合條件C, 測試C為 true和 false分支、以及每個(gè)條件 例如 C = (ab) AND (cd) 測試:,Zhu.K,條件測試

7、 的示例,( i = result = 0 ) : maxint N iN result=maxint -1 1 true false 1 0 false true 測試了所有條件,但沒有覆蓋判定(decision) 條件覆蓋不等于判定覆蓋,3.1.4 判定條件覆蓋,判定-條件覆蓋是判定和條件覆蓋設(shè)計(jì)方法的交集,即設(shè)計(jì)足夠的測試用例,使得判斷條件中的所有條件可能取值至少執(zhí)行一次,同時(shí),所有判斷的可能結(jié)果至少執(zhí)行一次,3.1.5 條件組合測試,條件組合覆蓋的基本思想是設(shè)計(jì)足夠的測試用例,使得判斷中每個(gè)條件的所有可能至少出現(xiàn)一次,并且每個(gè)判斷本身的判定結(jié)果也至少出現(xiàn)一次。 它與條件覆蓋的差別是它不

8、是簡單地要求每個(gè)條件都出現(xiàn)“真”與“假”兩種結(jié)果,而是要求讓這些結(jié)果的所有可能組合都至少出現(xiàn)一次,示例 (1),示例 (2),覆蓋了所有組合,但覆蓋路徑有限,1-2-5 沒被覆蓋,3.1.6 路徑測試,顧名思義,路徑覆蓋就是設(shè)計(jì)所有的測試用例,來覆蓋程序中的所有可能的執(zhí)行路徑。,3.1.7 基本路徑測試,依據(jù)代碼繪制流程圖 確定流程圖的圈復(fù)雜度(cyclomatic complexity ) 確定線性獨(dú)立路徑的基本集合( basis set ) 設(shè)計(jì)測試用例覆蓋每條基本路徑,示例 源代碼,Procedure: process records 1.Do While records remain

9、2.Read record; 3.If record field 1 = 0 Then 4.store in buffer; 5.increment counter; 6.Else If record field 2 = 0 Then 7.reset counter; 8.Else store in file; 9.End If 10.End If 11.End Do End,示例 流程圖,1,9,10,11,2,4,5,7,8,3,6,V(G) = 4,基本路徑測試:流程圖簡化,1,2,3,4,5,10,11,流程圖的圈復(fù)雜度,V(G) = 區(qū)域數(shù)量(由節(jié)點(diǎn)、連線包圍的區(qū)域,包括圖形外部區(qū)域

10、) V(G) = 連線數(shù)量 - 節(jié)點(diǎn)數(shù)量 + 2 V(G) = 簡單可預(yù)測節(jié)點(diǎn)數(shù)量 + 1,圈復(fù)雜度(Cyclomatic complexity):代碼邏輯復(fù)雜度的 度量,提供了被測代碼的路徑數(shù)量。復(fù)雜度越高,出錯(cuò)的概率越大,流程圖復(fù)雜度例子,V(G)=4,Region 4,確定線性獨(dú)立的路徑集合,獨(dú)立路徑: 至少引入一系列新的處理語句或條件的任何路徑 基本集: 由獨(dú)立路徑構(gòu)成的集合 由基本集導(dǎo)出的測試用例,保證每行代碼語句至少被執(zhí)行一次 基本集合不一定唯一,Path1: 1-2-3-6-7-9-10-1-11,示例:基本路徑測試用例,Path2: 1-2-3-6-8-9-10-1-11,Pa

11、th3: 1-2-3-4-5-10-1-11,Path4: 1-11,測試用例覆蓋集合中每條路徑,基本路徑測試并不是測試所有路徑的組合,僅僅保證每條基本路徑被執(zhí)行一次,不需要活動(dòng)圖, 但最好繪制程序流程圖 計(jì)算每個(gè)邏輯測試,也就是布爾操作符數(shù)加1 最好每個(gè)單元都進(jìn)行基本路徑測試,對(duì)關(guān)鍵組件則是必要的,目標(biāo): 在循環(huán)內(nèi)部及邊界上執(zhí)行測試,循環(huán)測試 1,1.簡單循環(huán)(迭代次數(shù)n) 完全跳過循環(huán) 只經(jīng)過循環(huán)一次 經(jīng)過循環(huán)兩次 經(jīng)過循環(huán)m( m n )次 分別經(jīng)過循環(huán)n-1, n, n+1 次,循環(huán)測試 2,2. 嵌套(Nested)循環(huán) 在最里面的循環(huán)完成前面所述的簡單循環(huán)測試,同時(shí)設(shè)定外部循環(huán)的最

12、小迭代次數(shù) 逐步向外循環(huán)進(jìn)行 直到所有循環(huán)被測試,循環(huán)測試 3,其它非結(jié)構(gòu)循環(huán) 重新設(shè)計(jì)!,3. 串行連接的循環(huán) 獨(dú)立循環(huán) 可以分別看著簡單循環(huán)測試 依賴性循環(huán) 可以看著是嵌套循環(huán),3.2 黑盒測試方法,3.2.1 等價(jià)類劃分法 3.2.2 邊界值分析法 3.2.3 判定表方法 3.2.4 因果圖法 3.2.5 正交試驗(yàn)法 3.2.6 功能圖法 3.2.7 錯(cuò)誤推測法,3.2.1 等價(jià)類劃分方法,將程序可能的輸入數(shù)據(jù)分成若干個(gè)子集,從每個(gè)子集選取一個(gè)代表性的數(shù)據(jù)作為測試用例,等價(jià)類是某個(gè)輸入域的子集,在該子集中每個(gè)輸入數(shù)據(jù)的作用是等效的 分為有效等價(jià)類和無效等價(jià)類。有效等價(jià)類是有意義的、合理的

13、輸入數(shù)據(jù),可檢查程序是否實(shí)現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。無效等價(jià)類與有效等價(jià)類的意義相反 在分析需求規(guī)格說明的基礎(chǔ)上劃分等價(jià)類,列出等價(jià)類表,設(shè)計(jì)測試用例時(shí),要同時(shí)考慮這兩種等價(jià)類。因?yàn)檐浖粌H要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn)。經(jīng)過正反的測試才能確保軟件具有更高的可靠性。,確定等價(jià)類的方法,在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,則可以確立一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類,value,在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可以確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。 在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類,確定等價(jià)類的方法(2

14、),not member of set,member of set,Boolean,Non-Boolean,確定等價(jià)類的方式 (3),在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。 在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。,個(gè)人月收入- x 稅率 x 101600 45%,等價(jià)類測試用例-Example,等價(jià)類1: Integer 等價(jià)類2: Decimal fraction 等價(jià)類3: Negative 等價(jià)類4: Invalid input,根據(jù)

15、等價(jià)類創(chuàng)建測試用例的步驟,建立等價(jià)類表,列出所有劃分出的等價(jià)類: 為每個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào); 設(shè)計(jì)一個(gè)新的測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類 重復(fù)c),最后使得所有有效等價(jià)類均被測試用例所覆蓋; 設(shè)計(jì)一個(gè)新的測試用例,使其只覆蓋一個(gè)無效等價(jià)類。 重復(fù)e)使所有無效等價(jià)類均被覆蓋。,3.2.2 邊界值分析方法,程序的很多錯(cuò)誤發(fā)生在輸入或輸出范圍的邊界上,因此針對(duì)各種邊界情況設(shè)置測試用例,可以發(fā)現(xiàn)不少程序缺陷。 BVA Boundary Value Analysis 設(shè)計(jì)方法: 確定邊界情況(輸入或輸出等價(jià)類的邊界) 選取正好等于、剛剛大于或剛剛小于邊界值作為測試數(shù)據(jù),確定邊界

16、值的方法,如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測試輸入數(shù)據(jù)。 如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最小個(gè)數(shù)少一、比最大個(gè)數(shù)多一的數(shù)作為測試數(shù)據(jù)。,確定邊界值的方法(2),如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測試用例。 如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。,Zhu.K,Test cases for ABS(x) : class x = 0, arbitrary value x = 100 classes x = 0,

17、on boundary :x = 0 classes x = 0, below and above:x = -1, x = 1,正常值(有效類): X1 = 123123 邊界值: X2 = 12345 邊界值: X3 = 1234567 邊界值: X4 = 1 邊界值: X5 = 0 無效類的值: X6 = -123123 無效類的值: X7 = asdasd 其它?,BVA 示例2,測試 限制性用戶輸入:6位正整數(shù),無效值: X8 = 000123,X9 = asd123 X10 = Empty,BVA 示例3,Test cases : 任意的正常值: 隨機(jī)選擇幾個(gè)選項(xiàng) 邊界值: 選擇所有

18、選項(xiàng) 邊界值: 一個(gè)都不選邊界值: 選擇一個(gè)選項(xiàng),二進(jìn)制,0 和 1, byte 由8 bits 構(gòu)成, 字由4 bytes構(gòu)成, ,ASCII Table,字符編輯域,Default Empty Blank Null Zero None,一些特殊的邊界值,數(shù)值 字符 位置 數(shù)量 速度 位置 體積,First/last, First-1/Last+1 Min/Max,Min-1/max+1 Star/Finish, Start-1/Finish+1 Empty/Full Less than empty/ more than full Slower/Faster Largest/Smallest

19、 Over/Under, just Over/Just Under Shortest/Longest ,3.2.3 判定表方法,在實(shí)際應(yīng)用中,許多輸入是由多個(gè)因素構(gòu)成,而不是單一因素,這時(shí)就需要多因素組合分析。 對(duì)于多因素,有時(shí)可以直接對(duì)輸入條件進(jìn)行組合設(shè)計(jì),不需要進(jìn)行因果分析,即直接采用判定表方法。 一個(gè)判定表由“條件和活動(dòng)”兩部分組成,也就是列出了一個(gè)測試活動(dòng)執(zhí)行所需的條件組合,所有可能的條件組合定義了一系列的選擇,而測試活動(dòng)需要考慮每一個(gè)選擇。,判定表元素,條件樁,列出問題的所有條件 動(dòng)作樁:列出可能針對(duì)問題所采取的操作 條件項(xiàng):針對(duì)所列條件的具體賦值 動(dòng)作項(xiàng):列出在條件項(xiàng)(各種取值)組

20、合情況下應(yīng)該采取的動(dòng)作。 規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作。,Zhu.K,判定表方法步驟,列出所有的條件樁和動(dòng)作樁; 填入條件項(xiàng); 填入動(dòng)作項(xiàng),制定初始判定表; 簡化、合并相似規(guī)則或者相同動(dòng)作,示例 見表3-13和3-14,3.2.4 因果圖法,多種輸入條件的組合,產(chǎn)生多種結(jié)果設(shè)計(jì)測試用例。 設(shè)計(jì)方法: 分析軟件規(guī)格說明文檔描述的哪些是原因(輸入條件),哪些是結(jié)果(輸出條件),給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)示符。 找出原因與結(jié)果,原因與原因之間的對(duì)應(yīng)關(guān)系,劃出因果圖 在因果圖上標(biāo)上哪些不可能發(fā)生的因果關(guān)系,表明約束或限制條件 根據(jù)因果圖,創(chuàng)建判定表,將復(fù)雜的邏輯關(guān)系和多種條件組

21、合很具體明確的表示出來 把判定表的每一行作為依據(jù)設(shè)計(jì)測試用例。,因果圖法示例(1),有效等價(jià)類:輸入條件有效類 .abs(N) N 0, N 0maxint k maxint, k maxint 測試用例: maxintNresult maxintNresult 55105510000 5410error100-11 56105510011 000,給定maxint 和 N ,如果結(jié)果 = maxint ,則按以下公式計(jì)算;否則提示出錯(cuò):,result =,Causes k maxint 1100 Inputs k maxint 0011 N 01010 N 00101 Effects k11

22、00 Outputserror0011,Zhu.K,因果圖法示例(2),Case Matrix:,Zhu.K,因果圖法示例(3),為什么要采用正交試驗(yàn)法?,打印范圍分:全部、當(dāng)前幻燈片、給定范圍 打印內(nèi)容分:幻燈片、講義、備注頁、大綱視圖 打印顏色/灰度分: 彩色、灰度、黑白 打印效果分:幻燈片加框和幻燈片不加框。,在許多應(yīng)用系統(tǒng)的測試工作中,不會(huì)象判斷三角形那樣簡單,輸入條件的因素很多,而且每個(gè)因素也不能簡單用“是”和“否”來回答。比如,微軟Powerpoint程序的打印測試,也需要考慮4個(gè)因素,每個(gè)因素也有多個(gè)選項(xiàng),測試組合會(huì)變得很多,如果按照傳統(tǒng)的測試方法,會(huì)導(dǎo)致很大的測試工作量,3.2

23、.5 正交實(shí)驗(yàn)法,確定影響功能的因子與狀態(tài) 選擇一個(gè)合適的正交表 利用正交表構(gòu)造測試數(shù)據(jù)集,參考 .hk/UniformDesign ,實(shí)例,員工號(hào)(ID)。 員工姓名(Name)。 員工郵件地址(Mail Address),信息系統(tǒng)中,員工信息查詢功能是常見的。例如,設(shè)有3個(gè)獨(dú)立的查詢條件,以獲得特定員工的個(gè)人信息,3.2.6 功能圖法,每個(gè)程序的功能通常由靜態(tài)說明和動(dòng)態(tài)說明組成 靜態(tài)說明描述了輸入條件和輸出條件之間的對(duì)應(yīng)關(guān)系 動(dòng)態(tài)說明描述了輸入數(shù)據(jù)的次序或者轉(zhuǎn)移的次序。 功能圖法就是為了解決動(dòng)態(tài)說明問題的一種測試用例的設(shè)計(jì)方法 功能圖由狀態(tài)遷移

24、圖(state transition diagram,STD)和邏輯功能模型(logic function model, LFM)構(gòu)成,狀態(tài)遷移圖,狀態(tài)遷移圖,描述系統(tǒng)狀態(tài)變化的動(dòng)態(tài)信息動(dòng)態(tài)說明,由狀態(tài)和遷移來描述,狀態(tài)指出數(shù)據(jù)輸入的位置(或時(shí)間),而遷移則指明狀態(tài)的改變,如何設(shè)計(jì)測試用例?,從功能邏輯模型(決策表或因果圖)導(dǎo)出局部測試用例,覆蓋各個(gè)狀態(tài)的各種輸入數(shù)據(jù)的組合 從狀態(tài)遷移圖導(dǎo)出整體的測試用例,以覆蓋系統(tǒng)(程序)控制的邏輯路徑,功能圖法設(shè)計(jì)測試用例,就是如何覆蓋軟件所表現(xiàn)出來的所有狀態(tài),可以轉(zhuǎn)化為兩個(gè)層次的測試用例,功能圖法是綜合運(yùn)用黑盒方法和白盒方法來設(shè)計(jì)測試用例,即整體上選用白

25、盒方法路徑覆蓋、分支和條件覆蓋等,而局部上選用的是黑盒方法決策表或因果圖方法,3.2.7 錯(cuò)誤推測法,基于經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯(cuò)誤,從而有針對(duì)性地設(shè)計(jì)測試用例。 發(fā)現(xiàn)程序經(jīng)常出現(xiàn)的錯(cuò)誤的方法: 單元測試中發(fā)現(xiàn)的模塊錯(cuò)誤; 產(chǎn)品的以前版本曾經(jīng)發(fā)現(xiàn)的錯(cuò)誤; 輸入數(shù)據(jù)為0或字符為空; 當(dāng)軟件要求輸入時(shí)(比如在文本框中),不是沒有輸入正確的信息,而是根本沒有輸入任何內(nèi)容,單單按了Enter鍵; 這種情況在產(chǎn)品說明書中常常忽視,程序員也可能經(jīng)常遺忘,但是在實(shí)際使用中卻時(shí)有發(fā)生。程序員總會(huì)習(xí)慣性的認(rèn)為用戶要么輸入信息,不管是看起來合法的或非法的信息,要不就會(huì)選擇Cancel鍵放棄輸入,,

26、3.3 靜態(tài)測試和動(dòng)態(tài)測試,將需求和設(shè)計(jì)的評(píng)審也納入測試的范疇,可以看作是廣義測試 靜態(tài)測試包括對(duì)軟件產(chǎn)品的需求和設(shè)計(jì)規(guī)格說明書的評(píng)審、對(duì)程序代碼的復(fù)審等 靜態(tài)分析的查錯(cuò)和分析功能是其他方法所不能替代的,可以采用人工檢測和計(jì)算機(jī)輔助靜態(tài)分析手段進(jìn)行檢測,但越來越多地采用工具進(jìn)行自動(dòng)化分析 動(dòng)態(tài)測試是通過真正運(yùn)行程序發(fā)現(xiàn)錯(cuò)誤,通過觀察代碼運(yùn)行過程,來獲取系統(tǒng)信息,對(duì)系統(tǒng)行為進(jìn)行驗(yàn)證。,3.4 主動(dòng)測試和被動(dòng)測試,主動(dòng)測試方法:測試人員主動(dòng)向被測試對(duì)象發(fā)送請(qǐng)求、或借助數(shù)據(jù)、事件驅(qū)動(dòng)被測試對(duì)象的行為,從而驗(yàn)證被測試對(duì)象的反應(yīng)或輸出結(jié)果 被動(dòng)測試方法:測試人員不干預(yù)產(chǎn)品的運(yùn)行,而是被動(dòng)地監(jiān)控產(chǎn)品在實(shí)際

27、環(huán)境中運(yùn)行,通過一定的被動(dòng)機(jī)制來獲得系統(tǒng)運(yùn)行的數(shù)據(jù),包括輸入、輸出數(shù)據(jù).,3.5 形式化測試方法,3.5.1 形式化方法 3.5.2 形式化驗(yàn)證 3.5.3 基于模型的軟件測試 3.5.4 擴(kuò)展有限狀態(tài)機(jī)方法,3.5.1 形式化方法,形式化方法實(shí)際上就是基于數(shù)學(xué)的方法來描述目標(biāo)軟件系統(tǒng)屬性的一種技術(shù) 凡是采用嚴(yán)格的數(shù)學(xué)語言、具有精確的數(shù)學(xué)語義的方法,都稱為形式化方法。形式化規(guī)范說明語言,一般由3個(gè)主要的成分構(gòu)成:語法、語義和一組關(guān)系 形式化方法更大作用是體現(xiàn)在軟件規(guī)格和驗(yàn)證之上,這包括軟件系統(tǒng)的精確建模和軟件規(guī)格特性的具體描述,即可以看作是面向模型的形式化方法和面向?qū)傩缘男问交椒?形式化的具

28、體方法,基于模型的方法,如Z語言、B語言等 代數(shù)方法,如OBJ、CLEAR、ASL、ACT等 過程代數(shù)方法,如CSP、CCS、ACP、LOTOS、TPCCS等 基于邏輯的方法,如區(qū)間時(shí)序邏)、Hoare 邏輯、模態(tài)邏輯、時(shí)序邏輯、時(shí)序代理模型等。 基于網(wǎng)絡(luò)的方法,3.5.2 形式化驗(yàn)證,形式化驗(yàn)證,就是根據(jù)某些形式規(guī)范或?qū)傩?,使用形式邏輯方法證明其正確性或非正確性。 一般通過形式化規(guī)范進(jìn)行分析和推理,研究它的各種靜態(tài)和動(dòng)態(tài)性質(zhì),驗(yàn)證是否一致、完整,從而找出所存在的錯(cuò)誤和缺陷。 無法證明某個(gè)系統(tǒng)沒有缺陷,因?yàn)椴荒芏x “沒有缺陷”。只能證明一個(gè)系統(tǒng)不存在我們可以想得到的缺陷,以及驗(yàn)證滿足系統(tǒng)質(zhì)量要求的屬性,形式化驗(yàn)證的一些具體方法,有限狀態(tài)機(jī)(FSM)或擴(kuò)展有限狀態(tài)機(jī)(EFSM) SPIN和線性時(shí)態(tài)語言 UML 語義轉(zhuǎn)換 標(biāo)準(zhǔn)RBAC模型 擴(kuò)展的RBAC模型和基于粒計(jì)算的RBAC模型 符號(hào)模型檢驗(yàn) BAN邏輯模型,3.5.3 基于模型的軟件測試,基于模型的測試(Model-based testing,MBT)是利用模型來生成相應(yīng)的測試用例,然后根據(jù)實(shí)際結(jié)果和原先預(yù)想的結(jié)果的差異來測試系統(tǒng) 先從概念上形成模型,然后

溫馨提示

  • 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. 人人文庫網(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)論