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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

14、元元”,其測(cè)試用例可取,其測(cè)試用例可取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)摘要,這時(shí)我們應(yīng)考慮的測(cè)試用,這時(shí)我們應(yīng)考慮的測(cè)試用例包括例包括1和和4,還應(yīng)包括,還應(yīng)包括0和和5等。等。 (4 4)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例。這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例。26確定邊界值的方法確定邊界值的方法邊

15、界值附近的數(shù)據(jù)確定的幾種方法邊界值附近的數(shù)據(jù)確定的幾種方法項(xiàng)項(xiàng)邊界值邊界值測(cè)試用例的設(shè)計(jì)思路測(cè)試用例的設(shè)計(jì)思路字符起始-1個(gè)字符/結(jié)束+1個(gè)字符假設(shè)一個(gè)文本輸入?yún)^(qū)域允許輸入1個(gè)到255個(gè) 字符,輸入1個(gè)和255個(gè)字符作為有效等價(jià)類;輸入0個(gè)和256個(gè)字符作為無效等價(jià)類,這幾個(gè)數(shù)值都屬于邊界條件值。數(shù)值最小值-1/最大值+1假設(shè)某軟件的數(shù)據(jù)輸入域要求輸入5位的數(shù)據(jù)值,可以使用10000作為最小值、99999作為最大值;然后使用剛好小于5位和大于5位的 數(shù)值來作為邊界條件??臻g小于空余空間一點(diǎn)/大于滿空間一點(diǎn)例如在用U盤存儲(chǔ)數(shù)據(jù)時(shí),使用比剩余磁盤空間大一點(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 測(cè)試測(cè)試 限制性用戶輸入:限制性用戶輸入:6位正整數(shù)位正整數(shù)無效值無效值: X8 = 000123 X9 = asd123 X10 = Empty例例3 3Test cases :任意的正常值任意的正常值: 隨機(jī)選擇幾個(gè)選項(xiàng)隨機(jī)選擇幾個(gè)選項(xiàng) 邊界值邊界值: 選擇所有選項(xiàng)選擇所有選項(xiàng) 邊界值邊界值: 一個(gè)都不選一個(gè)都不選邊界值邊界值: 選擇一個(gè)選項(xiàng)選擇一個(gè)選項(xiàng)33邊界值分析法其他案例邊界值分析法其他案例作業(yè):作業(yè): 加法器加法器

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

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

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

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

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

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

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

26、、(3、3)出現(xiàn)的次數(shù)相)出現(xiàn)的次數(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員工號(hào)(員工號(hào)(IDID):填,不填):填,不填員工姓名(員工姓名(NameName) :填,不填:填,不填員工郵件地址(員工郵件地址(Mail Addre

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

28、驗(yàn)法:試驗(yàn)次數(shù)為3 33 3=27=27,即取每個(gè)因子所有水,即取每個(gè)因子所有水平的組合。平的組合。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不填填寫錯(cuò)誤信息 填寫錯(cuò)誤信息-3不填填寫正確信息 填寫正確信息-4填寫錯(cuò)誤信息不填填寫錯(cuò)誤信息-5填寫錯(cuò)誤信息 填寫錯(cuò)誤信息 填寫正確信息-6填寫錯(cuò)誤信

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

30、43.4 基于邏輯覆蓋的方法基于邏輯覆蓋的方法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ì)若干測(cè)試用例語句覆蓋法的基本思想是設(shè)計(jì)若干測(cè)試用例,運(yùn)行被測(cè)程序,使程序中的每個(gè)可執(zhí)行語,運(yùn)行被測(cè)程序,使程序中的每個(gè)可執(zhí)行語句至少被執(zhí)行一次句至少被執(zhí)行一次程序源代程序源代碼:碼:1. dim a, b as integer2. dim c as double3. if (a 0 and b 0) t

31、hen4. c = c / a5. 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

32、) then7. c = c + 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):可以很直觀地從源代碼得到測(cè)試用例,可以很直觀地從源代碼得到測(cè)試用例,無須細(xì)分每條判定表達(dá)式無須細(xì)分每條判定表達(dá)式 缺點(diǎn):缺點(diǎn):語句覆蓋常是語句覆蓋常是“最弱的覆蓋最弱的覆蓋”,不考慮,不考慮各種分支的組合,不能發(fā)現(xiàn)其中的邏輯錯(cuò)誤。各種分支的組合,不能發(fā)現(xiàn)其中的邏輯錯(cuò)誤。假如只要求達(dá)到語

33、句覆蓋,那么換來的確實(shí)測(cè)假如只要求達(dá)到語句覆蓋,那么換來的確實(shí)測(cè)試效果不明顯,很難更多地發(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)行被測(cè)基本思想是設(shè)計(jì)若干用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的取真分支和取假分程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷真假值均曾被滿足。支至少經(jīng)歷一次,即判斷真假值均曾被滿足。p一個(gè)判定代表著程序一個(gè)判定代表著程序的一個(gè)分支的一個(gè)分支,所,所以判定覆蓋以判定覆蓋也被稱為也被稱為分支覆蓋分支覆蓋。示示例例

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

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

36、為記為 F2 判斷判斷N表達(dá)式表達(dá)式: 條條件件 a1 取真取真 記為記為 T3 條件條件 a1 取假取假 記為記為 F3 條條件件 c1 取真取真 記為記為 T4 條件條件 c1取取 假假 記為記為 F4測(cè)試用例測(cè)試用例覆蓋條覆蓋條件件具體取具體取值條件值條件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):增加了對(duì)條件判定情況的測(cè)試。增加了對(duì)條件判定情況的測(cè)試。缺點(diǎn):缺點(diǎn):條件覆蓋不一定包含判定覆蓋。條件覆蓋不一定包含判定覆蓋。

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

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

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

40、F2M取取Na0,b=03F1,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ú)立路徑(用語句編號(hào)表示)編號(hào)表示)(4)設(shè)計(jì)測(cè)試用例)設(shè)計(jì)測(cè)試用例例題例題(1)畫出控制流圖:)畫出控制流圖:(2)計(jì)算)計(jì)算環(huán)路復(fù)雜環(huán)路復(fù)雜度:度: 10

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

42、rdnum = 1itype = 2x = 20y = 0(4)設(shè)計(jì)測(cè)試用例:)設(shè)計(jì)測(cè)試用例:例例題解答題解答習(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)請(qǐng)計(jì)算環(huán)行復(fù)雜請(qǐng)計(jì)算環(huán)行復(fù)雜度度V(G)(3)導(dǎo)出基本路徑導(dǎo)出基本路徑(4)設(shè)計(jì)測(cè)試用例設(shè)計(jì)測(cè)試用例106習(xí)題習(xí)題1 1解

43、答解答(1)控制流圖(見右)控制流圖(見右)(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ì)測(cè)試用例:設(shè)計(jì)測(cè)試用例:測(cè)試用例測(cè)試用例4 4個(gè):個(gè):10011001:滿足不被:滿足不被4 4整除的路徑整除的路徑 19961996:滿足能被:滿足能被4 4不能被不能被100100整除的路徑整除的路徑20002000:滿足能被:滿足能被400400整除的路徑整除的路徑18001800:滿足不能被:滿足不能被400400整除的路徑整除的路徑 下下面是選擇排序的程序,其中面是選

44、擇排序的程序,其中datalist是數(shù)據(jù)表,它有兩個(gè)是數(shù)據(jù)表,它有兩個(gè)數(shù)據(jù)成員:一是元素類型為數(shù)據(jù)成員:一是元素類型為Element的數(shù)組的數(shù)組V,另一個(gè)是數(shù),另一個(gè)是數(shù)組大小組大小n。算法中用到交換兩數(shù)組元素內(nèi)容的操作。算法中用到交換兩數(shù)組元素內(nèi)容的操作Swap( ): void SelectSort ( datalist list ) /對(duì)表對(duì)表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)鍵碼的對(duì)象中找具有最小關(guān)鍵碼的對(duì)象 for

45、 ( int j = i+1; j list.n; j+) if ( list.Vj list.Vk ) k = j; /當(dāng)前具最小關(guān)鍵碼的對(duì)象當(dāng)前具最小關(guān)鍵碼的對(duì)象 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)測(cè)試補(bǔ)充一:循環(huán)測(cè)試n目標(biāo)目標(biāo): : 在循環(huán)內(nèi)部及邊界上執(zhí)行測(cè)試在循環(huán)內(nèi)部及邊界上執(zhí)行測(cè)試 (1)簡單循環(huán))簡單循環(huán) (2)嵌套循環(huán))嵌套循

46、環(huán) (3)串接循環(huán))串接循環(huán) (4)不規(guī)則循環(huán))不規(guī)則循環(huán)補(bǔ)充一:循環(huán)測(cè)試補(bǔ)充一:循環(huán)測(cè)試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ù)在程序入口處插入在程序入口處插入對(duì)計(jì)數(shù)器對(duì)計(jì)數(shù)器C(i)的初的初始化語句始化語句在程序出口處在程序出口處加入打印語句加入打印語句 為記錄該程序?yàn)橛涗浽摮绦蛑姓Z句的執(zhí)行次中語句的執(zhí)行次數(shù),使用插樁技數(shù),使用插樁技術(shù)插入語句:術(shù)插入語句: C(i)=C(i)+1 C(i)

47、=C(i)+1其中其中:i=1,2,6:i=1,2,6 插樁之后的流插樁之后的流程圖如右圖。程圖如右圖。程序插樁技術(shù)程序插樁技術(shù) 如果我們?cè)诔绦虻娜肟谌绻覀冊(cè)诔绦虻娜肟谔庍€插入了對(duì)計(jì)數(shù)器處還插入了對(duì)計(jì)數(shù)器C(i)C(i)初始化的語句,在初始化的語句,在出口處插入了打印這些出口處插入了打印這些計(jì)數(shù)器的語句,就構(gòu)成計(jì)數(shù)器的語句,就構(gòu)成了完整的插樁程序。它了完整的插樁程序。它就能記錄并輸出在各程就能記錄并輸出在各程序點(diǎn)上語句的實(shí)際執(zhí)行序點(diǎn)上語句的實(shí)際執(zhí)行次數(shù)。次數(shù)。 右右圖為插樁之后的程序,圖為插樁之后的程序,箭頭所指為插入的語句。箭頭所指為插入的語句。源程序的語句已略去。源程序的語句已略去。設(shè)計(jì)

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

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

50、序插樁技術(shù)時(shí),可在程序中特定部位插入某些用以判斷變量特性的語句,使得程序位插入某些用以判斷變量特性的語句,使得程序執(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)輸入條件和輸出條件之間的對(duì)應(yīng)關(guān)系。邏輯功能模型只適合于描述件之間的對(duì)應(yīng)關(guān)系。邏輯功能模型只適合于描述靜態(tài)說明,輸出數(shù)據(jù)僅由輸

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

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

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

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

55、驟:第一步第一步:確定基本流和備選流確定基本流和備選流。第二步第二步:根據(jù)基本流和備選流來確定場(chǎng)景根據(jù)基本流和備選流來確定場(chǎng)景。第三步第三步:設(shè)計(jì)設(shè)計(jì)測(cè)試測(cè)試用例用例第四步第四步:設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)場(chǎng)景測(cè)試?yán)}場(chǎng)景測(cè)試?yán)}第一步第一步:確定基本流和備選流確定基本流和備選流場(chǎng)景測(cè)試?yán)}場(chǎng)景測(cè)試?yán)}第二步第二步:根據(jù)基本流和備選流來確定場(chǎng)景根據(jù)基本流和備選流來確定場(chǎng)景場(chǎng)景測(cè)試?yán)}場(chǎng)景測(cè)試?yán)}第第三步三步:設(shè)計(jì)設(shè)計(jì)測(cè)試測(cè)試用例用例 對(duì)于每一個(gè)場(chǎng)景都需要確定測(cè)試用例。可以采用矩對(duì)于每一個(gè)場(chǎng)景都需要確定測(cè)試用例??梢圆捎镁仃嚮蜿嚮蚺卸ㄅ卸ū韥泶_定和管理測(cè)試用例。表來確定和管理測(cè)試用例。場(chǎng)景測(cè)試?yán)}場(chǎng)景測(cè)試

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

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

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

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

溫馨提示

  • 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)論