Ch5單元測試課件_第1頁
Ch5單元測試課件_第2頁
Ch5單元測試課件_第3頁
Ch5單元測試課件_第4頁
Ch5單元測試課件_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件測試方法和技術(shù)

-Ch.5單元測試主講教師:郭曉燕第四章回顧軟件質(zhì)量標準軟件測試規(guī)范

CMM思想和結(jié)構(gòu)體系建立軟件測試管理和評判體系第五章單元測試5.1什么是單元測試5.2單元測試的目標和任務5.3靜態(tài)測試技術(shù)的運用5.4動態(tài)測試技術(shù)的運用5.5調(diào)試與評估5.6單元測試的過程與文檔管理5.7單元測試的常用工具簡介5.1什么是單元測試測試的4個階段:單元測試

集成測試

系統(tǒng)測試

驗收測試按階段進行測試是一種基本的測試策略單元測試的定義定義:單元測試是對軟件基本組成單元進行的測試。時機:一般在代碼完成后由開發(fā)人員完成,QA人員輔助.對象:軟件設(shè)計的最小單位——模塊(組件、單元)

為何要進行單元測試?盡早發(fā)現(xiàn)錯誤錯誤發(fā)現(xiàn)越早,成本越低.開發(fā)人員過于自信,后期復雜度高,發(fā)現(xiàn)解決BUG困難.檢查代碼是否符合設(shè)計和規(guī)范

12小時6小時3小時單元測試集成測試系統(tǒng)測試5.2單元測試的目標和任務目標:

單元模塊被正確編碼信息能否正確地流入和流出單元;在單元工作過程中,其內(nèi)部數(shù)據(jù)能否保持其完整性,包括內(nèi)部數(shù)據(jù)的形式、內(nèi)容及相互關(guān)系不發(fā)生錯誤,也包括全局變量在單元中的處理和影響。在為限制數(shù)據(jù)加工而設(shè)置的邊界處,能否正確工作。單元的運行能否做到滿足特定的邏輯覆蓋。單元中發(fā)生了錯誤,其中的出錯處理措施是否有效。任務1:模塊接口測試檢查模塊接口是否正確,checklist:輸入的實際參數(shù)與形式參數(shù)是否一致。個數(shù)、屬性、量綱調(diào)用其他模塊的實際參數(shù)與被調(diào)模塊的形參是否一致。個數(shù)、屬性、量綱全程變量的定義在各模塊是否一致。外部輸入、輸出文件、緩沖區(qū)、錯誤處理其它任務2:模塊局部數(shù)據(jù)結(jié)構(gòu)測試檢查局部數(shù)據(jù)結(jié)構(gòu)完整性Checklist:不適合或不相容的類型說明。變量無初值。變量初始化或默認值有錯。不正確的變量名或從來未被使用過。出現(xiàn)上溢或下溢和地址異常。其它任務3:模塊邊界條件測試檢查臨界數(shù)據(jù)處理的正確性Checklist:普通合法數(shù)據(jù)的處理。普通非法數(shù)據(jù)的處理。邊界值內(nèi)合法邊界數(shù)據(jù)的處理。邊界值外非法邊界數(shù)據(jù)的處理。其它任務4:模塊獨立執(zhí)行通路測試檢查每一條獨立執(zhí)行路徑的測試。保證每條語句被至少執(zhí)行一次。Checklist:算符優(yōu)先級?;旌项愋瓦\算。精度不夠。表達式符號。循環(huán)條件,死循環(huán)。其它任務5:模塊的各條錯誤處理通路測試預見、預設(shè)的各種出錯處理是否正確有效。Checklist:輸出的出錯信息難以理解。記錄的錯誤與實際不相符。程序定義的出錯處理前系統(tǒng)已介入。異常處理不當。未提供足夠的定位出錯的信息。其它5.3靜態(tài)測試技術(shù)的運用定義:在不執(zhí)行軟件的條件下有條理地仔細審查軟件設(shè)計、體系結(jié)構(gòu)和代碼,從而找出軟件缺陷的過程。有時也稱為結(jié)構(gòu)分析。作用:盡早發(fā)現(xiàn)軟件缺陷,以找出動態(tài)黑盒白盒測試難以揭示或發(fā)現(xiàn)的軟件缺陷為接受該軟件測試的黑盒測試員進行測試設(shè)計測試案例提供思路,他們不必了解代碼細節(jié),但是根據(jù)審查備注,可以確定有問題或者容易存在軟件缺陷的特性范圍問題:認為會減慢軟件開發(fā)過程。編碼的標準和規(guī)范標準:建立起來,經(jīng)過修補和必須遵守的規(guī)則。規(guī)范:建議最佳做法,推薦更好方法。堅持編程標準和規(guī)范的原因可靠性:事實證明按照按規(guī)范編寫的代碼更可靠,軟件缺陷將更少;可讀性/維護性:符合標準和規(guī)范的代碼易于閱讀,理解和維護;移植性:如果代碼符合設(shè)備標準,遷移到另一個平臺就會容易,甚至沒有任何障礙。正式審查三部曲走查(WalkThrough)審查(Inspection)評審(Review)走查(WalkThrough)定義:編寫代碼的程序員向5人小組或其它類似的程序員或測試員做正式表述。注意:審查人員應該在審查之前接到軟件拷貝,在走查前通讀設(shè)計和編碼,以便檢查并編寫備注和問題,在審查過程中提問。表述者現(xiàn)場采用講解或模擬運行的方法解釋代碼如何工作。檢查要點在于代碼編寫是否符合規(guī)范和標準,是否存在邏輯錯誤;限時,避免跑題。發(fā)現(xiàn)問題適當記錄,避免現(xiàn)場修改。審查(Inspection)定義:是最正式的審查類型,具有高度組織化,采用講解、提問方式進行,一般有正式的計劃、流程和結(jié)果。主要方法采用缺陷檢查表。注意:以會議形式,制定會議目標、流程和規(guī)則,結(jié)束后要編寫報告。發(fā)現(xiàn)問題適當記錄,避免現(xiàn)場修改。發(fā)現(xiàn)重大缺陷,改正后會議需要重開。按缺陷檢查表逐項檢查。檢查要點是缺陷檢查表,所以該表要根據(jù)項目不同不斷積累完善。走查與審查的比較走查審查準備通讀設(shè)計和編碼應準備好需求描述文檔、程序設(shè)計文檔、程序的源代碼清單、代碼編碼標準和代碼缺陷檢查表形式非正式會議正式會議參加人員開發(fā)人員為主項目組成員包括測試人員主要技術(shù)方法無缺陷檢查表注意事項限時、不要現(xiàn)場修改代碼限時、不要現(xiàn)場修改代碼生成文檔會議記錄靜態(tài)分析錯誤報告目標代碼標準規(guī)范,無邏輯錯誤代碼標準規(guī)范,無邏輯錯誤評審(Review)定義:通常在審查會后進行,審查小組根據(jù)記錄和報告進行評估。注意:充分審查了所規(guī)定的代碼,并且全部編碼準則被遵守。審查中發(fā)現(xiàn)的錯誤已全部修改。5.4動態(tài)測試技術(shù)的運用動態(tài)測試需要真正將程序運行起來,需要設(shè)計系列的測試用例保證測試的完整性和有效性。白盒測試黑盒(灰盒)測試白盒測試方法定義:(結(jié)構(gòu)化測試)利用查看代碼功能(做什么)和實現(xiàn)方式(怎么做)得到的信息來確定哪些要測試,哪些不要測試,如何開展測試。白盒測試針對的是程序內(nèi)部邏輯和數(shù)據(jù)流程的測試動態(tài)白盒測試不僅是查看代碼,還包括直接測試和控制軟件。白盒測試方法主要有邏輯驅(qū)動法和基本路徑法。語句覆蓋。判定覆蓋。條件覆蓋。判定/條件覆蓋。條件組合覆蓋。路徑覆蓋。循環(huán)覆蓋。詳細內(nèi)容第14章軟件測試用例的設(shè)計白盒測試用例設(shè)計方法白盒測試用例的設(shè)計方法邏輯覆蓋:以程序的內(nèi)部邏輯結(jié)構(gòu)為基礎(chǔ),分為語句覆蓋、判定覆蓋、判定-條件覆蓋、條件組合覆蓋等基本路徑測試:在程序控制流程的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復雜性,導出基本可執(zhí)行路徑集合,從而設(shè)計測試用例。白盒測試用例注意事項由于測試路徑可能非常多,由于時間和資源問題,選出足夠多的路徑測試由于深入到程序編碼,通常開發(fā)人員協(xié)助測試人員書寫白盒測試用例動態(tài)白盒測試與調(diào)試測試和調(diào)試是不同的。白盒測試的目標是尋找軟件缺陷;調(diào)試的目的是修復軟件缺陷。它們在隔離軟件缺陷的位置和原因上確實存在交叉現(xiàn)象。測試員應該把問題縮減為能夠演示軟件缺陷的最簡化測試案例。在白盒測試中,甚至要包含那些值得懷疑的代碼行信息。進行調(diào)試的程序員從這里繼續(xù),判斷到底是什么導致的軟件缺陷,并設(shè)法修復。分清軟件測試員和程序員的工作。程序員編寫代碼,修復軟件缺陷;測試員尋找軟件缺陷,可能還要編寫一些代碼來驅(qū)動測試,要進行這樣的底層測試,就要使用與程序員相同的工具。具體操作方法不同

覆蓋標準:使得程序中每個語句至少都能被執(zhí)行一次。滿足語句覆蓋的情況是:執(zhí)行路徑:ace選擇用例:[(2,0,4),(2,0,3)]用例格式,由輸入數(shù)據(jù)和預期的輸出結(jié)果兩部分組成:[輸入(A,B,X),輸出(A,B,X)]1.語句覆蓋a

A>1ANDB=0X:=X/A

A=2ORX>1X:=X+1bcdeYNYNX:=X/AX:=X+1程序中除判定外,還有兩條語句。if((A>1)AND(B=0))X=X/A;if(A=2)OR(X>1)X:=X+1;選擇用例:[(2,0,4),(4,0,3)]

如果寫成:if((A>1)OR

(B=0))X=X/A;if(A=2)OR(X>1)X:=X+1;錯誤,但測試結(jié)果相同覆蓋標準使得程序中每個判定至少為TRUE或FALSE各一次。覆蓋情況:共有兩個判定,應執(zhí)行路徑:ace∧

abd

或:acd∧abe選擇用例,⑴

⑵兩組用例中任選擇其一⑴[(2,0,4),(2,0,3)]ace[(1,1,1),(1,1,1)]abd⑵[(2,1,1),(2,1,2)]abe[(3,0,3),(3,1,1)]acd

A>1ANDB=0X:=X/A

A=2ORX>1X:=X+1abcdeYNYN2.判定覆蓋注:符號∧表示“AND”運算,符號∨表示“OR”運算。覆蓋標準:使得判定中的每個條件獲得各種可能的結(jié)果。應滿足以下覆蓋情況:判定一:A>1,A≤1,B=0,B≠0判定二:A=2,A≠2,X>1,X≤1選擇用例:

[(2,0,4),(2,0,3)][(1,1,1),(1,1,1)]注意:[(1,0,3),(1,0,4)]

[(2,1,1),(2,1,2)]滿足條件覆蓋,但不滿足判定覆蓋。3.條件覆蓋

A>1ANDB=0X:=X/A

A=2ORX>1X:=X+1abcdeYNYN判定一判定二應滿足以下覆蓋情況:條件:A>1,A≤1,B=0,B≠0 A=2,A≠2,X>1,X≤1應執(zhí)行路徑ace∧abd 或acd∧abe選擇用例:[(2,0,4),(2,0,3)](ace)[(1,1,1),(1,1,1)](abd)

A>1ANDB=0X:=X/A

A=2ORX>1X:=X+1abcdeYNYN4.判定/條件覆蓋覆蓋標準: 同時滿足判定覆蓋和條件覆蓋。即使得程序中每個判定至少為TRUE或FALSE各一次,同時使得判定中的每個條件獲得各種可能的結(jié)果。5.條件組合覆蓋A>1X:=X/A

A=2X:=X+1abcdeB=0

X>1YNYNYNYN例如,紅線所標注的路徑未被執(zhí)行。編譯系統(tǒng)下的執(zhí)行情況考慮到程序在編譯狀態(tài)下的執(zhí)行情況,可采用最深的一種覆蓋標準—條件組合覆蓋。ANDORc雖然采用判定/條件覆蓋一般比前面幾種覆蓋標準要好,但若考慮在編譯系統(tǒng)下執(zhí)行時,對條件“AND”和“OR”的處理情況,部分路徑未被執(zhí)行。滿足以下覆蓋情況:①A>1,B=0②A≤1,

B≠0③A>1,B≠0

④A≤1,B=0⑤A=2,X>1

⑥A=2,X≤1

⑦A≠2,X>1

⑧A≠2,X≤1選擇用例:[(2,0,4),(2,0,3)]覆蓋情況

⑤[(2,1,1),(2,1,2)]

覆蓋情況

⑥[(1,0,3),(1,0,4)]

覆蓋情況

⑦[(1,1,1),(1,1,1)]

覆蓋情況

⑧5.條件組合覆蓋}判定一}判定二顯然,條件組合覆蓋所測試的情況最多,但是選擇用例較多,相對難度也大些。部分路徑未被執(zhí)行

編譯系統(tǒng)下的執(zhí)行情況A>1X:=X/A

A=2X:=X+1abcdeB=0

X>1YNYNYNYN覆蓋標準:使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。語句段:

if(A&&(B||C))x=l;

elsex=O;

用例表:見右圖A.①TRUE②FALSE③TRUEB.①TRUE②FALSE③FALSEC.①FALSE②FALSE③TRUED.①TRUE②TRUE③FALSE用例1用例2ATRUEFALSEB①FALSECTRUE②A&&(B||C)③FALSE邏輯路徑覆蓋法是白盒測試用例的重要設(shè)計方法,其中語句覆蓋法是較為常用的方法,針對下面的語句段,采用語句覆蓋法完成測試用例設(shè)計,測試用例見下表,對表中的空缺項(True或者False),正確的選擇是______?;韭窂綔y試Goal:exercise

eachindependentpath

atleastonce.使用代碼,畫出程序流程圖;

(Firstdrawingtheactivitydiagramforthecodemayhelp,butisnotrequired)計算程序流程圖的環(huán)路復雜性V(G)

;導出線性無關(guān)的基本程序路徑集合;為基本路徑集合設(shè)置測試用例.ExampleProcedure:processrecords1. DoWhilerecordsremain2.

Read

record;3.

If

recordfield1=0Then4. storeinbuffer;5. incrementcounter;6.

ElseIf

recordfield2=0Then7. resetcounter;8.

Elsestoreinfile;9.

EndIf10.

EndIf11.

EndDoEndExample(continued)1910112457836V(G)=4基本路徑測試:流程圖12,387694,51011流程圖復雜度確定V(G)=numberofregions(areasboundedbynodesand edges—areaoutsidethegraphisalsoaregion)V(G)=numberofedges-thenumberofnodes+2V(G)=numberof(simple)predicatenodes+1

Cyclomaticcomplexity:aquantitativemeasureofthelogicalcomplexityofcode,providesanupperboundonthenumberofpathsthatneedtobetestedinthecodeV(G)modulesmodulesinthisrangearemoreerrorproneHigherCycloramicComplexity,morepossibilityinerror流程圖復雜度-例子V(G)=412,378694,51011Region1Region2Region3Region4確定線性獨立的路徑集合

Independentpath

?anypaththatintroducesatleastonenewsetofprocessingstatementsoranewcondition

Basisset

?setofindependentpathsthroughthecode

Testcasesderivedfromabasisset

areguaranteedtoexecuteeverystatementatleastonetimeduringtestingBasissetisnotuniquePath1:1-2-3-6-7-9-10-1-11Basispathtestexample

Path2:1-2-3-6-8-9-10-1-11

Path3:1-2-3-4-5-10-1-11Path4:1-111910112458736測試用例覆蓋集合中每條路徑Basispathtestingdoesnottestallpossiblecombinationsofallpathsthroughthecode;itjusttestseverypathatleastonce.youdonotneedanactivitydiagram,butthepicturewillhelpwhenyoutracecomponentpathscounteachlogicaltest—compoundtestscountasthenumberofBooleanoperators+1(i.e.,counteachsimplepredicate)basispathtestingshouldbeappliedtoallcomponents,ifpossible,andtocriticalcomponentsalways基本路徑法設(shè)計出的測試用例能夠保證在測試中程序的每一條可執(zhí)行語句至少執(zhí)行一次。以下代碼由C什語言書寫,請按要求回答問題。

voidReadPara(CStringtemp)

{if(temp==">=")

m_oper.SetCurSel(0);

else{

if(temp==">")

m_oper.SetCurSel(1);

else{

if(temp=="==")

m_oper.SetCurSel(2);

else{

if(temp=="<=")

m_oper.SetCurSel(3);

else{

if(temp=="<")

m_oper.SetCurSel(4);

else

m_oper.SetCurSel(5);

}}}}

return;

}[問題1](6分)

請畫出以上代碼的控制流圖。

[問題2](3分)

請計算上述控制流圖的環(huán)路復雜度V(G)。

[問題3](6分)

請使用基本路徑測試法為變量temp設(shè)計測試用例,使之滿足基本路徑覆蓋要求。用例編號temp取值1>=2>3==4<=5<6除>=、>、==、<=、<之外的字符組合用例編號temp取值1>=2>3==4<=5<6除>=、>、==、<=、<之外的字符組合用例編號temp取值1>=2>3==4<=5<6除>=、>、==、<=、<之外的字符組合[問題1]

[問題2]

V(G)=6[問題3]

用例編號 temp取值>=>==<=<除>=、>、==、<=、<之外的字符組合黑盒測試方法運行單元程序有時需要基于被測單元的接口,開發(fā)相應的驅(qū)動模塊和樁模塊。驅(qū)動模塊(drive):對底層或子層模塊進行測試所編寫的調(diào)用這些模塊的程序。樁模塊(stub):對頂層或上層模塊進行測試時所編寫的替代下層模塊的程序。黑盒常用方法等價類劃分法邊界值分析法三種數(shù)據(jù):錯誤推測法--正常數(shù)據(jù)因果圖法--錯誤數(shù)據(jù)功能圖法--邊緣數(shù)據(jù)另外還得考慮接口測試、性能測試、內(nèi)存測試性能分析內(nèi)存分析5.3等價類劃分在分析需求規(guī)格說明的基礎(chǔ)上劃分等價類,列出等價類表。

將程序可能的輸入數(shù)據(jù)分成若干個等價區(qū)域,從中選取一個代表性的數(shù)據(jù)作為測試用例.所謂等價類是就是在該區(qū)域內(nèi)每個輸入數(shù)據(jù)的結(jié)果是一樣的。allinputsi1i4i2i3等價類劃分等價類的分類:有效等價類和無效等價類。有效等價類是有意義的、合理的輸入數(shù)據(jù),可以檢查程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。無效等價類與有效等價類的意義相反。設(shè)計測試用例時,要同時考慮這兩種等價類。因為軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗。經(jīng)過正反的測試才能確保軟件具有更高的可靠性。確定等價類的方法在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,則可以確立一個有效等價類和兩個無效等價類。inrangegreaterthanrangelessthanrangevaluegreaterthanvaluelessthanvalue在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可以確立一個有效等價類和一個無效等價類。在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類確定等價類的方法(2)notmemberofsetmemberofsetBooleanNon-Boolean確定等價類的方式(3)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。個人月收入-x

稅率

x<=16000%1600<x<21005%500<=x<360010%3600<=x<660015%6600<=x<2160020%21600<=x<4160025%……>10160045%等價類測試用例-Example等價類1:Integer等價類2:Decimalfraction等價類3:Negative等價類4:Invalidinput練習:銀行提款機的用戶提款界面。用戶輸入想要取款的數(shù)碼進行分析,對輸入數(shù)據(jù)的規(guī)定:有效數(shù)據(jù)10~300,并以10為最小單位的數(shù),不可以出現(xiàn)數(shù)字以外的任何符號和文字。邊界條件程序的很多錯誤發(fā)生在輸入或輸出范圍的邊界上,因此針對各種邊界情況設(shè)置測試用例,可以發(fā)現(xiàn)不少程序缺陷;邊界值分析是一種補充等價劃分的測試用例設(shè)計技術(shù)。設(shè)計方法:確定邊界情況(選擇等價類邊界)選取正好等于、剛剛大于或剛剛小于邊界值作為測試數(shù)據(jù)確定邊界值的方法如果輸入條件規(guī)定了值的范圍,則應取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。

如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最小個數(shù)少一、比最大個數(shù)多一的數(shù)作為測試數(shù)據(jù)。abab確定邊界值的方法(2)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最后一個元素作為測試用例。如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應當選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。TestcasesforABS(x):classx<0,arbitraryvalue: x=-10classx>=0,arbitraryvalue x=100classesx<0,x>=0,onboundary: x=0classesx<0,x>=0,belowandabove: x=-1,x=1一些特殊的邊界值數(shù)值字符位置數(shù)量速度地點尺寸First/last,F(xiàn)irst-1/Last+1Min/Max,Min-1/max+1Star/Finish,Start-1/Finish+1Empty/FullLessthanempty/morethanfullSlowest/FastestLargest/SmallestOver/Under,justOver/JustUnderShortest/Longest……Testcases:Classarbitraryvalue:X1=123123Classboundaryvalue:X2=12345Classboundaryvalue:X3=1234567Classboundaryvalue:X4=1Classboundaryvalue:X5=0Classinvalidvalue:X6=-123123Classinvalidvalue:X7=asdasdOthers?邊界測試實例1測試功能:要求用戶輸入6位正數(shù)Classinvalidvalue:X8=000123

X9=asd123X10=Empty邊界測試實例2Testcases:Classarbitraryvalue:Randomselectsomeoptions

Classboundaryvalue:Selectalloptions

Classboundaryvalue:Selectnoneoption

Classboundaryvalue:Select1option次邊界條件邊界問題在軟件內(nèi)部,最終用戶看不到不要求測試員成為程序員,但要大體了解軟件的工作方式。2次冪ASCII表二進制Term

RangeorValueBitNibbleByteWordKiloMegaGigaTera0or10-15<Halfbyte>0-2550-65535or0-42949672951024104857610737418241099511627776Binary:0and1,byteismadeupof8bits,wordismadeupof4bytes,…ASCIITableCharacterASCIIValueCharacter

ASCIIValueNullSpace/0129;@A0324748495057586465BYZ[‘a(chǎn)byz{66899091969798121122123字符編輯域默認Default空白Empty空值BlankNull零值Zero無NoneBVAExample3Testcases:Classarbitraryvalue:Randomselectsomeoptions

Classboundaryvalue:Selectalloptions

Classboundaryvalue:Selectnoneoption

Classboundaryvalue:Select1option錯誤推測法測試用例設(shè)計基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性地設(shè)計測試用例。發(fā)現(xiàn)程序經(jīng)常出現(xiàn)的錯誤的方法:單元測試中發(fā)現(xiàn)的模塊錯誤;產(chǎn)品的以前版本曾經(jīng)發(fā)現(xiàn)的錯誤;輸入數(shù)據(jù)為0或字符為空;當軟件要求輸入時(比如在文本框中),不是沒有輸入正確的信息,而是根本沒有輸入任何內(nèi)容,單單按了Enter鍵;這種情況在產(chǎn)品說明書中常常忽視,程序員也可能經(jīng)常遺忘,但是在實際使用中卻時有發(fā)生。程序員總會習慣性的認為用戶要么輸入信息,不管是看起來合法的或非法的信息,要不就會選擇Cancel鍵放棄輸入,測試場景法設(shè)計測試用例現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計方面的思想也可引入到軟件測試中,可以比較生動地描繪出事件觸發(fā)時的情景,有利于測試設(shè)計者設(shè)計測試用例,同時使測試用例更容易理解和執(zhí)行。因果圖法測試用例設(shè)計多種輸入條件的組合,產(chǎn)生多種結(jié)果設(shè)計測試用例。設(shè)計方法:分析軟件規(guī)格說明文檔描述的哪些是原因(輸入條件),哪些是結(jié)果(輸出條件),給每個原因和結(jié)果賦予一個標示符。找出原因與結(jié)果,原因與原因之間的對應關(guān)系,劃出因果圖在因果圖上標上哪些不可能發(fā)生的因果關(guān)系,表明約束或限制條件根據(jù)因果圖,創(chuàng)建判定表,將復雜的邏輯關(guān)系和多種條件組合很具體明確的表示出來把判定表的每一行作為依據(jù)設(shè)計測試用例。因果圖法-Sample1Validequivalenceclasses:

condition valideq.classes.

abs(N) N0,N

0

maxint kmaxint,

k>maxintTestCases: maxint N result maxint N result 55 10 55 100 0 0

54 10 error 100 -1 1

56 10 55 100 1 1

0 0 0 … … …GiveninputsmaxintandNcomputeresult:

K=0|N|kresult= ifthis<=maxint,errorotherwise

因果圖法-Sample2

kmaxint

kmaxintN0N0

kerrorandxorandCauses

kmaxint

1 1 0 0Inputs

kmaxint

0 0 1 1 N0 1 0 1 0 N0 0 1 0 1Effects k 1 1 0 0Outputs error 0 0 1

1因果圖法-Sample31100error00

溫馨提示

  • 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

提交評論