軟件質(zhì)量保證與測試 第三章 軟件測試方法._第1頁
軟件質(zhì)量保證與測試 第三章 軟件測試方法._第2頁
軟件質(zhì)量保證與測試 第三章 軟件測試方法._第3頁
軟件質(zhì)量保證與測試 第三章 軟件測試方法._第4頁
軟件質(zhì)量保證與測試 第三章 軟件測試方法._第5頁
已閱讀5頁,還剩143頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 軟件測試方法和技術(shù)軟件測試方法和技術(shù)第第3章章 軟件測試的方法軟件測試的方法第第3 3章章 軟件測試的方法軟件測試的方法3.1 基于直覺和經(jīng)驗(yàn)基于直覺和經(jīng)驗(yàn)的的方法方法3.2 基于輸入域的方法基于輸入域的方法3.3 基于基于組合及其優(yōu)化組合及其優(yōu)化的的技術(shù)技術(shù)3.4 基于基于邏輯覆蓋邏輯覆蓋的方法的方法3.5 基于基于故障模式的測試故障模式的測試方法方法3.6 基于基于模型的測試模型的測試方法方法3.7 形式化形式化方法方法黑盒黑盒測試測試和白盒和白盒測試方法測試方法Ad-hocAd-hoc和和ALACALAC法法錯誤推測法錯誤推測法等價類劃分法等價類劃分法邊界值邊界值分析法分析法判定表判定

2、表方法方法因果圖法因果圖法正交試驗(yàn)法正交試驗(yàn)法功能圖法功能圖法語句覆蓋語句覆蓋判定覆蓋判定覆蓋條件覆蓋條件覆蓋判定條件覆蓋判定條件覆蓋條件組合覆蓋條件組合覆蓋基本路徑覆蓋基本路徑覆蓋黑盒黑盒測試測試方法方法白盒白盒測試測試方法方法白盒測試的優(yōu)、缺點(diǎn)白盒測試的優(yōu)、缺點(diǎn)白盒測試的優(yōu)點(diǎn)有:1)迫使測試人員去仔細(xì)思考軟件的實(shí)現(xiàn)2)可以檢測代碼中的每條分支和路徑3)揭示隱藏在代碼中的錯誤4)對代碼的測試比較徹底5)最優(yōu)化白盒測試的缺點(diǎn)有:1)昂貴2)無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤3)不驗(yàn)證規(guī)格的正確性4黑盒測試的優(yōu)、缺點(diǎn)黑盒測試的優(yōu)、缺點(diǎn)黑盒測試的優(yōu)點(diǎn)有:1)比較簡單,不需要了解程序內(nèi)部的代碼

3、及實(shí)現(xiàn);2)與軟件的內(nèi)部實(shí)現(xiàn)無關(guān);3)從用戶角度出發(fā),能很容易的知道用戶會用到哪些功能,會遇到哪些問題;4)基于軟件開發(fā)文檔,所以也能知道軟件實(shí)現(xiàn)了文檔中的哪些功能;5)在做軟件自動化測試時較為方便。黑盒測試的缺點(diǎn)有:1)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達(dá)到總代碼量的30%;2)自動化測試的復(fù)用性較低。53.1 3.1 基于直覺和經(jīng)驗(yàn)的方法基于直覺和經(jīng)驗(yàn)的方法Ad-hoc測試方法和測試方法和ALAC測試測試 錯誤推測法錯誤推測法 基于直覺和經(jīng)驗(yàn)基于直覺和經(jīng)驗(yàn)推推測程序中所有可能存在的各種錯誤,測程序中所有可能存在的各種錯誤,從而有針對性地設(shè)計(jì)測試用例。從而有針對性地設(shè)計(jì)測試用例。3.

4、1.1 Ad-hoc3.1.1 Ad-hoc測試和測試和ALACALAC測試測試Ad-hoc 原意是指原意是指 “特定的,一次性的特定的,一次性的”,這里指,這里指“隨隨機(jī)的,自由的機(jī)的,自由的”測試。強(qiáng)調(diào)測試人員根據(jù)自己的經(jīng)測試。強(qiáng)調(diào)測試人員根據(jù)自己的經(jīng)驗(yàn),不受測試用例的束縛,放開思路、靈活的對軟驗(yàn),不受測試用例的束縛,放開思路、靈活的對軟件進(jìn)行功能和性能抽查。件進(jìn)行功能和性能抽查。隨機(jī)測試可以作為嚴(yán)格意義上的測試方法的一種補(bǔ)充手隨機(jī)測試可以作為嚴(yán)格意義上的測試方法的一種補(bǔ)充手段,有時能發(fā)現(xiàn)一些隱藏比較深的缺陷,可以達(dá)到段,有時能發(fā)現(xiàn)一些隱藏比較深的缺陷,可以達(dá)到出人意料的效果。出人意料的效

5、果。8ALAC,是,是Act-like-a-customer(像像客戶那樣做)的簡寫客戶那樣做)的簡寫,該該方法是一種基于客戶使用產(chǎn)品的知識開發(fā)出來的測試方方法是一種基于客戶使用產(chǎn)品的知識開發(fā)出來的測試方法,它的出發(fā)點(diǎn)是著名的法,它的出發(fā)點(diǎn)是著名的Pareto 80/20規(guī)律規(guī)律。3.1.1 Ad-hoc3.1.1 Ad-hoc測試和測試和ALACALAC測試測試3.1.2 3.1.2 錯誤推測法錯誤推測法錯誤推測法錯誤推測法是測試者根據(jù)經(jīng)驗(yàn)、知識和直覺來發(fā)是測試者根據(jù)經(jīng)驗(yàn)、知識和直覺來發(fā)現(xiàn)軟件錯誤,來推測程序中可能存在的各種錯誤,現(xiàn)軟件錯誤,來推測程序中可能存在的各種錯誤,從而有針對性的進(jìn)行

6、測試從而有針對性的進(jìn)行測試。 單元測試中發(fā)現(xiàn)的模塊錯誤;單元測試中發(fā)現(xiàn)的模塊錯誤; 產(chǎn)品的以前版本曾經(jīng)發(fā)現(xiàn)的錯誤;產(chǎn)品的以前版本曾經(jīng)發(fā)現(xiàn)的錯誤; 輸入數(shù)據(jù)為輸入數(shù)據(jù)為0 0或字符為空;或字符為空; 當(dāng)軟件要求輸入時當(dāng)軟件要求輸入時( (比如在文本框中比如在文本框中),),不是沒有輸入不是沒有輸入正確的信息,而是根本沒有輸入任何內(nèi)容,單單按正確的信息,而是根本沒有輸入任何內(nèi)容,單單按了了EnterEnter鍵;鍵; 3.2 3.2 基于輸入域的測試基于輸入域的測試方法方法3.2.1 3.2.1 等價類劃分方法等價類劃分方法all inputsi1i4i2i3確定等價類確定等價類的六條原則的六條原

7、則in rangegreater than rangeless than rangevaluegreater than valueless than value例:例: 輸入值是學(xué)生成績,范圍是輸入值是學(xué)生成績,范圍是0100。有效等價類:有效等價類: 0成績成績100無效等價類:無效等價類: 成績成績100(2 2)在輸入條件規(guī)定了輸入值的集合或者規(guī)定了在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何必須如何”的條件的情況下,可以確立一個有效等價類和一個無效等價的條件的情況下,可以確立一個有效等價類和一個無效等價類。類。not member of setmember of set確定等價類的

8、六條原則確定等價類的六條原則 例:例:程序的輸入條件是程序的輸入條件是x=10 有效等價類:有效等價類: x=10 無效等價類:無效等價類: x10(3 3)在輸入條件是一個布爾量的情況下,可確定一個有在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。效等價類和一個無效等價類。BooleanNon-Boolean 例:例:程序的輸入條件是程序的輸入條件是BOOL x=true 有效等價類:有效等價類: x=true 無效等價類:無效等價類: x=false確定等價類的六條原則確定等價類的六條原則確定等價類確定等價類的六條原則的六條原則例:例:輸入條件說明學(xué)歷可為輸入條件說明

9、學(xué)歷可為:???、本科、碩士、博士四種專科、本科、碩士、博士四種之一。之一。有效等價類:???、本科、碩士、博士有效等價類:???、本科、碩士、博士無效等價類:其它任何學(xué)歷無效等價類:其它任何學(xué)歷(5 5)例:例:校內(nèi)電話號碼撥外線為校內(nèi)電話號碼撥外線為9開頭開頭有效等價類:有效等價類: 9外線號碼外線號碼無效等價類:無效等價類: 非非9開頭外線號碼開頭外線號碼 9非外線號碼非外線號碼 確定等價類的六條原則確定等價類的六條原則(6 6)確定等價類的六條原則確定等價類的六條原則根據(jù)等價類創(chuàng)建測試用例的步驟根據(jù)等價類創(chuàng)建測試用例的步驟第一步:劃分等價類第一步:劃分等價類建立等價類表,列出所有劃分出的等價

10、類,并為每個等價建立等價類表,列出所有劃分出的等價類,并為每個等價類規(guī)定一個唯一的編號。類規(guī)定一個唯一的編號。第二步:為有效等價類設(shè)計(jì)測試用例第二步:為有效等價類設(shè)計(jì)測試用例a)a) 設(shè)計(jì)一個新的測試用例,使其盡可能多地覆蓋尚未覆蓋設(shè)計(jì)一個新的測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類;的有效等價類;b)b) 重復(fù)重復(fù)a)a),最后使得所有有效等價類均被測試用例所覆蓋;,最后使得所有有效等價類均被測試用例所覆蓋;第三步:為每一個無效等價類至少設(shè)計(jì)一個測試用例第三步:為每一個無效等價類至少設(shè)計(jì)一個測試用例a)a) 設(shè)計(jì)一個新的測試用例,使其只覆蓋一個無效等價類;設(shè)計(jì)一個新的測試用例,使其只

11、覆蓋一個無效等價類;b)b) 重復(fù)重復(fù)a)a)使所有無效等價類均被覆蓋。使所有無效等價類均被覆蓋。輸入條件輸入條件有效等價類有效等價類無效等價類無效等價類等價類劃分法舉例等價類劃分法舉例3.2.2 3.2.2 邊界值分邊界值分析法析法 確定邊界情況(輸入或輸出等價類的邊界)確定邊界情況(輸入或輸出等價類的邊界) 選取正好等于、剛剛大于或小于邊界值作為測試數(shù)據(jù)選取正好等于、剛剛大于或小于邊界值作為測試數(shù)據(jù)與等價劃分的區(qū)別與等價劃分的區(qū)別2122常見的邊界值常見的邊界值確定邊界值的方法確定邊界值的方法(1 1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這

12、個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。測試輸入數(shù)據(jù)。a ab b例如:例如:如果程序的規(guī)格說明中規(guī)定:如果程序的規(guī)格說明中規(guī)定:重量在重量在10公斤至公斤至50公斤范圍內(nèi)的郵件,其郵費(fèi)計(jì)算公式為公斤范圍內(nèi)的郵件,其郵費(fèi)計(jì)算公式為。作為。作為測試用例,我們應(yīng)取測試用例,我們應(yīng)取10及及50,還應(yīng)取,還應(yīng)取10.01,49.99,9.99及及50.01等。等。24(2 2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最小個數(shù)少一、比最大個數(shù)多一的數(shù)作為測試個數(shù)、比最小個數(shù)

13、少一、比最大個數(shù)多一的數(shù)作為測試數(shù)據(jù)。數(shù)據(jù)。a ab b確定邊界值的方法確定邊界值的方法例如:例如:一個輸入文件應(yīng)包括一個輸入文件應(yīng)包括1255個記錄,則測試用例個記錄,則測試用例可取可取1和和255,還應(yīng)取,還應(yīng)取0及及256等。等。(3 3)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為測合,則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例。試用例。確定邊界值的方法確定邊界值的方法例例1:某程序的規(guī)格說明要求計(jì)算出某程序的規(guī)格說明要求計(jì)算出“每月保險金扣除額每月保險金扣除額為為0至至1165.25

14、元元”,其測試用例可取,其測試用例可取0.00、0.01、1165.24、1165.25,還可取,還可取-0.01及及116526等。等。例例2:一程序?qū)儆谇閳?bào)檢索系統(tǒng),要求每次一程序?qū)儆谇閳?bào)檢索系統(tǒng),要求每次最少顯示最少顯示1條、最多顯示條、最多顯示4條情報(bào)摘要條情報(bào)摘要,這時我們應(yīng)考慮的測試用,這時我們應(yīng)考慮的測試用例包括例包括1和和4,還應(yīng)包括,還應(yīng)包括0和和5等。等。 (4 4)如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。26確定邊界值的方法確定邊界值的方法邊

15、界值附近的數(shù)據(jù)確定的幾種方法邊界值附近的數(shù)據(jù)確定的幾種方法項(xiàng)項(xiàng)邊界值邊界值測試用例的設(shè)計(jì)思路測試用例的設(shè)計(jì)思路字符起始-1個字符/結(jié)束+1個字符假設(shè)一個文本輸入?yún)^(qū)域允許輸入1個到255個 字符,輸入1個和255個字符作為有效等價類;輸入0個和256個字符作為無效等價類,這幾個數(shù)值都屬于邊界條件值。數(shù)值最小值-1/最大值+1假設(shè)某軟件的數(shù)據(jù)輸入域要求輸入5位的數(shù)據(jù)值,可以使用10000作為最小值、99999作為最大值;然后使用剛好小于5位和大于5位的 數(shù)值來作為邊界條件??臻g小于空余空間一點(diǎn)/大于滿空間一點(diǎn)例如在用U盤存儲數(shù)據(jù)時,使用比剩余磁盤空間大一點(diǎn)(幾KB)的文件作為邊界條件。數(shù)值的邊界值

16、校驗(yàn)數(shù)值的邊界值校驗(yàn)項(xiàng)項(xiàng)范圍或值范圍或值位(bit)0 或 1字節(jié)(byte)0 255字(word)065535(單字)或 04294967295(雙字)千(K)1 024兆(M)1 048 576吉(G)1 073 741 824太(T)1 099 511 627 77628ASCII TableCharacter ASCII ValueCharacter ASCII ValueNullSpace/0129;A0324748495057586465BYZabyz66899091969798121122123字符的邊界值校驗(yàn)字符的邊界值校驗(yàn)rem create a 10 element in

17、teger arrayrem initialize each element to-1dim data(10) as integerdim I as integerfor i=1 to 10data(i) =-1next iend30例例1 data(0)=0 data(1)=-1data(2)=-1 data(3)=-1data(4)=-1 data(5)=-1 data(6)=-1 data(7)=-1 data(8)=-1 data(9)=-1data(10)=-1 正常值(有效類)正常值(有效類): X1 = 123123邊界值邊界值: X2 = 12345邊界值邊界值: X3 = 1

18、234567邊界值邊界值: X4 = 1邊界值邊界值: X5 = 0無效類的值無效類的值: X6 = -123123無效類的值無效類的值: X7 = asdasd例例2 測試測試 限制性用戶輸入:限制性用戶輸入:6位正整數(shù)位正整數(shù)無效值無效值: X8 = 000123 X9 = asd123 X10 = Empty例例3 3Test cases :任意的正常值任意的正常值: 隨機(jī)選擇幾個選項(xiàng)隨機(jī)選擇幾個選項(xiàng) 邊界值邊界值: 選擇所有選項(xiàng)選擇所有選項(xiàng) 邊界值邊界值: 一個都不選一個都不選邊界值邊界值: 選擇一個選項(xiàng)選擇一個選項(xiàng)33邊界值分析法其他案例邊界值分析法其他案例作業(yè):作業(yè): 加法器加法器

19、 C語言源程序:計(jì)算兩個l-l00之間整數(shù)的和。 要求:1)用等價類劃分法分析其等價類,用邊界值法找出邊界值,并設(shè)計(jì)相應(yīng)的測試用例。2)分析輸出,找出錯誤。答案答案#includevoid main(void)int a;/加數(shù)int b;/加數(shù)int c;/和while(l)printf(請輸入兩個1-100之間的整數(shù):);fflush(stdin);/清空輸入緩沖區(qū)scanf(%d%d,&a,&b);if(a1&a1&b3.3.3 兩兩組合(兩兩組合(Pair-wise)方法)方法在不可能對所有條件組合進(jìn)行覆蓋、遍歷的情況下,如在不可能對所有條件組合進(jìn)行覆蓋、遍歷的情況下,如何用最少的工作

20、量發(fā)現(xiàn)最多的缺陷,即何用最少的工作量發(fā)現(xiàn)最多的缺陷,即“測試性價比測試性價比”問題。問題。 PairwisePairwise測試方法能有效的提高測試方法能有效的提高“測試性價比測試性價比”。PairwisePairwise測試方法能夠有效的應(yīng)對復(fù)雜環(huán)境下的測試。測試方法能夠有效的應(yīng)對復(fù)雜環(huán)境下的測試。Pair-wise方法方法p 大部分缺陷是在兩個變量取值沖突的測試時被發(fā)現(xiàn)的。大部分缺陷是在兩個變量取值沖突的測試時被發(fā)現(xiàn)的。p 不僅僅是在所有的組合情況下才會發(fā)現(xiàn)所有的測試缺不僅僅是在所有的組合情況下才會發(fā)現(xiàn)所有的測試缺陷。陷。p Pair-wisePair-wise不需要測試所有的組合,而是測

21、試所有的不需要測試所有的組合,而是測試所有的“Pair-wisePair-wise”即可。即可。 Pair-wise可以顯著地減少測試用例的數(shù)目,同時保證較高的測試質(zhì)量。52Pair-wise方法方法輸入?yún)?shù)的個數(shù)每個參數(shù)值的個數(shù)測試用例數(shù)(無Pair-wise)測試用例數(shù)(用Pair-wise)4334=819133313=15943231520101020180Pair-wisePair-wise方法舉例方法舉例53工具:PICT下載:/tools.aspPICTPICT工具的使用說明工具的使用說明Pair-wise方法工具軟件方法工具軟件例:例

22、:P4755運(yùn)行結(jié)果:登錄:未登錄,第一次登錄,正常登錄會員狀態(tài):非會員,會員,vip會員,雇員折扣:沒有,假日95折,會員9折,vip會員8折物流方式:標(biāo)準(zhǔn),快遞,加急onlinebuy.txt例如:例如:微軟微軟PowerpointPowerpoint程序的打印測試,也需要考慮程序的打印測試,也需要考慮4 4個個因素,每個因素也有多個選項(xiàng)。因素,每個因素也有多個選項(xiàng)。 打印范圍分:全部、當(dāng)前幻燈片、給定范圍打印范圍分:全部、當(dāng)前幻燈片、給定范圍 打印內(nèi)容分:幻燈片、講義、備注頁、大綱視圖打印內(nèi)容分:幻燈片、講義、備注頁、大綱視圖 打印顏色打印顏色/ /灰度分灰度分: : 彩色、灰度、黑白彩

23、色、灰度、黑白 打印效果分:幻燈片加框和幻燈片不加框。打印效果分:幻燈片加框和幻燈片不加框。 在許多應(yīng)用系統(tǒng)的測試工作中,不會象判斷三角形那在許多應(yīng)用系統(tǒng)的測試工作中,不會象判斷三角形那樣簡單,輸入條件的因素很多,而且每個因素也不能簡單樣簡單,輸入條件的因素很多,而且每個因素也不能簡單用用“是是”和和“否否”來回答。來回答。測試組合會變得很多,如果按照傳統(tǒng)的測試方法,會導(dǎo)測試組合會變得很多,如果按照傳統(tǒng)的測試方法,會導(dǎo)致很大的測試工作量致很大的測試工作量 。3.3.4 3.3.4 正交實(shí)驗(yàn)法正交實(shí)驗(yàn)法正交實(shí)驗(yàn)設(shè)計(jì)方法正交實(shí)驗(yàn)設(shè)計(jì)方法依據(jù)依據(jù)GaloisGalois理論,從大量的(實(shí)驗(yàn))數(shù)據(jù)(測

24、試?yán)┲刑暨x理論,從大量的(實(shí)驗(yàn))數(shù)據(jù)(測試?yán)┲刑暨x適量的、有代表性的點(diǎn)(條件組合),從而合理地安排實(shí)適量的、有代表性的點(diǎn)(條件組合),從而合理地安排實(shí)驗(yàn)(測試)的一種科學(xué)實(shí)驗(yàn)設(shè)計(jì)方法驗(yàn)(測試)的一種科學(xué)實(shí)驗(yàn)設(shè)計(jì)方法 正交表正交表1231111212232124221L L4 4(2 23 3)L L8 8(2 27 7)12345671111111121112222312211224122221152121212621221217221122182212112l 因子數(shù):條件因素的個因子數(shù):條件因素的個數(shù)。數(shù)。l 水平數(shù):各因子的取值水平數(shù):各因子的取值個數(shù)。個數(shù)。L L行數(shù)行數(shù)(水平數(shù)(

25、水平數(shù)因子數(shù)因子數(shù))L L9 9(3 34 4)1234111112122231333421235223162312731328321393321正交表的正交性(以正交表的正交性(以L L9 9 (3 (34 4 ) )為例)為例)正交表的特點(diǎn):正交表的特點(diǎn):p 每每個列中,個列中,“1”、“2”、“3”出現(xiàn)出現(xiàn)的次數(shù)相的次數(shù)相同。同。p 任任意兩列,其橫方向形成的九個數(shù)意兩列,其橫方向形成的九個數(shù)字對中字對中,恰,恰好(好(1,1)、()、(1,2)、)、(1、3)、()、(2,1)、()、(2,2)、()、(2,3)、()、(3,1)、()、(3,2)、()、(3、3)出現(xiàn)的次數(shù)相)出現(xiàn)的

26、次數(shù)相同。同。這這兩點(diǎn)稱為正交兩點(diǎn)稱為正交性。性。均衡分散,整齊可比,代表性均衡分散,整齊可比,代表性強(qiáng),效率強(qiáng),效率高。高。均衡分散:試驗(yàn)點(diǎn)在試驗(yàn)范圍內(nèi)排列規(guī)均衡分散:試驗(yàn)點(diǎn)在試驗(yàn)范圍內(nèi)排列規(guī)律整律整齊。齊。整齊可比:試驗(yàn)點(diǎn)在試驗(yàn)范圍內(nèi)散布均整齊可比:試驗(yàn)點(diǎn)在試驗(yàn)范圍內(nèi)散布均勻勻 。1234111112122231333421235223162312731328321393321L9(34)正交表例例1 1員工號(員工號(IDID):填,不填):填,不填員工姓名(員工姓名(NameName) :填,不填:填,不填員工郵件地址(員工郵件地址(Mail AddressMail Address)

27、:填,不填:填,不填例例1 1:設(shè)有設(shè)有3 3個獨(dú)立的查詢條件,以獲得特定員工的個人個獨(dú)立的查詢條件,以獲得特定員工的個人信息。信息。例例2 2例例2 2:用戶登錄界面,包括用戶名、密碼、校驗(yàn)碼。用戶登錄界面,包括用戶名、密碼、校驗(yàn)碼。各個元素的取值:各個元素的取值:用戶名:不填、填寫錯誤信息、填寫正確信息用戶名:不填、填寫錯誤信息、填寫正確信息密碼:不填、填寫錯誤信息、填寫正確信息密碼:不填、填寫錯誤信息、填寫正確信息校驗(yàn)碼:不填、填寫錯誤信息、填寫正確信息校驗(yàn)碼:不填、填寫錯誤信息、填寫正確信息p 3 3因子因子3 3水平水平p 全面試驗(yàn)法:試驗(yàn)次數(shù)為全面試驗(yàn)法:試驗(yàn)次數(shù)為3 33 3=2

28、7=27,即取每個因子所有水,即取每個因子所有水平的組合。平的組合。p 正交試驗(yàn)法:試驗(yàn)次數(shù)要求不少于正交試驗(yàn)法:試驗(yàn)次數(shù)要求不少于 3 3* *(3-13-1)+1 = 7+1 = 7。p 利用現(xiàn)有的正交表公式,可選用利用現(xiàn)有的正交表公式,可選用L L9 9(3 34 4),試驗(yàn)次數(shù)為),試驗(yàn)次數(shù)為4 4* *(3-13-1)+1 = 9+1 = 9。63所在列1234因子用戶名密碼校驗(yàn)碼D1不填不填不填-2不填填寫錯誤信息 填寫錯誤信息-3不填填寫正確信息 填寫正確信息-4填寫錯誤信息不填填寫錯誤信息-5填寫錯誤信息 填寫錯誤信息 填寫正確信息-6填寫錯誤信息 填寫正確信息不填-7填寫正確

29、信息不填填寫正確信息-8填寫正確信息 填寫錯誤信息不填-9填寫正確信息 填寫正確信息 填寫錯誤信息-例例2 2正交實(shí)驗(yàn)方法工具軟件正交實(shí)驗(yàn)方法工具軟件正交設(shè)計(jì)助手正交設(shè)計(jì)助手 v3.1 v3.1OrthogonalityOrthogonality Experiment Assistant II Experiment Assistant II v3.1 v3.1新建工程新建工程新建實(shí)驗(yàn)新建實(shí)驗(yàn)小結(jié)小結(jié)黑盒方法黑盒方法靜態(tài)靜態(tài)動態(tài)動態(tài)其它其它多因素多因素單因素單因素等價類劃分邊界值分析因果分析法判定表法正交試驗(yàn)法Pair-wise方法功能圖有限狀態(tài)機(jī)錯誤推測法。3.43.4 基于邏輯覆蓋的方法基于

30、邏輯覆蓋的方法3.4.0 語句覆蓋3.4.1 判定覆蓋3.4.2 條件覆蓋3.4.3 判定-條件覆蓋3.4.4 條件組合覆蓋3.4.5 基本路徑覆蓋邏輯覆蓋邏輯覆蓋 vs.vs. 路徑覆蓋路徑覆蓋3.4.0 3.4.0 語句覆蓋語句覆蓋p語句覆蓋法的基本思想是設(shè)計(jì)若干測試用例語句覆蓋法的基本思想是設(shè)計(jì)若干測試用例,運(yùn)行被測程序,使程序中的每個可執(zhí)行語,運(yùn)行被測程序,使程序中的每個可執(zhí)行語句至少被執(zhí)行一次句至少被執(zhí)行一次程序源代程序源代碼:碼:1. dim a, b as integer2. dim c as double3. if (a 0 and b 0) then4. c = c / a5

31、. end if6. if (a 1 or c 1) then7. c = c + 18. end if9. c = b + c示例:語句覆蓋可發(fā)現(xiàn)的問題示例:語句覆蓋可發(fā)現(xiàn)的問題(a, b ,c)= (1, 1, 2)3689IFIFENDIFENDIFfeicbad457jh程序控制流程序控制流圖:圖:覆蓋路徑:覆蓋路徑:abdefhi程序源代程序源代碼:碼:1. dim a, b as integer2. dim c as double3. if (a 0 or b 0) then4. c = c / a5. end if6. if (a 1 or c 1) then7. c = c +

32、 18. end if9. c = b + c(a, b ,c)= (1, 1, 2)and3689IFIFENDIFENDIFfeicbad457jh程序控制流程序控制流圖:圖:覆蓋路徑:覆蓋路徑:abdefhi示例:語句覆蓋不能發(fā)現(xiàn)的問題示例:語句覆蓋不能發(fā)現(xiàn)的問題優(yōu)點(diǎn):優(yōu)點(diǎn):可以很直觀地從源代碼得到測試用例,可以很直觀地從源代碼得到測試用例,無須細(xì)分每條判定表達(dá)式無須細(xì)分每條判定表達(dá)式 缺點(diǎn):缺點(diǎn):語句覆蓋常是語句覆蓋常是“最弱的覆蓋最弱的覆蓋”,不考慮,不考慮各種分支的組合,不能發(fā)現(xiàn)其中的邏輯錯誤。各種分支的組合,不能發(fā)現(xiàn)其中的邏輯錯誤。假如只要求達(dá)到語句覆蓋,那么換來的確實(shí)測假如只要

33、求達(dá)到語句覆蓋,那么換來的確實(shí)測試效果不明顯,很難更多地發(fā)現(xiàn)代碼中的問題。試效果不明顯,很難更多地發(fā)現(xiàn)代碼中的問題。語句覆蓋的優(yōu)缺點(diǎn)語句覆蓋的優(yōu)缺點(diǎn)3.4.1 3.4.1 判定覆蓋判定覆蓋p判定覆判定覆蓋蓋的的基本思想是設(shè)計(jì)若干用例,運(yùn)行被測基本思想是設(shè)計(jì)若干用例,運(yùn)行被測程序,使得程序中每個判斷的取真分支和取假分程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷真假值均曾被滿足。支至少經(jīng)歷一次,即判斷真假值均曾被滿足。p一個判定代表著程序一個判定代表著程序的一個分支的一個分支,所,所以判定覆蓋以判定覆蓋也被稱為也被稱為分支覆蓋分支覆蓋。示示例例 測試用例測試用例: a=2,b=

34、1,c=6 a=-2,b=-1,c=-3 測試用例測試用例: a=1,b=1,c=0 a=2,b=-1,c=6判定覆蓋的優(yōu)缺點(diǎn)判定覆蓋的優(yōu)缺點(diǎn)優(yōu)點(diǎn):優(yōu)點(diǎn):判定覆蓋具有比語句覆蓋更強(qiáng)的測試判定覆蓋具有比語句覆蓋更強(qiáng)的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細(xì)分每個判定就可以得到測試用例。單性,無須細(xì)分每個判定就可以得到測試用例。缺點(diǎn):缺點(diǎn):往往大部分的判定語句是由多個邏輯往往大部分的判定語句是由多個邏輯條件組合而成,若僅僅判斷其整個最終結(jié)果,而條件組合而成,若僅僅判斷其整個最終結(jié)果,而忽略每個條件的取值情況,必然會遺漏部分測試忽略每個條件

35、的取值情況,必然會遺漏部分測試路徑。判定覆蓋仍是弱的邏輯覆蓋。路徑。判定覆蓋仍是弱的邏輯覆蓋。743.4.2 3.4.2 條件覆蓋條件覆蓋p條件覆蓋條件覆蓋的基本思想是設(shè)計(jì)若干測試用例,執(zhí)的基本思想是設(shè)計(jì)若干測試用例,執(zhí)行被測程序以后,要使每個判斷中每個條件的行被測程序以后,要使每個判斷中每個條件的可能取值至少滿足一次??赡苋≈抵辽贊M足一次。(a0 and b0) a0b0 示示例例 判斷判斷M表達(dá)式表達(dá)式: 條條件件 a0 取真取真 記為記為 T1 條件條件 a0 取假取假 記為記為 F1 條條件件 b0 取真取真 記為記為 T2 條件條件 b0 取假取假 記為記為 F2 判斷判斷N表達(dá)式表

36、達(dá)式: 條條件件 a1 取真取真 記為記為 T3 條件條件 a1 取假取假 記為記為 F3 條條件件 c1 取真取真 記為記為 T4 條件條件 c1取取 假假 記為記為 F4測試用例測試用例覆蓋條覆蓋條件件具體取具體取值條件值條件a=2b=-1c=-2T1, F2, T3,F4a0b1c=1a=-1b=2c=3F1, T2, F3, T4a0a1它覆蓋了判定它覆蓋了判定M的的N分支和判斷分支和判斷N N的的Y分支。分支。示例示例優(yōu)點(diǎn):優(yōu)點(diǎn):增加了對條件判定情況的測試。增加了對條件判定情況的測試。缺點(diǎn):缺點(diǎn):條件覆蓋不一定包含判定覆蓋。條件覆蓋不一定包含判定覆蓋。例如,上面設(shè)計(jì)的用例就沒有覆蓋判

37、斷例如,上面設(shè)計(jì)的用例就沒有覆蓋判斷M M的的Y Y分分支和判斷支和判斷N N的的N N分支。條件覆蓋只能保證每個條件至分支。條件覆蓋只能保證每個條件至少有一次為真或假,而不考慮所有的判定結(jié)果。少有一次為真或假,而不考慮所有的判定結(jié)果。條件覆蓋的優(yōu)缺點(diǎn)條件覆蓋的優(yōu)缺點(diǎn)3.4.3 3.4.3 判判定定- -條條件覆蓋件覆蓋p判定判定-條件覆蓋條件覆蓋是判定和條件覆蓋設(shè)計(jì)方法的交集是判定和條件覆蓋設(shè)計(jì)方法的交集,即設(shè)計(jì)足夠的測試用例,使得判斷條件中的所有,即設(shè)計(jì)足夠的測試用例,使得判斷條件中的所有條件可能取值至少執(zhí)行一次,同時,所有判斷的可條件可能取值至少執(zhí)行一次,同時,所有判斷的可能結(jié)果至少執(zhí)行

38、一能結(jié)果至少執(zhí)行一次。次。判定判定條件覆蓋條件覆蓋按按照判定條件覆蓋照判定條件覆蓋的要求,設(shè)計(jì)的測試用的要求,設(shè)計(jì)的測試用例要滿足如下條件:例要滿足如下條件:(1)所有條件可能)所有條件可能至少執(zhí)行一次取值;至少執(zhí)行一次取值;(2)所有判斷的可)所有判斷的可能結(jié)果至少執(zhí)行一次。能結(jié)果至少執(zhí)行一次。判斷判斷M判斷判斷N示例示例判斷判斷M判斷判斷N測試用例測試用例覆蓋覆蓋條件條件覆蓋判斷覆蓋判斷a=2b=1c=6T1, T2,T3, T4M的的Y分分支支N的的Y分支分支a=-1b=-2c=-3F1, F2, F3, F4M的的N分分支支N的的N分支分支判定判定- -條件覆蓋的優(yōu)缺點(diǎn)條件覆蓋的優(yōu)缺點(diǎn)

39、優(yōu)點(diǎn)優(yōu)點(diǎn) :能同時滿足判定、條件兩種覆蓋標(biāo)準(zhǔn)。能同時滿足判定、條件兩種覆蓋標(biāo)準(zhǔn)。缺點(diǎn)缺點(diǎn) :未考慮條件的組合情況。未考慮條件的組合情況。3.4.4 3.4.4 條件組合覆蓋條件組合覆蓋條件組合覆蓋條件組合覆蓋的基本思想是通的基本思想是通過執(zhí)行足夠的測試過執(zhí)行足夠的測試用例,使得程序中每個判定的所有可能的條件取值用例,使得程序中每個判定的所有可能的條件取值組合都至少出現(xiàn)一次。組合都至少出現(xiàn)一次。示例示例設(shè)設(shè)計(jì)計(jì)組合條件組合條件如表所示:如表所示:編號編號覆蓋條件取值覆蓋條件取值判定條件取值判定條件取值 具體條件取值具體條件取值1T1,T2M取取Ya0,b02T1,F2M取取Na0,b=03F1,

40、T2M取取Na04F1,F2M取取Na= 0,b1,c16T3,F4N取取Ya1,c=17F3,T4N取取Ya18F3,F4N取取Na=1,c 0 )5 6 If ( iType=0 )7x=y+2;8 else9 If ( iType=1 )10 x=y+10;11 else12 x=y+20;13 14 (1)畫出控制流圖)畫出控制流圖(2)計(jì)算)計(jì)算環(huán)路復(fù)雜環(huán)路復(fù)雜度度(3)導(dǎo)出獨(dú)立路徑(用語句)導(dǎo)出獨(dú)立路徑(用語句編號表示)編號表示)(4)設(shè)計(jì)測試用例)設(shè)計(jì)測試用例例題例題(1)畫出控制流圖:)畫出控制流圖:(2)計(jì)算計(jì)算環(huán)路復(fù)雜環(huán)路復(fù)雜度:度: 10(條邊)(條邊)- 8(個節(jié)點(diǎn))(

41、個節(jié)點(diǎn))+ 2 = 4(3)導(dǎo)出獨(dú)立路徑(用語句編號表示)導(dǎo)出獨(dú)立路徑(用語句編號表示) 路徑路徑1:414 路徑路徑2:46713 414 路徑路徑3:4691013414 路徑路徑4:4691213414467910121314例例題解答題解答輸入數(shù)據(jù)輸入數(shù)據(jù)預(yù)期輸出預(yù)期輸出測試用例測試用例1irecordnum = 0itype = 0 x = 0y = 0測試用例測試用例2irecordnum = 1itype = 0 x = 2y = 0測試用例測試用例3irecordnum = 1itype = 1x = 10y = 0測試用例測試用例4irecordnum = 1itype =

42、2x = 20y = 0(4)設(shè)計(jì)測試用例:)設(shè)計(jì)測試用例:例例題解答題解答習(xí)題習(xí)題1 1Int IsLeap(int year) if (year % 4 = 0) 1 if (year % 100 = 0) 2 if (year % 400 =0) 3 leap = 1; 4 else leap = 0; 5 else leap = 1; 6else leap = 0; 7return leap; 8(1)畫出畫出控制流圖控制流圖(2)請計(jì)算環(huán)行復(fù)雜請計(jì)算環(huán)行復(fù)雜度度V(G)(3)導(dǎo)出基本路徑導(dǎo)出基本路徑(4)設(shè)計(jì)測試用例設(shè)計(jì)測試用例106習(xí)題習(xí)題1 1解答解答(1)控制流圖(見右)控制流

43、圖(見右)(2)環(huán)行復(fù)雜度環(huán)行復(fù)雜度V(G): V(G)=10-8+2=4(3)基本路徑集基本路徑集: 1-7-8 1-2-6-8 1-2-3-4-8 1-2-3-5-8107(4)設(shè)計(jì)測試用例:設(shè)計(jì)測試用例:測試用例測試用例4 4個:個:10011001:滿足不被:滿足不被4 4整除的路徑整除的路徑 19961996:滿足能被:滿足能被4 4不能被不能被100100整除的路徑整除的路徑20002000:滿足能被:滿足能被400400整除的路徑整除的路徑18001800:滿足不能被:滿足不能被400400整除的路徑整除的路徑 下下面是選擇排序的程序,其中面是選擇排序的程序,其中datalist

44、是數(shù)據(jù)表,它有兩個是數(shù)據(jù)表,它有兩個數(shù)據(jù)成員:一是元素類型為數(shù)據(jù)成員:一是元素類型為Element的數(shù)組的數(shù)組V,另一個是數(shù),另一個是數(shù)組大小組大小n。算法中用到交換兩數(shù)組元素內(nèi)容的操作。算法中用到交換兩數(shù)組元素內(nèi)容的操作Swap( ): void SelectSort ( datalist list ) /對表對表list.V0到到list.Vn-1進(jìn)行排序進(jìn)行排序, n是表當(dāng)前長度。是表當(dāng)前長度。 for ( int i = 0; i list.n-1; i+ ) int k = i; /在在list中找具有最小關(guān)鍵碼的對象中找具有最小關(guān)鍵碼的對象 for ( int j = i+1; j

45、 list.n; j+) if ( list.Vj list.Vk ) k = j; /當(dāng)前具最小關(guān)鍵碼的對象當(dāng)前具最小關(guān)鍵碼的對象 if ( k != i ) Swap ( list.Vi, list.Vk ); /交換交換 習(xí)題習(xí)題2 2(1)路徑)路徑1,3(2)路徑)路徑1,2,4,6(3)路徑)路徑1,2,4,7(4)路徑)路徑1,2,5,8,3(5)路徑)路徑1,2,5,9,3習(xí)題習(xí)題2 2解答解答補(bǔ)充一:循環(huán)測試補(bǔ)充一:循環(huán)測試n目標(biāo)目標(biāo): : 在循環(huán)內(nèi)部及邊界上執(zhí)行測試在循環(huán)內(nèi)部及邊界上執(zhí)行測試 (1)簡單循環(huán))簡單循環(huán) (2)嵌套循環(huán))嵌套循環(huán) (3)串接循環(huán))串接循環(huán) (4

46、)不規(guī)則循環(huán))不規(guī)則循環(huán)補(bǔ)充一:循環(huán)測試補(bǔ)充一:循環(huán)測試1. 簡簡單循環(huán)單循環(huán)(迭代次數(shù)迭代次數(shù)n) 完全跳過循環(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 R) Q=Q-R; else R=R-Q; return Q; 程序插樁技術(shù)程序插樁技術(shù)在程序入口處插入在程序入口處插入對計(jì)數(shù)器對計(jì)數(shù)器C(i)的初的初始化語句始化語句在程序出口處在程序出口處加入打印語句加入打印語句 為記錄該程序?yàn)橛涗浽摮绦蛑姓Z句的執(zhí)行次中語句的執(zhí)行次數(shù),使用插樁技數(shù),使用插樁技術(shù)插入語句:術(shù)插入語句: C( C(i i)=C()=C(i i)+1)+1其中其中: :i

47、 i=1,2,6=1,2,6 插樁之后的流插樁之后的流程圖如右圖。程圖如右圖。程序插樁技術(shù)程序插樁技術(shù) 如果我們在程序的入口如果我們在程序的入口處還插入了對計(jì)數(shù)器處還插入了對計(jì)數(shù)器C(C(i i) )初始化的語句,在初始化的語句,在出口處插入了打印這些出口處插入了打印這些計(jì)數(shù)器的語句,就構(gòu)成計(jì)數(shù)器的語句,就構(gòu)成了完整的插樁程序。它了完整的插樁程序。它就能記錄并輸出在各程就能記錄并輸出在各程序點(diǎn)上語句的實(shí)際執(zhí)行序點(diǎn)上語句的實(shí)際執(zhí)行次數(shù)。次數(shù)。 右右圖為插樁之后的程序,圖為插樁之后的程序,箭頭所指為插入的語句。箭頭所指為插入的語句。源程序的語句已略去。源程序的語句已略去。設(shè)計(jì)插樁程序時需要考慮的問

48、題包括:設(shè)計(jì)插樁程序時需要考慮的問題包括: 探測哪些信息;探測哪些信息; 在程序的什么部位設(shè)置探測點(diǎn);在程序的什么部位設(shè)置探測點(diǎn); 需要設(shè)置多少個探測點(diǎn);需要設(shè)置多少個探測點(diǎn); 程序中特定部位插入某些用以判斷變量特性程序中特定部位插入某些用以判斷變量特性的語句。的語句。第第1 1個個問題:問題:具體具體問題具體分析。問題具體分析。第第2 2個個問題:問題:在在實(shí)際測試通常在下面一些部位設(shè)置實(shí)際測試通常在下面一些部位設(shè)置探測點(diǎn):探測點(diǎn): 程序塊的第程序塊的第1 1個可執(zhí)行語句之前個可執(zhí)行語句之前 for,dofor,do ,do- ,do-while,dowhile,do until until

49、 等循環(huán)語句處。等循環(huán)語句處。if, else if,if, else if, elseelse及及end ifend if等條件語句各分等條件語句各分支處。支處。輸入輸入/ /輸出語句之后。輸出語句之后。函數(shù)、過程、子程序調(diào)用語句之后。函數(shù)、過程、子程序調(diào)用語句之后。returnreturn語句之后語句之后gotogoto語句之后語句之后第第3 3個個問題:問題:需要需要考慮如何設(shè)置最少探測點(diǎn)方案??紤]如何設(shè)置最少探測點(diǎn)方案。第第4 4個個問題:問題:是是如何在程序中特定部位插入斷言語如何在程序中特定部位插入斷言語句。在應(yīng)用程序插樁技術(shù)時,可在程序中特定部句。在應(yīng)用程序插樁技術(shù)時,可在程序中

50、特定部位插入某些用以判斷變量特性的語句,使得程序位插入某些用以判斷變量特性的語句,使得程序執(zhí)行中這些語句得以證實(shí)執(zhí)行中這些語句得以證實(shí)。3.5 功功能能圖法圖法 狀態(tài)遷移圖狀態(tài)遷移圖用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù),在狀態(tài)遷移圖中,由輸入數(shù)據(jù)和當(dāng)前狀出數(shù)據(jù),在狀態(tài)遷移圖中,由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài)。態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài)。 邏輯功能模型邏輯功能模型用于表示在狀態(tài)輸入條件和輸出條用于表示在狀態(tài)輸入條件和輸出條件之間的對應(yīng)關(guān)系。邏輯功能模型只適合于描述件之間的對應(yīng)關(guān)系。邏輯功能模型只適合于描述靜態(tài)說明,輸出數(shù)據(jù)僅由輸入數(shù)據(jù)決定。靜態(tài)說明,輸

51、出數(shù)據(jù)僅由輸入數(shù)據(jù)決定。3.5 功能圖法功能圖法例:例:書書P58P58如何設(shè)計(jì)測試用例?如何設(shè)計(jì)測試用例? 從狀態(tài)遷移圖導(dǎo)出整體的測試用例,以覆蓋從狀態(tài)遷移圖導(dǎo)出整體的測試用例,以覆蓋系統(tǒng)(程序)控制的邏輯路徑系統(tǒng)(程序)控制的邏輯路徑。 從從功能邏輯模型(判定表或因果圖)導(dǎo)出局功能邏輯模型(判定表或因果圖)導(dǎo)出局部測試用例,覆蓋各個狀態(tài)的各種輸入數(shù)據(jù)部測試用例,覆蓋各個狀態(tài)的各種輸入數(shù)據(jù)的組合。的組合。的測試的測試用用例。例。 功功能圖法是綜合運(yùn)用黑盒方法和白盒方法來設(shè)計(jì)能圖法是綜合運(yùn)用黑盒方法和白盒方法來設(shè)計(jì)測試用例,即整體上選用白盒方法測試用例,即整體上選用白盒方法路徑覆蓋、路徑覆蓋、

52、分支和條件覆蓋等,而局部上選用的是黑盒方法分支和條件覆蓋等,而局部上選用的是黑盒方法判定判定表表或因果圖方法或因果圖方法 。補(bǔ)充:黑盒測試補(bǔ)充:黑盒測試- -場景測試場景測試p 現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的。現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的。p 事件觸發(fā)時的情景并形成了場景,而同一事件不事件觸發(fā)時的情景并形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成了事件流。同的觸發(fā)順序和處理結(jié)果就形成了事件流。p這種在軟件設(shè)計(jì)方面的思想可以引入到軟件測試這種在軟件設(shè)計(jì)方面的思想可以引入到軟件測試中,可以生動地描繪出事件觸發(fā)時的情景,有利于中,可以生動地描繪出事件觸發(fā)時的情景,有利于

53、設(shè)計(jì)測試用例,同時使測試用例更容易理解和執(zhí)行。設(shè)計(jì)測試用例,同時使測試用例更容易理解和執(zhí)行。 圖中,有一個基本流和四個備選流。圖中,有一個基本流和四個備選流。每個可能路徑,可以確定不同的用例每個可能路徑,可以確定不同的用例場景。從基本流開始,再將基本流和場景。從基本流開始,再將基本流和備選流結(jié)合起來,可以確定以下用例備選流結(jié)合起來,可以確定以下用例場景:場景:p 場景場景1:基本流:基本流 p 場景場景2:基本流:基本流 備選流備選流1p 場景場景3:基本流:基本流 備選流備選流1 備選流備選流2 p 場景場景4:基本流:基本流 備選流備選流3 p 場景場景5:基本流:基本流 備選流備選流3

54、備選流備選流1 p 場景場景6:基本流:基本流 備選流備選流3 備選流備選流1 備選流備選流2p 場景場景7:基本流:基本流 備選流備選流4p 場景場景8:基本流:基本流 備選流備選流3 備選流備選流4補(bǔ)充:場景測試補(bǔ)充:場景測試?yán)纾豪纾涸诰€購物實(shí)例在線購物實(shí)例。用戶進(jìn)入一個在線購物網(wǎng)站用戶進(jìn)入一個在線購物網(wǎng)站進(jìn)行購物,選購物品后,進(jìn)行在線購買,這時需要進(jìn)行購物,選購物品后,進(jìn)行在線購買,這時需要使用帳號登錄,登錄成功后,進(jìn)行付錢交易,交易使用帳號登錄,登錄成功后,進(jìn)行付錢交易,交易成功后,生成訂購單,完成整個購物過程。成功后,生成訂購單,完成整個購物過程。步驟:步驟:第一步第一步:確定基

55、本流和備選流確定基本流和備選流。第二步第二步:根據(jù)基本流和備選流來確定場景根據(jù)基本流和備選流來確定場景。第三步第三步:設(shè)計(jì)設(shè)計(jì)測試測試用例用例第四步第四步:設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)場景測試?yán)}場景測試?yán)}第一步第一步:確定基本流和備選流確定基本流和備選流場景測試?yán)}場景測試?yán)}第二步第二步:根據(jù)基本流和備選流來確定場景根據(jù)基本流和備選流來確定場景場景測試?yán)}場景測試?yán)}第第三步三步:設(shè)計(jì)設(shè)計(jì)測試測試用例用例 對于每一個場景都需要確定測試用例??梢圆捎镁貙τ诿恳粋€場景都需要確定測試用例。可以采用矩陣或陣或判定判定表來確定和管理測試用例。表來確定和管理測試用例。場景測試?yán)}場景測試?yán)}第四步第四步:設(shè)計(jì)數(shù)

56、據(jù)設(shè)計(jì)數(shù)據(jù),把數(shù)據(jù)填入上面的用例表中。把數(shù)據(jù)填入上面的用例表中。說明:說明:以上寫到的測試用例只是購物的一部分測試用例。以上寫到的測試用例只是購物的一部分測試用例??梢栽趯懲旰罄^續(xù)進(jìn)行補(bǔ)充和擴(kuò)展,達(dá)到比較好的覆蓋??梢栽趯懲旰罄^續(xù)進(jìn)行補(bǔ)充和擴(kuò)展,達(dá)到比較好的覆蓋。 場景測試?yán)}場景測試?yán)}3.6 測試用例構(gòu)成及設(shè)計(jì)測試用例構(gòu)成及設(shè)計(jì)1 1、測試用例的定義、測試用例的定義 測試用例(測試用例(TEST CASE)是為了高效率地發(fā)現(xiàn)軟是為了高效率地發(fā)現(xiàn)軟件缺陷而精心設(shè)計(jì)的少量測試數(shù)據(jù)。實(shí)際測試中,件缺陷而精心設(shè)計(jì)的少量測試數(shù)據(jù)。實(shí)際測試中,由于無法達(dá)到窮舉測試,所以要從大量輸入數(shù)據(jù)中由于無法達(dá)到窮

57、舉測試,所以要從大量輸入數(shù)據(jù)中精選有代表性或特殊性的數(shù)據(jù)來作為測試數(shù)據(jù)精選有代表性或特殊性的數(shù)據(jù)來作為測試數(shù)據(jù)。 好好的測試用例應(yīng)該能發(fā)現(xiàn)尚未發(fā)現(xiàn)的軟件缺陷。的測試用例應(yīng)該能發(fā)現(xiàn)尚未發(fā)現(xiàn)的軟件缺陷。2 2、為什么要編寫和記錄測試用例、為什么要編寫和記錄測試用例 有助于提高測試用例的質(zhì)量;有助于提高測試用例的質(zhì)量; 為項(xiàng)目團(tuán)隊(duì)內(nèi)的溝通提供基礎(chǔ);為項(xiàng)目團(tuán)隊(duì)內(nèi)的溝通提供基礎(chǔ); 使測試用例能夠得到復(fù)用;使測試用例能夠得到復(fù)用; 為測試用例集的改進(jìn)提供基礎(chǔ)。為測試用例集的改進(jìn)提供基礎(chǔ)。3.6 測試用例構(gòu)成及設(shè)計(jì)測試用例構(gòu)成及設(shè)計(jì)3 3、測試用例的編制要素、測試用例的編制要素n編號編號n簡要說明簡要說明n

58、優(yōu)先級優(yōu)先級n前置條件及運(yùn)行準(zhǔn)備前置條件及運(yùn)行準(zhǔn)備n運(yùn)行步驟運(yùn)行步驟n預(yù)期運(yùn)行結(jié)果預(yù)期運(yùn)行結(jié)果n測試數(shù)據(jù)測試數(shù)據(jù)n與其他測試案例的關(guān)系與其他測試案例的關(guān)系3.6 測試用例構(gòu)成及設(shè)計(jì)測試用例構(gòu)成及設(shè)計(jì)測試用例包含的要素測試用例包含的要素(1 1)用例編號)用例編號:每個測試用例都有唯一的標(biāo)識號,:每個測試用例都有唯一的標(biāo)識號,用以區(qū)別其他測試用例。測試用例的編號有一定的用以區(qū)別其他測試用例。測試用例的編號有一定的規(guī)則,比如系統(tǒng)測試用例的編號這樣定義規(guī)則:規(guī)則,比如系統(tǒng)測試用例的編號這樣定義規(guī)則: PROJECT1-ST-001 PROJECT1-ST-001 ,命名規(guī)則是,命名規(guī)則是項(xiàng)目名稱項(xiàng)目

59、名稱測試測試階段類型(系統(tǒng)測試階段)階段類型(系統(tǒng)測試階段)編號編號。定義測試用例。定義測試用例編號,便于查找測試用例,便于測試用例的跟蹤。編號,便于查找測試用例,便于測試用例的跟蹤。(2 2)測試項(xiàng):)測試項(xiàng):指明并簡單描述本測試用例是用來測指明并簡單描述本測試用例是用來測試哪些項(xiàng)目、子項(xiàng)目或軟件特性的。試哪些項(xiàng)目、子項(xiàng)目或軟件特性的。 例如例如“計(jì)算器程序加法運(yùn)算的上限溢出處理計(jì)算器程序加法運(yùn)算的上限溢出處理”測試用例包含的要素測試用例包含的要素(3 3)優(yōu)先級)優(yōu)先級:定義測試用例的優(yōu)先級別,可粗略地:定義測試用例的優(yōu)先級別,可粗略地分為分為“高高”和和“低低”兩個級別,也可以分為兩個級別,也可以分為“高高”、“中中”、“低低”三個級別。一般來說,軟件需求的三個級別。一般來說,軟件需求的優(yōu)先級和測試用例的優(yōu)先級一致。即如果軟件需求優(yōu)先級和測試用例的優(yōu)先級一致。即如果軟件需求的優(yōu)先級為的優(yōu)先級為“高高”,那么針對該需求的測試用例的,那么針對該需求的測試用例的優(yōu)先級也為優(yōu)先級也為“高高”;反之亦然。;反之亦然。(4 4)測試環(huán)境)測試環(huán)境:描述執(zhí)行測試用例所需要的具體測:描述執(zhí)行測試用

溫馨提示

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

評論

0/150

提交評論