《測試用例設(shè)計(jì)方法》課件_第1頁
《測試用例設(shè)計(jì)方法》課件_第2頁
《測試用例設(shè)計(jì)方法》課件_第3頁
《測試用例設(shè)計(jì)方法》課件_第4頁
《測試用例設(shè)計(jì)方法》課件_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

測試用例設(shè)計(jì)方法

編寫:詹淵水1精選課件ppt

測試用例設(shè)計(jì)方法

編寫:詹淵水1精選課件ppt測試用例概念與定義目錄設(shè)計(jì)測試用例的方法測試用例的設(shè)計(jì)過程測試?yán)斫獾恼`區(qū)等價類分法邊界值分析法錯誤推測法因果圖法Yoursitehere2測試用例概念與定義目錄設(shè)計(jì)測試用例的方法測試用例的設(shè)計(jì)過什么是測試用例?為達(dá)到最佳的測試效果或高效的揭露隱藏的錯誤而精心設(shè)計(jì)的少量測試數(shù)據(jù),稱之為測試用例。我們不可能進(jìn)行窮舉測試為了節(jié)省時間和資源、提高測試效率,必須要從數(shù)量極大的可用測試數(shù)據(jù)中精心挑選出具有代表性或特殊性的測試數(shù)據(jù)來進(jìn)行測試。概念與定義

不完全、不徹底是軟件測試的致命缺陷,任何程序只能進(jìn)行少量而有限的測試。測試用例在此情況下產(chǎn)生,同時它也是軟件測試系統(tǒng)化、工程化的產(chǎn)物。而測試用例的設(shè)計(jì)一直是軟件測試工作的重點(diǎn)和難點(diǎn),那么怎樣的用例算是好用例?

一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤。使用測試用例的好處

在開始實(shí)施測試之前設(shè)計(jì)好測試用例,可以避免盲目測試并提高測試效率。測試用例的使用令軟件測試的實(shí)施重點(diǎn)突出、目的明確。在軟件版本更新后只需修正少部分的測試用例便可展開測試工作,降低工作強(qiáng)度、縮短項(xiàng)目周期。功能模塊的通用化和復(fù)用化使軟件易于開發(fā),而相對于功能模塊的測試用例的通用化和復(fù)用化則會使軟件測試易于開展,并隨著測試用例的不斷精化其效率也不斷攀升。Yoursitehere3什么是測試用例?概念與定義不完全、不徹底是軟件測試設(shè)計(jì)測試用例的方法黑盒測試:

等價類劃分法

邊界值分析法

錯誤推測法

因果圖法判定法驅(qū)動法正交試驗(yàn)設(shè)計(jì)法功能圖分析法場景設(shè)計(jì)法白盒測試:

邏輯覆蓋法

基本路徑測試法Yoursitehere4設(shè)計(jì)測試用例的方法黑盒測試:

Yoursitehere4

測試設(shè)計(jì)員(分析設(shè)計(jì)員)依據(jù)不同階段的測試計(jì)劃、設(shè)計(jì)模型和實(shí)施模型來設(shè)計(jì)該階段測試用例。測試設(shè)計(jì)員是具有豐富測試經(jīng)驗(yàn)或具有軟件分析設(shè)計(jì)能力的高級測試工程師。如果沒有測試設(shè)計(jì)員則可用分析設(shè)計(jì)員代替。針對白盒,還應(yīng)有驅(qū)動程序和樁模塊

ISO質(zhì)量體系在概要設(shè)計(jì)或詳細(xì)設(shè)計(jì)中應(yīng)明確指出每個單元模塊的測試要點(diǎn)、指標(biāo)和方法。CMM質(zhì)量體系在系統(tǒng)的用例模型描述中應(yīng)明確指出每個用例模型的優(yōu)先級及用例工作流程,每一個用例模型為一個測試點(diǎn)用例模型中每一個測試需求至少應(yīng)有兩個測試用例。測試用例的設(shè)計(jì)過程

CMM(CapabilityMaturityModel),英文直譯的意思是“能力成熟度模型”。由卡內(nèi)基.梅隆大學(xué)的軟件工程協(xié)會(SoftwareEngineeringInstitute,簡稱SEI)提出并完善,目的是通過一個合理的體系模型來對軟件組織開發(fā)能力進(jìn)行合理有效的評估,幫助軟件組織在模型實(shí)施的過程中提高軟件過程管理能力,降低軟件系統(tǒng)開發(fā)風(fēng)險,在預(yù)定的項(xiàng)目周期和預(yù)算內(nèi)開發(fā)出高質(zhì)量的軟件產(chǎn)品。

CMM一共分為5級,1級最低,5級最高,3級是一個比較重要的分界線Yoursitehere5測試設(shè)計(jì)員(分析設(shè)計(jì)員)依據(jù)不同階段的測試計(jì)劃、測試用例應(yīng)由測試設(shè)計(jì)員或分析設(shè)計(jì)員來制定而不是普通的測試員。測試點(diǎn)應(yīng)由分析設(shè)計(jì)員確立,與測試人員無關(guān)。測試工作展開于項(xiàng)目立項(xiàng)后而不是代碼開發(fā)完成之后。測試對象不僅僅是源代碼,還包括需求分析、需求規(guī)格說明書、概要設(shè)計(jì)、概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)、詳細(xì)設(shè)計(jì)說明書、使用手冊等各階段的文檔。測試?yán)斫獾恼`區(qū)Yoursitehere6測試用例應(yīng)由測試設(shè)計(jì)員或分析設(shè)計(jì)員來制定而不是普通的測試員。測試用例設(shè)計(jì)方法之等價類分法(1)__理論知識I.理論知識等價類劃分是一種典型的黑盒測試方法。這一方法完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計(jì)測試用例。等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭示程序中的錯誤都是等效的。等價類合理地假設(shè):某個等價類的代表值,與該等價類的其他值,對于測試來說是等價的。因此,可以把全部的輸入數(shù)據(jù)劃分成若干的等價類,在每一個等價類中取一個數(shù)據(jù)來進(jìn)行測試。這樣就能以較少的具有代表性的數(shù)據(jù)進(jìn)行測試,而取得較好的測試效果。等價類劃分是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例.該方法是一種重要的,常用的黑盒測試用例設(shè)計(jì)方法.Yoursitehere7測試用例設(shè)計(jì)方法之等價類分法(1)__理論知識I.理論知識Y1)分類:劃分等價類:等價類是指某個輸入域的子集合.在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的.并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試.因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù).取得較好的測試結(jié)果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.有效等價類:是指對于程序的規(guī)格說明來說是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合.利用有效等價類可檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能.無效等價類:與有效等價類的定義恰巧相反.設(shè)計(jì)測試用例時,要同時考慮這兩種等價類.因?yàn)?軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn).這樣的測試才能確保軟件具有更高的可靠性.測試用例設(shè)計(jì)方法之等價類分法(1)__理論知識Yoursitehere81)分類:測試用例設(shè)計(jì)方法之等價類分法(1)__理論知識Yo2):劃分等價類的方法:六條確定等價類的原則:①在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,則可以確立一個有效等價類和兩個無效等價類.②在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類.③在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類.④在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類.⑤在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則).⑥在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價類進(jìn)一步的劃分為更小的等價類.測試用例設(shè)計(jì)方法之等價類分法(1)__理論知識Yoursitehere92):劃分等價類的方法:測試用例設(shè)計(jì)方法之等價類分法(1)_3)原則:設(shè)計(jì)測試用例:在確立了等價類后,可建立等價類表,列出所有劃分出的等價類:輸入條件有效等價類無效等價類

.........

.........

然后從劃分出的等價類中按以下三個原則設(shè)計(jì)測試用例:為每一個等價類規(guī)定一個唯一的編號.設(shè)計(jì)一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價類,重復(fù)這一步.直到所有的有效等價類都被覆蓋為止.設(shè)計(jì)一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復(fù)這一步.直到所有的無效等價類都被覆蓋為止.之所以這么做,是因?yàn)槌绦蛑袑τ谀骋粋€錯誤輸入的檢查,往往會屏蔽對于其他錯誤輸入的檢查。因此,必須針對每一個無效等價類分別設(shè)計(jì)測試用例測試用例設(shè)計(jì)方法之等價類分法(1)__理論知識Yoursitehere103)原則:測試用例設(shè)計(jì)方法之等價類分法(1)__理論知識Yo測試用例設(shè)計(jì)方法之等價類分法(1)__實(shí)例I.實(shí)例1、保險費(fèi)率計(jì)算

人人保險公司承擔(dān)人壽保險已有多年歷史,該公司保費(fèi)計(jì)算方式為投保額*保險率,保險率又依點(diǎn)數(shù)不同而有別,10點(diǎn)以上費(fèi)率為0.6%,10點(diǎn)以下費(fèi)率為0.1%

:輸入數(shù)據(jù)說明

年齡20~39歲6點(diǎn)40~59歲4點(diǎn)60歲以上20歲以下2點(diǎn)性別MALE5點(diǎn)FEMALE3點(diǎn)婚姻已婚3點(diǎn)未婚5點(diǎn)扶養(yǎng)人數(shù)一人扣0.5點(diǎn)最多扣3點(diǎn)(四舍五入取整數(shù))Yoursitehere11測試用例設(shè)計(jì)方法之等價類分法(1)__實(shí)例I.實(shí)例年齡20~測試用例設(shè)計(jì)方法之等價類分法(1)__實(shí)例A、分析輸入數(shù)據(jù)型式。

年齡:一或兩位數(shù)字。性別:Male]、[Female]、[M]、[F]表示婚姻:[已婚]、[未婚]扶養(yǎng)人數(shù):空白或一位數(shù)字保險費(fèi)率:10點(diǎn)以上,10點(diǎn)以下1.年齡數(shù)字范圍1~99等價類20~39歲40~59歲60歲以上20歲以下2.性別類型英文字之集合等價類類型:英文字集合:「Male」、「M」集合:「Female」、「F」3.婚姻等價類已婚未婚4.扶養(yǎng)人數(shù)選擇項(xiàng)扶養(yǎng)人數(shù)可以有,也可沒有范圍1~9等價類空白1~6人6人以上5.保險費(fèi)率等價類10點(diǎn)以上10點(diǎn)以下B、劃分輸入數(shù)據(jù)Yoursitehere12測試用例設(shè)計(jì)方法之等價類分法(1)__實(shí)例A、分析輸入C、設(shè)計(jì)輸入數(shù)據(jù)測試用例設(shè)計(jì)方法之等價類分法(1)__實(shí)例有效等價類無效等價類無效等價類1.年齡20~39任選一個2.年齡40~59任選一個3.年齡60歲以上、20歲以下任選一個小於1,選一個大於99,選一個4.性別英文Male,M,F,Female任選一個非英文字如「男」5.性別英文Male,M任選一個非Male,M,Female,F之任意字元,如[Child]6.性別英文Female,F任選一個非Male,M,Female,F之任意字元,如[Child]7.婚姻[已婚]非[已婚]或[未婚]之任意字符,如[離婚]8.婚姻[未婚]非[已婚]或[未婚]之任意字符,如[離婚]9.撫養(yǎng)人數(shù)空白10.撫養(yǎng)人數(shù)1~6小于1,選一個11.撫養(yǎng)人數(shù)7~9大于9,選一個12.保險費(fèi)率10點(diǎn)以上(0.6℅)13.保險費(fèi)率10點(diǎn)以上(0.1℅)Yoursitehere13C、設(shè)計(jì)輸入數(shù)據(jù)測試用例設(shè)計(jì)方法之等價類分法(1)__實(shí)例有D、根據(jù)以上分析測試用例數(shù)據(jù)測試用例設(shè)計(jì)方法之等價類分法(1)__實(shí)例用例編號年齡性別婚姻撫養(yǎng)人數(shù)保險費(fèi)率備注127Female未婚空白0.6%有效年齡:20~39歲性別:集合「Female,F」婚姻:集合「未婚」扶養(yǎng)人數(shù):空白250Male已婚20.6%有效年齡:40~59歲性別:集合「Male,M」婚姻:集合「已婚」扶養(yǎng)人數(shù):1~6人370F未婚70.1%有效年齡:60歲以上或20歲以下性別:集合「Female,f」婚姻:集合「未婚」扶養(yǎng)人數(shù):6人以上40M已婚4無法推算年齡類無效,因此無法推算保險費(fèi)率5100Female未婚5無法推算年齡類無效,因此無法推算保險費(fèi)率61男已婚6無法推算性別類無效,因此無法推算保險費(fèi)率799Child未婚1無法推算性別類無效,因此無法推算保險費(fèi)率830Male離婚3無法推算婚姻類無效,因此無法推算保險費(fèi)率975Female未婚0無法推算撫養(yǎng)人數(shù)類無效,因此無法推算保險費(fèi)率1017Male已婚10無法推算撫養(yǎng)人數(shù)類無效,因此無法推算保險費(fèi)率Yoursitehere14D、根據(jù)以上分析測試用例數(shù)據(jù)測試用例設(shè)計(jì)方法之等價類分法(1測試用例設(shè)計(jì)方法之邊界值分析法(2)__理論知識I.理論知識

邊界值分析方法是對等價類劃分方法的補(bǔ)充,也是一種黑盒測試方法,適度等價類分析方法的一種補(bǔ)充,由長期的測試工作經(jīng)驗(yàn)得知,大量的錯誤是發(fā)生在輸入或輸出的邊界上。因此針對各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯誤。(1)邊界值分析方法的考慮:長期的測試工作經(jīng)驗(yàn)告訴我們,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部.因此針對各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯誤.使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)確定邊界情況.通常輸入和輸出等價類的邊界,就是應(yīng)著重測試的邊界情況.應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù).(2)基于邊界值分析方法選擇測試用例的原則:1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù).2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù),最小個數(shù),比最小個數(shù)少一,比最大個數(shù)多一的數(shù)作為測試數(shù)據(jù).3)根據(jù)規(guī)格說明的每個輸出條件,使用前面的原則1).4)根據(jù)規(guī)格說明的每個輸出條件,應(yīng)用前面的原則2).5)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例.6)如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例.7)分析規(guī)格說明,找出其它可能的邊界條件.Yoursitehere15測試用例設(shè)計(jì)方法之邊界值分析法(2)__理論知識I.理論知識測試用例設(shè)計(jì)方法之邊界值分析法(2)__實(shí)例II.實(shí)例找零錢最佳組合假設(shè)商店貨品價格(R)皆不大于100元(且為整數(shù)),若顧客付款在100元內(nèi)(P),求找給顧客之最少貨幣個(張)數(shù)?(貨幣面值50元(N50),10元(N10),5元(N5),1元(N1)四種)一、分析輸入的情形R﹥1000﹤R﹤=100R﹤=0P﹥100R﹤=P﹤=100P﹤R二、分析輸出情形N50=1N50=04﹥=N10﹥=1N10=0N5=1N5=04﹥=N1﹥=1N1=0三、分析規(guī)格中每一決策點(diǎn)之情形,以RR1,RR2,RR3表示計(jì)算要找的貨幣數(shù)時之剩余金額P>100

P<R

RR1>=50

RR2>=10

RR3>=5

Yoursitehere16測試用例設(shè)計(jì)方法之邊界值分析法(2)__實(shí)例II.實(shí)例一、分R﹥100R﹤=00﹤R﹤=100,P﹥1000﹤R﹤=100,P﹤R0﹤R﹤=100,R﹤=P﹤=100,RR=500﹤R﹤=100,R﹤=P﹤=100,RR=490﹤R﹤=100,R﹤=P﹤=100,RR=100﹤R﹤=100,R﹤=P﹤=100,RR=90﹤R﹤=100,R﹤=P﹤=100,RR=50﹤R﹤=100,R﹤=P﹤=100,RR=40﹤R﹤=100,R﹤=P﹤=100,RR=10﹤R﹤=100,R﹤=P﹤=100,RR=0四、由上述之輸入/輸出條件組合出可能的情形測試用例設(shè)計(jì)方法之邊界值分析法(2)__實(shí)例五、為滿足以上各種情形,測試資料設(shè)計(jì)如下1.貨品價格=1012.貨品價格=03.貨品價格=-14.貨品價格=100,付款金額=1015.貨品價格=100,付款金額=996.貨品價格=50,付款金額=1007.貨品價格=51,付款金額=1008.貨品價格=90,付款金額=1009.貨品價格=91,付款金額=10010.貨品價格=95,付款金額=10011.貨品價格=96,付款金額=10012.貨品價格=99,付款金額=10013.貨品價格=100,付款金額=100Yoursitehere17R﹥100四、由上述之輸入/輸出條件組合出可能的情形測試用例測試用例設(shè)計(jì)方法之錯誤推測法(3)1、定義:基于經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯誤,從而有針對性的設(shè)計(jì)測試用例的方法.2、錯誤推測方法的基本思想:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例。1)例如,輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況;輸入表格為空格或輸入表格只有一行。這些都是容易發(fā)生錯誤的情況??蛇x擇這些情況下的例子作為測試用例。2)例如,例子中學(xué)生成績報告的程序,采用錯誤推測法還可補(bǔ)充設(shè)計(jì)一些測試用例:I.程序是否把空格作為回答II.在回答記錄中混有標(biāo)準(zhǔn)答案記錄III.除了標(biāo)題記錄外,還有一些的記錄最后一個字符即不是2也不是3IV.有兩個學(xué)生的學(xué)號相同V.試題數(shù)是負(fù)數(shù)。3)再如,測試一個對線性表(比如數(shù)組)進(jìn)行排序的程序,可推測列出以下幾項(xiàng)需要特別測試的情況:I.輸入的線性表為空表;II.表中只含有一個元素;III.

輸入表中所有元素已排好序;IV.

輸入表已按逆序排好;V.輸入表中部分或全部元素相同。Yoursitehere18測試用例設(shè)計(jì)方法之錯誤推測法(3)1、定義:基于經(jīng)驗(yàn)和直覺推測試用例設(shè)計(jì)方法之因果圖法(4)_理論知識1.定義:是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。2.因果圖法產(chǎn)生的背景:等價類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯的情況已經(jīng)測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。如果在測試時必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應(yīng)產(chǎn)生多個動作的形式來進(jìn)行測試用例的設(shè)計(jì),這就需要利用因果圖(邏輯模型)。3.因果圖介紹1)

4種符號分別表示了規(guī)格說明中向4種因果關(guān)系。2)

因果圖中使用了簡單的邏輯符號,以直線聯(lián)接左右結(jié)點(diǎn)。左結(jié)點(diǎn)表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)表示輸出狀態(tài)(或稱結(jié)果)。3)

Ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。Ci和ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。

Yoursitehere19測試用例設(shè)計(jì)方法之因果圖法(4)_理論知識1.定義:是一種利4.因果圖概念1)

關(guān)系①恒等:若ci是1,則ei也是1;否則ei為0。②非:若ci是1,則ei是0;否則ei是1。③或:若c1或c2或c3是1,則ei是1;否則ei為0。“或”可有任意個輸入。④與:若c1和c2都是1,則ei為1;否則ei為0?!芭c”也可有任意個輸入。2)

約束輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系,稱為約束。例如,某些輸入條件本身不可能同時出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號標(biāo)明這些約束。測試用例設(shè)計(jì)方法之因果圖法(4)_理論知識A.輸入條件的約束有以下4類:

①E約束(異):a和b中至多有一個可能為1,即a和b不能同時為1。

②I約束(或):a、b和c中至少有一個必須是1,即a、b和c不能同時為0。

③O約束(唯一);a和b必須有一個,且僅有1個為1。

④R約束(要求):a是1時,b必須是1,即不可能a是1時b是0。B.輸出條件約束類型

輸出條件的約束只有M約束(強(qiáng)制):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。Yoursitehere204.因果圖概念測試用例設(shè)計(jì)方法之因果圖法(4)_理論知識A5.

采用因果圖法設(shè)計(jì)測試用例的步驟:1)分析軟件規(guī)格說明描述中,那些是原因(即輸入條件或輸入條件的等價類),那些是結(jié)果(即輸出條件),并給每個原因和結(jié)果賦予一個標(biāo)識符。2)分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間,原因與原因之間對應(yīng)的關(guān)系,根據(jù)這些關(guān)系,畫出因果圖。3)由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。4)把因果圖轉(zhuǎn)換為判定表。5)把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測試用例。測試用例設(shè)計(jì)方法之因果圖法(4)_理論知識Yoursitehere215.

采用因果圖法設(shè)計(jì)測試用例的步驟:測試用例設(shè)計(jì)方法之因果測試用例設(shè)計(jì)方法之因果圖法(4)_實(shí)例分析中國象棋中走馬的實(shí)際情況(下面未注明的均指的是對馬的說明)1、如果落點(diǎn)在棋盤外,則不移動棋子;2、如果落點(diǎn)與起點(diǎn)不構(gòu)成日字型,則不移動棋子;3、如果落點(diǎn)處有自己方棋子,則不移動棋子;4、如果在落點(diǎn)方向的鄰近交叉點(diǎn)有棋子(絆馬腿),則不移動棋子;5、如果不屬于1-4條,且落點(diǎn)處無棋子,則移動棋子;6、如果不屬于1-4條,且落點(diǎn)處為對方棋子(非老將),則移動棋子并除去對方棋子;7如果不屬于1-4條,且落點(diǎn)處為對方老將,則移動棋子,并提示戰(zhàn)勝對方,游戲結(jié)束。根據(jù)分析明確原因和結(jié)果原因:1.落點(diǎn)在棋盤上;2.落點(diǎn)與起點(diǎn)構(gòu)成日字;3.落點(diǎn)處為自己方棋子;4.落點(diǎn)方向的鄰近交叉點(diǎn)無棋子;5.落點(diǎn)處無棋子;6.落點(diǎn)處為對方棋子(非老將);7.落點(diǎn)處為對方老將。結(jié)果:21、不移動棋子;22、移動棋子;23、移動棋子,并除去對方棋子;24、移動棋子,并提示戰(zhàn)勝對方,結(jié)束游戲。添加中間節(jié)點(diǎn)11,目的是作為導(dǎo)出結(jié)果的進(jìn)一步原因,簡化因果圖導(dǎo)出的判定表Yoursitehere22測試用例設(shè)計(jì)方法之因果圖法(4)_實(shí)例分析中國象棋中走馬的實(shí)測試用例設(shè)計(jì)方法之因果圖法(4)_實(shí)例考慮結(jié)果不能同時發(fā)生,所以對其施加唯一約束O。原因5、6、7不能同時發(fā)生,所以對其施加異約束E.Yoursitehere23測試用例設(shè)計(jì)方法之因果圖法(4)_實(shí)例考慮結(jié)果不能同時發(fā)生,三、根據(jù)因果圖建立判定表:(分為兩表)12345678910111213141516原因10101010101010101200110011001100113000011110000111140000000011111111結(jié)果110000000100000000121111111011111111用例12345678910111213141516原因110101010101010101500110011001100116000011110000111170000000011111111結(jié)果220010000230000100240000001用例注:1、判定表中由于表格大小限制沒有列出最后所選的測試用例;2、第2表中部分列被合并表示不可能發(fā)生的現(xiàn)象;3、通過中間節(jié)點(diǎn)將用例的判定表簡化為兩個小表。減少工作量。測試用例設(shè)計(jì)方法之因果圖法(4)_實(shí)例Yoursitehere24三、根據(jù)因果圖建立判定表:(分為兩表)12345678910測試用例設(shè)計(jì)方法之路徑覆蓋法(5)_理論熟悉測試?yán)碚摰娜硕贾?,路徑覆蓋是白盒測試中一種很重要的方法,廣泛應(yīng)用于單元測試。那么基于路徑覆蓋的分析方法是不是只能應(yīng)用于單元測試呢,能不能將其推而廣之呢。一般而言,在單元測試中,路徑就是指函數(shù)代碼的某個分支,而實(shí)際上如果我們將軟件系統(tǒng)的某個流程也看成路徑的話,我們將可以嘗試著用路徑分析的方法來設(shè)計(jì)測試用例。采用路徑分析的方法設(shè)計(jì)測試用例有兩點(diǎn)好處:一是降低了測試用例設(shè)計(jì)的難度,只要搞清了各種流程,就可以設(shè)計(jì)出高質(zhì)量的測試用例來,而不用太多測試方面的經(jīng)驗(yàn);二是在測試時間較緊的情況下,可以有的放矢的選擇測試用例,而不用完全根據(jù)經(jīng)驗(yàn)來取舍。下面就具體的介紹一下如何用路徑分析的方法編寫測試用例。

首先是將系統(tǒng)運(yùn)行過程中所涉及到的各種流程圖表化,可以先從最基本的流程入手,將流程抽象成為不同功能的順序執(zhí)行。在最基本流程的基礎(chǔ)上再去考慮次要或者異常的流程,這樣將各種流程逐漸細(xì)化,這樣既可以逐漸加深對流程的理解,還可以將各個看似孤立的流程關(guān)聯(lián)起來。完成所有流程的圖表化后就完成了所有路徑的設(shè)定。

找出了所有的路徑,下面的工作就是給每條路徑設(shè)定優(yōu)先級,這樣在測試時就可以先測優(yōu)先級高的,再測優(yōu)先級低的,在時間緊迫的情況下甚至可以考慮忽略一些低優(yōu)先級的路徑。優(yōu)先級根據(jù)兩個原則來選?。阂皇锹窂绞褂玫念l率,使用越頻繁的優(yōu)先級越高;二是路徑的重要程度,如果失敗對系統(tǒng)影響越大的優(yōu)先級越高。將根據(jù)兩個原則所分別得到的優(yōu)先級相加就得到了整個路徑的優(yōu)先級。根據(jù)優(yōu)先級的排序就可以更有針對性的進(jìn)行測試。

為每條路徑設(shè)定好優(yōu)先級后,接下來的工作就是為每條路徑選取測試數(shù)據(jù),構(gòu)造測試用例。一條路徑可以對應(yīng)多個測試用例,在選取測試數(shù)據(jù)時,可以充分利用邊界值選取等方法,通過表格將各種測試數(shù)據(jù)的輸入輸出對應(yīng)起來,這樣就完成了測試用例的設(shè)計(jì)。

對于測試人員而言,測試用例的設(shè)計(jì)是一件非常困難的工作,而同時測試用例的設(shè)計(jì)好壞又直接關(guān)系到整個系統(tǒng)的設(shè)計(jì)質(zhì)量。本文介紹了一種更理論化的設(shè)計(jì)方法來盡量簡化這種工作,將一般應(yīng)用于單元測試的路徑分析方法推廣到集成測試、系統(tǒng)測試等后續(xù)測試過程中,希望能給大家一點(diǎn)啟示。Yoursitehere25測試用例設(shè)計(jì)方法之路徑覆蓋法(5)_理論熟悉測試?yán)碚摰臏y試用例設(shè)計(jì)方法之功能圖法(6)_理論一.方法簡介一個程序的功能說明通常由動態(tài)說明和靜態(tài)說明組成.動態(tài)說明描述了輸入數(shù)據(jù)的次序或轉(zhuǎn)移的次序.靜態(tài)說明描述了輸入條件與輸出條件之間的對應(yīng)關(guān)系.對于較復(fù)雜的程序,由于存在大量的組合情況,因此,僅用靜態(tài)說明組成的規(guī)格說明對于測試來說往往是不夠的.必須用動態(tài)說明來補(bǔ)充功能說明.功能圖方法是用功能圖FD形式化地表示程序的功能說明,并機(jī)械地生成功能圖的測試用例.功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成.狀態(tài)遷移圖用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù).在狀態(tài)遷移圖中,由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài).邏輯功能模型用于表示在狀態(tài)中輸入條件和輸出條件之間的對應(yīng)關(guān)系.邏輯功能模型只適合于描述靜態(tài)說明,輸出數(shù)據(jù)僅由輸入數(shù)據(jù)決定.測試用例則是由測試中經(jīng)過的一系列狀態(tài)和在每個狀態(tài)中必須依靠輸入/輸出數(shù)據(jù)滿足的一對條件組成.功能圖方法其實(shí)是是一種黑盒白盒混合用例設(shè)計(jì)方法。(功能圖方法中,要用到邏輯覆蓋和路徑測試的概念和方法,其屬白盒測試方法中的內(nèi)容.邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測試用例設(shè)計(jì)方法.該方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解.由于覆蓋測試的目標(biāo)不同,邏輯覆蓋可分為:語句覆蓋,判定覆蓋,判定-條件覆蓋,條件組合覆蓋及路徑覆蓋.下面我們指的邏輯覆蓋和路徑是功能或系統(tǒng)水平上的,以區(qū)別與白盒測試中的程序內(nèi)部的.)1.功能圖功能圖由狀態(tài)遷移圖和布爾函數(shù)組成.狀態(tài)遷移圖用狀態(tài)和遷移來描述.一個狀態(tài)指出數(shù)據(jù)輸入的位置(或時間),而遷移則指明狀態(tài)的改變.同時要依靠判定表或因果圖表示的邏輯功能.例,一個簡化的自動出納機(jī)ATM的功能圖。Yoursitehere26測試用例設(shè)計(jì)方法之功能圖法(6)_理論一.方法簡介Your2.測試用例生成方法從功能圖生成測試用例,得到的測試用例數(shù)是可接受的.問題的關(guān)鍵的是如何從狀態(tài)遷移圖中選取測試用例.若用節(jié)點(diǎn)代替狀態(tài),用弧線代替遷移,則狀態(tài)遷移圖就可轉(zhuǎn)化成一個程序的控制流程圖形式.問題就轉(zhuǎn)化為程序的路徑測試問題(如白盒測試)問題了.3.測試用例生成規(guī)則為了把狀態(tài)遷移(測試路徑)的測試用例與邏輯模型(局部測試用例)的測試用例組合起來,從功能圖生成實(shí)用的測試用例,須定義下面的規(guī)則.在一個結(jié)構(gòu)化的狀態(tài)遷移(SST)中,定義三種形式的循環(huán):順序,選擇和重復(fù).但分辨一個狀態(tài)遷移中的所有循環(huán)是有困難的.(其表示圖形省略)。4.從功能圖生成測試用例的過程1)生成局部測試用例:在每個狀態(tài)中,從因果圖生成局部測試用例.局部測試用例由原因值(輸入數(shù)據(jù))組合與對應(yīng)的結(jié)果值(輸出數(shù)據(jù)或狀態(tài))構(gòu)成。2)測試路徑生成:利用上面的規(guī)則(三種)生成從初始狀態(tài)到最后狀態(tài)的測試路徑。3)測試用例合成:合成測試路徑與功能圖中每個狀態(tài)中的局部測試用例.結(jié)果是初始狀態(tài)到最后狀態(tài)的一個狀態(tài)序列,以及每個狀態(tài)中輸入數(shù)據(jù)與對應(yīng)輸出數(shù)據(jù)的組合。5.測試用例的合成算法:采用條件構(gòu)造樹.測試用例設(shè)計(jì)方法之功能圖法(6)_理論Yoursitehere272.測試用例生成方法測試用例設(shè)計(jì)方法之功能圖法(6)_理論Y測試用例設(shè)計(jì)方法之正交試驗(yàn)設(shè)計(jì)法(7)_理論1、什么是因素(Factor在一項(xiàng)試驗(yàn)中,凡欲考察的變量稱為因素(變量)2、什么是水平(位級Level在試驗(yàn)范圍內(nèi),因素被考察的值稱為水平(變量的取值)3、什么是正交試驗(yàn)設(shè)計(jì)是研究多因素多水平的一種設(shè)計(jì)方法,它是根據(jù)正交性從全面試驗(yàn)中挑選出部分有代表性的點(diǎn)進(jìn)行試驗(yàn),這些有代表性的點(diǎn)具備了均勻分散,齊整可比的特點(diǎn),正交試驗(yàn)設(shè)計(jì)是一種基于正交表的、高效率、快速、經(jīng)濟(jì)的試驗(yàn)設(shè)計(jì)方法4、正交表的構(gòu)成正交表的構(gòu)成行數(shù)(Runs):正交表中的行的個數(shù),即試驗(yàn)的次數(shù)因素數(shù)(Factors):正交表中列的個數(shù)。水平數(shù):任何單個因素能夠取得的值的最大個數(shù)。正交表中的包含的值為從最大個數(shù)。正交表中的包含的值為從0到數(shù)到數(shù)“水平水平數(shù)-1”或從或從1到“水平數(shù)水平數(shù)”。正交表的表示形式:L行數(shù)(水平數(shù)因素數(shù))正交表的正交性整齊可比性在同一張正交表中,每個因素的每個水平出現(xiàn)次數(shù)是完全相同的。由于在試驗(yàn)中每個因素的每個水平與其它因素的每個水平參與試驗(yàn)的機(jī)率是完全相同的,這就保證在各個水平中最大程度的排除了其它因素水平的干擾。因而,能最有效地進(jìn)行比較和作出展望,容易找到好的試驗(yàn)條件進(jìn)行。均衡分散性在同一張正交表中,任意兩列(兩個因素)的水平搭配(橫向形成的數(shù)字對)是完全相同的。這樣就保證了試驗(yàn)條件均衡地分散在因素水平的完全組合之中,因而具有很強(qiáng)的代表性,容易得到好的試驗(yàn)條件。Yoursitehere28測試用例設(shè)計(jì)方法之正交試驗(yàn)設(shè)計(jì)法(7)_理論1、什么是因素(三、用正交表設(shè)計(jì)測試用例用正交表設(shè)計(jì)測試用例的步驟1有哪些因素(變量)2每個因素有哪幾個水平(變量的取值)3選擇一個合適的正交表4把變量的值映射到表中5把每一行的各因素水平的組合做為一個測試用例6加上你認(rèn)為可疑且沒有在表中出現(xiàn)的組如何選擇正交表考慮因素(變量)的個數(shù)考慮因素水平(變量的取值)的個數(shù)考慮正交表的行數(shù)取行數(shù)最少的一個設(shè)計(jì)測試用例時的三種情況1因素數(shù)(變量)、水平數(shù)(變量值)相符2因素數(shù)不相同3水平數(shù)不相同因素數(shù)、水平數(shù)相符因素數(shù)、水平數(shù)相符水平數(shù)(變量的取值)相同、因素數(shù)(變量)剛好符合正交表。測試用例設(shè)計(jì)方法之正交試驗(yàn)設(shè)計(jì)法(7)_理論Yoursitehere29三、用正交表設(shè)計(jì)測試用例測試用例設(shè)計(jì)方法之正交試驗(yàn)設(shè)計(jì)法(測試用例設(shè)計(jì)方法之正交試驗(yàn)設(shè)計(jì)法(7)_實(shí)例一、對某人進(jìn)行查詢1、假設(shè)查詢某個人時有三個查詢條件:根據(jù)“姓名”進(jìn)行查詢根據(jù)“身份證號碼”查詢根據(jù)“手機(jī)號碼”查詢考慮查詢條件要么不填寫,要么填寫,此時可用正交表進(jìn)行設(shè)計(jì)2、因素數(shù)和水平數(shù)有三個因素:姓名、身份證號、手機(jī)號碼每個因素有兩個水平姓名:填、不填身份證號:填、不填手機(jī)號碼:填、不填3、選擇正交表表中的因素數(shù)>=3表中至少有三個因素的水平數(shù)>=2行數(shù)取最少的一個結(jié)果:

4、變量映射姓名:0....填寫,1....不填寫身份證號:0....填寫,1....不填寫手機(jī)號碼:0....填寫,1....不填寫5、用L4(23)設(shè)計(jì)的測試用例測試用例如下:1:填寫姓名、填寫身份證號、填寫手機(jī)號2:填寫姓名、不填身份證號、不填手機(jī)號3:不填姓名、填寫身份證號、不填手機(jī)號4:不填姓名、不填身份證號、填寫手機(jī)號增補(bǔ)測試用例5:不填姓名、不填身份證號、不填手機(jī)號測試用例減少數(shù):8→56、因素數(shù)不相同水平數(shù)(變量的取值)相同但在正交表中找不到相同的因素數(shù)(變量(取因素數(shù)最接近但略大的實(shí)際值的表)

Yoursitehere30測試用例設(shè)計(jì)方法之正交試驗(yàn)設(shè)計(jì)法(7)_實(shí)例一、對某人進(jìn)行查測試用例設(shè)計(jì)方法之場景設(shè)計(jì)法(8)_原理現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的思想也可以引入到軟件測試中,可以比較生動地描繪出事件觸發(fā)時的情景,有利于測試設(shè)計(jì)者設(shè)計(jì)測試用例,同時使測試用例更容易理解和執(zhí)行?;玖骱蛡溥x流:如右圖所示,圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡單的路徑。備選流用不同的色彩表示,一個備選流可能從基本流開始,在某個特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個備選流(如備選流2),或者終止用例而不再重新加入到某個流(如備選流2和4)。Yoursitehere31測試用例設(shè)計(jì)方法之場景設(shè)計(jì)法(8)_原理現(xiàn)

溫馨提示

  • 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

提交評論