第6章 軟件測試(1) pwq_第1頁
第6章 軟件測試(1) pwq_第2頁
第6章 軟件測試(1) pwq_第3頁
第6章 軟件測試(1) pwq_第4頁
第6章 軟件測試(1) pwq_第5頁
已閱讀5頁,還剩169頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023/2/40第6章軟件測試(1)軟件工程2023/2/41本章目錄一、測試概述

二、測試方法三、測試級別四、測試管理流程五、測試自動化六、測試過程七、案例分析2023/2/42軟件測試---測試概述2023/2/43本節(jié)要點一、測試概述

二、測試方法簡述三、測試級別簡述四、測試管理流程簡述2023/2/44什么是測試?

為了發(fā)現(xiàn)軟件系統(tǒng)的錯誤而運行或測試某個系統(tǒng)的過程。破壞的過程軟件測試是質(zhì)量控制的重要手段定義:2023/2/45測試概述

軟件測試是對軟件需求分析、設計、編碼實現(xiàn)的審查。 軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程?;蛘哒f,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設計一批測試用例(即輸入數(shù)據(jù)及其預期的輸出結(jié)果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤的過程。

2023/2/46什么是測試?

(4195835/3145727)×3145727-4195835愛國者導彈防御系統(tǒng)千年蟲軟件錯誤典型案例:2023/2/47什么是測試?(1)測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;(2)一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;(3)一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。保證產(chǎn)品質(zhì)量!Myers軟件測試目的2023/2/48軟件測試的原則1.應當把“盡早地和不斷地進行軟件測試”作為軟件開發(fā)者的座右銘。2.測試用例應由測試輸入數(shù)據(jù)和對應的預期輸出結(jié)果這兩部分組成。3.程序員應避免檢查自己的程序。4.在設計測試用例時,應包括合理的輸入條件和不合理的輸入條件。2023/2/495.充分注意測試中的群集現(xiàn)象。

經(jīng)驗表明,測試后程序中殘存的錯誤數(shù)目與該程序中已發(fā)現(xiàn)的錯誤數(shù)目成正比。6.嚴格執(zhí)行測試計劃,排除測試的隨意性。7.應當對每一個測試結(jié)果做全面檢查。8.妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告,為維護提供方便。

2023/2/410什么是測試?軟件測試的實踐性大于理論性軟件測試理論體系尚不成熟軟件測試工具尚不成熟軟件測試效果對于個人的依賴性比較大現(xiàn)狀:2023/2/411基本術(shù)語(1/2)?

錯誤(Error)–錯誤是指導致系統(tǒng)可能包含故障的人的行為,如輸入錯誤、需求錯誤、設計錯誤等。?

缺陷(Defect,Bug)–缺陷是錯誤的表現(xiàn),包括過錯缺陷和遺漏缺陷。?

故障(Fault)–故障是指系統(tǒng)的規(guī)格說明與其行為之間的偏差,通常由一個或多個缺陷引起。2023/2/412基本術(shù)語(2/2)?

驗證(Verification)–我們是否在正確地制造產(chǎn)品?–軟件驗證試圖證明在軟件生存周期的各個階段,軟件產(chǎn)品或中間產(chǎn)品是否能夠滿足客戶需求,包括一致性、完整性和正確性。?

確認(Validation)–我們是否在制造正確的產(chǎn)品?–軟件確認的目的是保證所開發(fā)的最終軟件產(chǎn)品能夠符合用戶的需求。?

說明:驗證強調(diào)對于過程的檢驗,確認強調(diào)對于結(jié)果的檢驗。2023/2/413軟件錯誤或缺陷?

軟件錯誤(或軟件缺陷)的表現(xiàn)–軟件未達到產(chǎn)品說明書標明的功能;–軟件出現(xiàn)了產(chǎn)品說明書指明不會出現(xiàn)的錯誤;–軟件功能超出了產(chǎn)品說明書指明的范圍;–軟件未達到產(chǎn)品說明書雖未指出但應達到的目標;–軟件測試人員認為軟件難以理解、不易使用、運行速度緩慢、或者最終用戶不滿意。?

有錯是軟件的屬性,而且是無法改變的。因此,關(guān)鍵在于如何避免錯誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯誤,使程序中的錯誤密度達到盡可能低的程度。2023/2/414驗證與確認2023/2/415這是什么?2023/2/416錯誤的狀態(tài)2023/2/417算法錯誤2023/2/418機械錯誤2023/2/419處理錯誤或缺陷:驗證?2023/2/420處理錯誤或缺陷:冗余?2023/2/421處理錯誤或缺陷:特性?2023/2/422處理錯誤或缺陷:補?。?023/2/423處理錯誤或缺陷:測試?2023/2/424另一種觀點?錯誤預防(在系統(tǒng)發(fā)布之前實施)–使用好的程序設計方法來減少復雜性–使用版本控制來防止系統(tǒng)的不一致–應用驗證技術(shù)來防止算法錯誤?錯誤檢測(當系統(tǒng)運行時實施)–測試:以事先規(guī)劃的方式發(fā)現(xiàn)錯誤–調(diào)試:假設從意外故障著手可以找到錯誤–監(jiān)控:發(fā)送狀態(tài)信息,發(fā)現(xiàn)性能錯誤?錯誤恢復(一旦系統(tǒng)發(fā)布后出現(xiàn)錯誤時實施)–數(shù)據(jù)庫系統(tǒng):提供從故障中恢復的基本事務處理–模塊冗余:將不止一個組件分配執(zhí)行同一個操作–恢復程序:該程序處理錯誤信息,使系統(tǒng)從故障中恢復過來2023/2/425本節(jié)要點一、測試概述二、測試方法簡述三、測試級別簡述四、測試管理流程簡述2023/2/426測試方法軟件測試方法動態(tài)測試靜態(tài)測試黑盒測試白盒測試在不知道程序內(nèi)部結(jié)構(gòu),只知道程序規(guī)格的情況下采用的測試技術(shù)或策略。在知道程序內(nèi)部結(jié)構(gòu)的情況下采用的測試技術(shù)或策略。黑盒測試方法和白盒測試方法綜合的策略。不實際運行程序,而是通過檢查和閱讀等手段來發(fā)現(xiàn)錯誤并評估代碼質(zhì)量的軟件測試技術(shù)。也稱為靜態(tài)分析技術(shù)。實際運行程序,并通過觀察程序運行的實際結(jié)果來發(fā)現(xiàn)錯誤的軟件測試技術(shù)。白盒測試灰盒測試2023/2/427本節(jié)要點一、測試概述二、測試方法簡述三、測試級別簡述四、測試管理流程簡述2023/2/428測試的級別概要設計詳細設計編碼集成測試單元測試代碼審查需求分析系統(tǒng)測試回歸測試驗收測試2023/2/429本節(jié)要點一、測試概述二、測試方法簡述三、測試級別簡述四、測試管理流程簡述2023/2/430測試管理流程測試計劃測試設計、開發(fā)測試執(zhí)行測試記錄分析測試總結(jié)完畢缺陷跟蹤針對測試目標,規(guī)定測試任務、資源分配、人員角色、進度安排等。根據(jù)測試計劃,設計測試用例,包括:測試步驟、測試場景、測試代碼、測試數(shù)據(jù)(包括預期結(jié)果)。根據(jù)測試計劃,配置測試環(huán)境,并手動或者自動執(zhí)行測試設計。根據(jù)測試計劃,忠實地記錄測試執(zhí)行的過程和結(jié)果。分析測試記錄,如果發(fā)現(xiàn)與預期結(jié)果不同,確定并重現(xiàn)缺陷。檢查測試設計是否全部執(zhí)行完畢,缺陷是否全部關(guān)閉。記錄、分發(fā)、評估、關(guān)閉缺陷報告。分析測試過程和缺陷報告,評估測試質(zhì)量和測試效果,給出是否通過測試的建議。2023/2/431軟件測試---測試方法2023/2/432本節(jié)要點一、靜態(tài)測試方法二、動態(tài)測試方法三、面向?qū)ο鬁y試2023/2/433靜態(tài)測試(分析)定義:不實際運行程序,而是通過檢查和閱讀等手段來發(fā)現(xiàn)錯誤并評估代碼質(zhì)量的軟件測試技術(shù)。也稱為靜態(tài)測試技術(shù)。方法:走查:WalkThrough審查:Inspection評審:ReviewMichaelFaganIBM(1976)2023/2/434靜態(tài)分析-走查定義:開發(fā)組內(nèi)部進行的,主要是個人通過檢查和閱讀等手段來查找錯誤的活動。經(jīng)驗:限時,一般2-3小時避免跑題不要現(xiàn)場修改檢查要點邏輯錯誤代碼標準/規(guī)范/風格2023/2/435靜態(tài)分析-審查定義:開發(fā)組內(nèi)部進行的,分配了相關(guān)的角色,采用講解、提問并使用Checklist方式進行的查找錯誤的活動。經(jīng)驗:以會議的形式,制定會議目標、流程和規(guī)則,結(jié)束后要編寫報告參加人員經(jīng)驗豐富的開發(fā)人員和本模塊相關(guān)的開發(fā)人員本項目組的新人由另外一名開發(fā)者進行講解、其他開發(fā)者主要按照Checklist進行提問并填表、本模塊開發(fā)者回答問題并記錄不要現(xiàn)場修改檢查要點設計需求代碼標準/規(guī)范/風格2023/2/436靜態(tài)分析-評審定義:開發(fā)組、測試組和相關(guān)人員(QA、產(chǎn)品經(jīng)理等)聯(lián)合進行的,采用講解、提問并使用Checklist方式進行的查找錯誤的活動。一般有正式的計劃、流程和結(jié)果報告。經(jīng)驗:以會議的形式,制定會議目標、流程和規(guī)則,結(jié)束后要編寫報告。相關(guān)資料要在會議前下發(fā)并閱讀。參加人員經(jīng)驗豐富的開發(fā)人員和本模塊相關(guān)的開發(fā)人員測試組和相關(guān)人員由另外一名開發(fā)者進行講解、其他開發(fā)者主要按照Checklist進行提問并填表、本模塊開發(fā)者回答問題并記錄不要現(xiàn)場修改檢查要點設計需求代碼標準/規(guī)范/風格文檔的完整性和一致性2023/2/437同行(對等)評審

(PeerReview)對等技術(shù)評審是由與工作產(chǎn)品開發(fā)人員具有同等背景和能力的人員對工作產(chǎn)品進行的一種評審,目的是早期和有效的消除軟件工作產(chǎn)品中的缺陷,并可對軟件工作產(chǎn)品和其中可預防的缺陷有更好的理解。2023/2/438本節(jié)要點一、靜態(tài)測試方法二、動態(tài)測試方法三、面向?qū)ο鬁y試2023/2/439動態(tài)測試白盒測試黑盒測試2023/2/440白盒測試基于代碼的測試2023/2/441白盒測試基本的邏輯覆蓋其它的邏輯覆蓋準則2023/2/442基本邏輯覆蓋測試語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋2023/2/443語句覆蓋

選擇足夠的測試用例,使得程序中每一條可執(zhí)行語句至少被執(zhí)行一次。語句覆蓋率=(至少被執(zhí)行一次的語句數(shù)量)/(可以執(zhí)行的語句總數(shù))2023/2/444語句覆蓋實例1.ifConditionthenDo_something;EndifAnother_Statement;TestCase:ConditionTrue2023/2/445判定覆蓋選擇足夠的測試用例,使得程序中每一個判斷的每一種可能結(jié)果都至少被執(zhí)行一次。判定覆蓋也叫分支覆蓋。判定覆蓋率=(判定結(jié)果被評價的次數(shù))/(判定結(jié)果的總數(shù))2023/2/446判定覆蓋實例1.ifConditionthenDo_something;EndifAnother_Statement;TestCase:1、ConditionTrue2、ConditionFalse2023/2/447判定覆蓋實例1.ifConditionthenDo_something;ElseDo_something_Else;EndifAnother_Statement;TestCase:ConditionTrueTestCase:ConditionFalse2023/2/448判定覆蓋實例1. IfAandBthenDo-SomethingEndif判斷:1.A=T,B=T=>AandB=T2.A=T,B=F=>AandB=FTestCaseABAandBTestCase1TTTTestCase2TFF2023/2/449條件覆蓋

選擇足夠的測試用例,使得程序中每一個判斷中的每一個條件的可能結(jié)果都至少被執(zhí)行一次條件覆蓋率=(條件操作數(shù)值至少被評價一次的數(shù)量)/(條件操作數(shù)值的總數(shù))2023/2/450條件覆蓋實例1. IfAandBthenDo-SomethingEndifTestCaseABAandBTestCase1TFFTestCase2FTF2023/2/451條件覆蓋例如:if(A>1)and(B=0)thenX=X/A;if(A=2)and(X>1)thenX=X+1;A>1,A<=1A=2,A<>2

B=0,B<>0X>1,X<=12023/2/452條件覆蓋條件:A>1T1;A<=1F1B=0T2;B<>0F2A=2T3;A<>2F3X>1T4;X<=1F4TestcaseABX Case1、103 Case2、211 if(A>1)and(B=0)thenX=X/A;if(A=2)and(X>1)thenX=X+1;2023/2/453判定條件覆蓋

選擇足夠的測試用例,使得同時滿足判定覆蓋和條件覆蓋。判定條件覆蓋率=(條件操作數(shù)值或者判定結(jié)果至少被評價一次的數(shù)量)/(條件操作數(shù)值總數(shù)+判定結(jié)果的總數(shù))2023/2/454判定條件覆蓋-實例1. IfAandBthenDo-SomethingEndif判斷:1.AandB=T2.AandB=FTestCase

A

B

AandBTestCase1TTTTestCase2FFF條件:1.A=T2.A=F3.B=T4.B=F2023/2/455判斷條件覆蓋-實例判斷(A>1)and(B=0)A>1,B=0=>TrueA>1,B<>0=>FalseA<=1,B=0=>FalseA<=1,B<>0=>False(A=2)and(X>1)A=2,X>1=>TrueA=2,X<=1=>FalseA<>2,X>1=>FalseA<>2,X<=1=>False條件:A>1T1;A<=1F1B=0T2;B<>0F2A=2T3;A<>2F3X>1T4;X<=1F4A、B、X2、0、31、1、1if(A>1)and(B=0)thenX=X/A;if(A=2)and(X>1)thenX=X+1;2023/2/456判斷條件覆蓋-案例冗余判斷(A>1)and(B=0)A>1,B=0=>TrueA>1,B<>0=>FalseA<=1,B=0=>FalseA<=1,B<>0=>False(A=2)and(X>1)A=2,X>1=>TrueA=2,X<=1=>FalseA<>2,X>1=>FalseA<>2,X<=1=>False條件:A>1T1;A<=1F1B=0T2;B<>0F2A=2T3;A<>2F3X>1T4;X<=1F4A、B、X2、0、31、1、1if(A>1)and(B=0)thenX=X/A;if(A=2)and(X>1)thenX=X+1;1、0、32、1、12023/2/457條件組合覆蓋

選擇足夠的測試用例,使得程序中每一個分支判斷中的每一個條件的每一種可能組合結(jié)果都至少被執(zhí)行一次。條件組合覆蓋率=(被評價的分支條件組合數(shù)量)/(分支條件組合總數(shù))2023/2/458條件組合覆蓋1. IfAandBthenDo-SomethingEndifTestCase

A

B

AandBTestCase1TTTTestCase2FFFTestCase3TFFTestCase4FTF2023/2/459條件組合覆蓋條件組合A>1,B=0A>1,B<>0A<=1,B=0A<=1,B<>0A=2,X>1A=2,X<=1A<>2,X>1A<>2,X<=1條件:(A>1)and(B=0)A>1A<=1B=0B<>0(A=2)and(X>1)A=2A<>2X>1X<=11、0、3A、B、X2、1、12、0、31、1、1if(A>1)and(B=0)thenX=X/A;if(A=2)and(X>1)thenX=X+1;2023/2/460路徑覆蓋

選擇足夠的測試用例,使得程序中所有的可能路徑都至少被執(zhí)行一次。路徑覆蓋率=(至少被執(zhí)行一次的路徑數(shù))/(總的路徑數(shù))2023/2/461路徑覆蓋(A>1)and(B=0)X=X/A(A=2)or(X>1)X=X+1cTrueFalsebTrueFalseedaTestcaseABX覆蓋路徑Case1103abeCase2211abeCase3203aceCase4111abdTestcaseABX覆蓋路徑Case5601acdif(A>1)and(B=0)thenX=X/A;if(A=2)or(X>1)thenX=X+1;2023/2/462三角形程序?qū)崿F(xiàn)的數(shù)據(jù)流圖2023/2/463三角形程序的偽代碼ProgramTriangle2Dima,b,casintegerDimIsATriangleAsBoolean Step1:GetInputOutput(“Enter3integerswhicharesidesoftriangle”)Input(a,b,c)Output(“SideAis”,a)Output(“SideBis”,b)Output(“SideCis”,c) Step2:IsaTriangle?If(a<b+c)and(b<a+c)and(C<a+b)ThenIsATriangle=TrueElseIsATriangle=falseEndif2023/2/464三角形程序的偽代碼 Step3:DetermineTriangleTypeIfIsATriangleThenif(a=b)AND(b=c)ThenOutput(“Equilateral”)Elseif(a<>b)AND(a<>c)AND(b<>c)ThenOutput(“Scalene”)ElseOutput(“Isosceles”)EndifEndifElseOutput(“NotaTriangle”)EndifEndtriangle22023/2/465三角形程序圖2023/2/466DD-路徑

(Decision-to-DecisionPaths)判斷(決策)到判斷(決策)的路徑判斷(決策):一個序列語句開始位置是一個判斷(決策)的開始,結(jié)束位置是下一個判斷(決策)語句的開始。序列語句沒有分支2023/2/467三角形的DD-路徑2023/2/468DD-路徑覆蓋DD路徑覆蓋率=(至少被執(zhí)行一次的決策路徑數(shù))/(系統(tǒng)中總的決策路徑數(shù))E.F.Miller發(fā)現(xiàn):DD-路徑覆蓋可以發(fā)現(xiàn)全部缺陷的85%2023/2/469McCabe的基路徑方法線性獨立路徑數(shù):V(G)=e-n+2e:邊數(shù)n:節(jié)點數(shù)

BDAEFGCV(G)=10-7+2=52023/2/470保險金程序-需求保險金=基本保險費率×年齡系數(shù)-安全駕駛折扣年齡系數(shù)是投保人年齡的函數(shù),如果投保人駕駛執(zhí)照上的當前點數(shù)(根據(jù)交通違規(guī)次數(shù)確定)低于與年齡有關(guān)的門限,則給予安全駕駛折扣。書面保險政策的駕駛?cè)四挲g范圍為從16-100歲,如果投保人有12點,則駕駛?cè)说膱?zhí)照就會被吊銷(因此不需要保險)?;颈kU費率隨時間變化,是每半年500美元。

年齡范圍年齡系數(shù)門限點數(shù)安全駕駛折扣〔16,25)2.8150〔25,35)1.8350〔35,45)1.05100〔45,60)0.87150〔60,100)1.552002023/2/471保險金程序圖2023/2/472保險金程序路徑?V(G)=112023/2/473路徑覆蓋覆蓋路徑P1的案例年齡:17,點數(shù):1覆蓋路徑P2的案例年齡:16,點數(shù):0。。。。。。。2023/2/474基本邏輯覆蓋測試方法語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋2023/2/475動態(tài)測試基本邏輯覆蓋其它邏輯覆蓋準則2023/2/476其它測試覆蓋準則ESTCA(ErrorSensitiveTestCasesAnalysis)MC/DC(ModifiedConditional/DecisionCoverage)2023/2/477ESTCA的引入

邏輯覆蓋的出發(fā)點似乎是合理的。所謂“覆蓋”,就是想要作到全面,而無遺漏。但事實表明,它并不能真的作到無遺漏。面對這類情況我們應該從中吸取的教訓是測試工作要有重點,要多針對容易發(fā)生問題的地方設計測試用例。

K.A.Foster從測試工作實踐的教訓出發(fā),吸收了計算機硬件的測試原理,提出了一種經(jīng)驗型的測試覆蓋準則,較好地解決了上述問題。

Foster的經(jīng)驗型覆蓋準則是從硬件的早期測試方法中得到啟發(fā)的。我們知道,硬件測試中,對每一個門電路的輸入、輸出測試都是有額定標準的。通常,電路中一個門的錯誤常常是“輸出總是0”,或是“輸出總是1”。與硬件測試中的這一情況類似,我們常常要重視程序中謂詞的取值,但實際上它可能比硬件測試更加復雜。Foster通過大量的實驗確定了程序中謂詞最容易出錯的部分,得出了一套錯誤敏感測試用例分析ESTCA(ErrorSensitiveTestCasesAnalysis)規(guī)則。IF(I=0)錯寫為IF(I>0)IF(I>1)錯寫為IF(I>0)IF(I=X)錯寫為IF(I=0)2023/2/478ESTCA

(ErrorSensitiveTestCasesAnalysis)規(guī)則1:

對于ArelB(rel可以是<,=和>)型的分支謂詞,應適當?shù)剡x擇A與B的值,使得測試執(zhí)行到該分支語句時,A<B,A=B和A>B的情況分別出現(xiàn)一次。規(guī)則2:ArelC:Rel為<、>;A是變量,C是常量(M是距C最小的容許正數(shù),若A和C均為整型時,M=1)。Rel為<時,適當選擇A,使A=C-MRel為>時,適當選擇A,使A=C+M規(guī)則3:對外部輸入變量賦值,使其每一測試用例均有不同的值和符號,并與同一組測試用例中其它變量的值與符號不一致。顯然,上述規(guī)則1是為了檢測rel的錯誤,規(guī)則2是為了檢測“差一”之類的錯誤(如本應是“IFA>1”而錯成“IFA>0”),而規(guī)則3則是為了檢測程序語句中的錯誤(如應引用一變量而錯成引用一常量)。

2023/2/479MC/DC覆蓋(修訂的條件/判定覆蓋)

(ModifiedConditional/DecisionCoverage)定義:在每個判定中的每個條件都曾獨立的影響判定的結(jié)果至少一次,(獨立影響意思是在其他的條件不變的情況下,改變一個條件)。即:每個條件對結(jié)果都獨立起作用。

2023/2/480condition和decision的概念:

if(AorB)andCthen

Statement;

else

Statement2;

A,B,C都是一個條件,而(AorBandC)叫一個Decision,如果是判定覆蓋的話只需兩個case就能覆蓋,就是讓這個decision為true和false各一次就能達到即為011,010

如果是MC/DC的話就得四個case。比如A對結(jié)果起作用的話,B必須為false,C必須為true--101

和001,這樣結(jié)果就獨立受A的值影響.同理如果B對結(jié)果獨立起作用的話,A必須為false,C必須為true,兩種情況B為true,false各一.即為011

和001而C獨立對結(jié)果起作用的話就是讓(AorB)為true,為了減少case,上面的case已經(jīng)含有這樣的case了,我們就取A為false,B為true,這樣c獨體起作用的case為:011

和010

可以看出每個條件各走了一次true和false,這樣三個變量條件就會有六個case,我們看出其中里面還有兩個是重復的。

2023/2/481MC/DC覆蓋-實例If{XandY}then{block1}Else{block2}TestCaseXYResultTestCase1TTTTestCase2TFFTestCase3FTF2023/2/482MC/DC覆蓋-實例練習:(Xand(YorZ))TestcaseXYZResultTestcaseTTTTTestcaseFTTFTestcaseTTFTTestcaseTFFFTestcaseTFTT2023/2/483C/DC和MC/DC之間的差異1)選取兩種方法的條件不同

當以下的需求在程序測試中遇到時,需要考慮用MC/DC方法:每一個程序模塊的輸入和輸出點都要考慮至少出現(xiàn)1次,每個程序的判定到所有可能的結(jié)果值要至少實現(xiàn)1次;程序的判定被分解為通過邏輯操作符(AND,OR,etc.)連接為BOOL條件,每一個條件對于判定的結(jié)果值是獨立的,或者說單個條件的變化將導致判定的最后變化.2)兩者的測試集不同3)兩者在測試中的覆蓋面不同4)兩者的用途不同

由于MC/DC在尋找測試集時的要求比C/DC要嚴格,所以相比較下在測試時為了尋找出測試集合所花費的時間多,由此而引起的人力、物力、財力三重開銷也會直接攀升,但是MC/DC測試錯誤的準確率卻是特別地高,因此MC/DC適合那些大型的并且要求測試非常精確的軟件測試所用.為達到用戶的目的和一個較高的信價比,近年來MC/DC方法主要應用于大型的航空航天軟件程序的測試上.對比而言C/DC方法要求較低,開銷少,而覆蓋率也低,所以比較適合對于例如C++,JAVA等小型的程序的測4試當中使用,這正是因為小型程序所擁有的項目經(jīng)費較少、語句代碼少則導致相應地尋找錯誤也比較容易.此時使用C/DC方法足以測試軟件.2023/2/484黑盒測試基于需求的測試2023/2/485黑盒測試需求的覆蓋率=(被驗證的需求的數(shù)量)/(總的需求的數(shù)量)2023/2/486黑盒測試方法邊界值分析等價類規(guī)范導出錯誤猜測基于故障的測試因果圖法2023/2/487邊界值分析a<=X1<=b||c<=X2<=dX12023/2/488邊界值測試原理1.定義:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。2023/2/489邊界值分析邊界值分析方法的考慮:長期的測試工作經(jīng)驗告訴我們,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。

使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù)。2023/2/490邊界值分析-基本思想邊界值最小值:Min略高于最小值::Min+正常值:Normal略低于最大值:Max-最大值:Max正常取值范圍2023/2/491邊界值分析-健壯性測試邊界值略低于最小值:Min-最小值:Min略高于最小值::Min+正常值:Normal略低于最大值:Max-最大值:Max略高于最大值:Max+2023/2/492邊界值分析-健壯性測試2023/2/493邊界值分析-最壞情況多缺陷假設多個變量取極值的情況2023/2/494邊界值分析-最壞情況兩變量函數(shù)的最壞情況測試用例:2023/2/495邊界值分析-最壞情況兩變量函數(shù)的健壯最壞情況測試用例2023/2/496保險金程序-需求保險金=基本保險費率×年齡系數(shù)-安全駕駛折扣年齡范圍年齡系數(shù)門限點數(shù)安全駕駛折扣〔16,25)2.8150〔25,35)1.8350〔35,45)1.05100〔45,60)0.87150〔60,100)1.552002023/2/497邊界值測試-最壞情況2023/2/498細化的最壞情況測試2023/2/499細化的最壞情況測試2023/2/4100常見的邊界值1)對16-bit的整數(shù)而言32767和-32768是邊界

2)屏幕上光標在最左上、最右下位置

3)報表的第一行和最后一行

4)數(shù)組元素的第一個和最后一個

5)循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次2023/2/4101邊界值分析—邊界劃分(1/6)

1)邊界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在于劃分的邊界上,因此在等價類的邊界上以及兩側(cè)的情況設計測試用例。

例:測試計算平方根的函數(shù)

--輸入:實數(shù)

--輸出:實數(shù)

--規(guī)格說明:當輸入一個0或比0大的數(shù)的時候,返回其正平方根;當輸入一個小于0的數(shù)時,顯示錯誤信息“平方根非法-輸入值小于0”并返回0;庫函數(shù)Print-Line可以用來輸出錯誤信息。

2023/2/4102邊界值分析—邊界劃分(2/6)

2)等價類劃分:

3)邊界值分析:

劃分(ii)的邊界為0和最大正實數(shù);劃分(i)的邊界為最小負實數(shù)和0。由此得到以下測試用例:

a、輸入{最小負實數(shù)}b、輸入{絕對值很小的負數(shù)}c、輸入0d、輸入{絕對值很小的正數(shù)}e、輸入{最大正實數(shù)}

I.可以考慮作出如下劃分II.測試用例有兩個a、輸入(i)<0和(ii)>=0b、輸出(a)>=0和(b)Errora、輸入4,輸出2。對應于(ii)和(a)。b、輸入-10,輸出0和錯誤提示。對應于(i)和(b)。2023/2/4103邊界值分析—邊界檢驗(3/6)4)通常情況下,軟件測試所包含的邊界檢驗有幾種類型:數(shù)字、字符、位置、重量、大小、速度、方位、尺寸、空間等。

5)相應地,以上類型的邊界值應該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、

最短/最長、空/滿等情況下。

2023/2/4104

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

邊界值分析—

利用邊界值作為測試數(shù)據(jù)(4/6)2023/2/4105邊界值分析—內(nèi)部邊界值分析(5/6)

在多數(shù)情況下,邊界值條件是基于應用程序的功能設計而需要考慮的因素,可以從軟件的規(guī)格說明或常識中得到,也是最終用戶可以很容易發(fā)現(xiàn)問題的。然而,在測試用例設計過程中,某些邊界值條件是不需要呈現(xiàn)給用戶的,或者說用戶是很難注意到的,但同時確實屬于檢驗范疇內(nèi)的邊界條件,稱為內(nèi)部邊界值條件或子邊界值條件。

內(nèi)部邊界值條件主要有下面幾種:

a)數(shù)值的邊界值檢驗:計算機是基于二進制進行工作的,因此,軟件的任何數(shù)值運算都有一定的范圍限制。b)字符的邊界值檢驗:在計算機軟件中,字符也是很重要的表示元素,其中ASCII和Unicode是常見的編碼方式。2023/2/4106項范圍或值位(bit)0或1字節(jié)(byte)0~255字(word)0~65535(單字)或0~4294967295(雙字)千(K)1024兆(M)1048576吉(G)1073741824字符ASCII碼值字符ASCII碼值空(null)0A65空格(space)32a97斜杠(/)47Z90048z122冒號(:)58單引號(‘)96@64

a)數(shù)值的邊界值檢驗:b)字符的邊界值檢驗:2023/2/4107

1)如果輸入條件規(guī)定了值的范圍,則應取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。

例如,如果程序的規(guī)格說明中規(guī)定:“重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費計算公式為……”。作為測試用例,我們應取10及50,還應取10.01,49.99,9.99及50.01等。

2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù),最小個數(shù),比最小個數(shù)少一,比最大個數(shù)多一的數(shù)作為測試數(shù)據(jù)。

比如,一個輸入文件應包括1~255個記錄,則測試用例可取1和255,還應取0及256等。

3)將規(guī)則1)和2)應用于輸出條件,即設計測試用例使輸出值達到邊界值及其左右的值。

例如,某程序的規(guī)格說明要求計算出“每月保險金扣除額為0至1165.25元”,其測試用例可取0.00及1165.24、還可取一0.01及1165.26等。

再如一程序?qū)儆谇閳髾z索系統(tǒng),要求每次“最少顯示1條、最多顯示4條情報摘要”,這時我們應考慮的測試用例包括1和4,還應包括0和5等。

4)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最后一個元素作為測試用例。

5)如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應當選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。

6)分析規(guī)格說明,找出其它可能的邊界條件。

邊界值分析—

基于邊界值分析方法選擇測試用例的原則

(6/6)2023/2/4108實戰(zhàn)演習1.現(xiàn)有一個學生標準化考試批閱試卷,產(chǎn)生成績報告的程序。其規(guī)格說明如下:程序的輸入文件由一些有80個字符的記錄組成,如右圖所示,所有記錄分為3組:說明2023/2/4109①標題:這一組只有一個記錄,其內(nèi)容為輸出成績報告的名字。

②試卷各題標準答案記錄:每個記錄均在第80個字符處標以數(shù)字“2”。該組的第一個記錄的第1至第3個字符為題目編號(取值為1一999)。第10至第59個字符給出第1至第50題的答案(每個合法字符表示一個答案)。該組的第2,第3……個記錄相應為第51至第100,第101至第150,…題的答案。③每個學生的答卷描述:該組中每個記錄的第80個字符均為數(shù)字“3”。每個學生的答卷在若干個記錄中給出。如甲的首記錄第1至第9字符給出學生姓名及學號,第10至第59字符列出的是甲所做的第1至第50題的答案。若試題數(shù)超過50,則第2,第3……紀錄分別給出他的第51至第100,第101至第150……題的解答。然后是學生乙的答卷記錄。④學生人數(shù)不超過200,試題數(shù)不超過999。

⑤程序的輸出有4個報告:a)按學號排列的成績單,列出每個學生的成績、名次。

b)按學生成績排序的成績單。c)平均分數(shù)及標準偏差的報告。d)試題分析報告。按試題號排序,列出各題學生答對的百分比。

2023/2/4110解答:分別考慮輸入條件和輸出條件,以及邊界條件。給出下表所示的輸入條件及相應的測試用例。2023/2/4111

輸出條件及相應的測試用例表。

⑤程序的輸出有4個報告:a)按學號排列的成績單,列出每個學生的成績、名次。

b)按學生成績排序的成績單。c)平均分數(shù)及標準偏差的報告。d)試題分析報告。按試題號排序,列出各題學生答對的百分比。2023/2/4112測試用例abc預期輸出Test1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等邊三角形等腰三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形

練習:三角形問題的邊界值分析測試用例。在三角形問題描述中,除了要求邊長是整數(shù)外,沒有給出其它的限制條件。在此,我們將三角形每邊邊長的取范圍值設值為[1,100]。2023/2/4113

練習:NextDate函數(shù)的邊界值分析測試用例在NextDate函數(shù)中,隱含規(guī)定了變量mouth和變量day的取值范圍為1≤mouth≤12和1≤day≤31,并設定變量year的取值范圍為1912≤year≤2050。測試用例mouthdayyear預期輸出Test1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911.6.161912.6.161913.6.161975.6.162049.6.162050.6.162051.6.16Test8Test9Test10Test11Test12Test13666666012303132200120012001200120012001day超出[1…31]2001.6.22001.6.32001.7.1輸入日期超界day超出[1…31]Test14Test15Test16Test17Test18Test19012111213151515151515200120012001200120012001Mouth超出[1…12]2001.1.162001.2.162001.11.162001.12.16Mouth超出[1…12]2023/2/4114一、分析輸入的情形。二、分析輸出情形。R>1000<R<=100R<=0P>100R<=P<=100P<RN50=1N50=04>N10>=1N10=0N5=1N5=04>N1>=1N1=0找零錢最佳組合:假設商店貨品價格(R)皆不大於100元(且為整數(shù)),若顧客付款在100元內(nèi)(P),求找給顧客之最少貨幣個(張)數(shù)?(貨幣面值50元(N50),10元(N10),5元(N5),1元(N1)四種)2023/2/4115三、分析規(guī)格中每一決策點之情形,以RR1,RR2,RR3表示計算要找50,10,5元貨幣數(shù)時之剩余金額。R>100R<=0P>100P<RRR1>=50RR2>=10RR3>=5四、由上述之輸入/輸出條件組合出可能的情形。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五、為滿足以上之各種情形,測試資料設計如下:1.貨品價格=1012.貨品價格=03.貨品價格=-14.貨品價格=100,付款金額=1015.貨品價格=100,付款金額=996.貨品價格=50,付款金額=1007.貨品價格=51,付款金額=1008.貨品價格=90,付款金額=1009.貨品價格=91,付款金額=10010.貨品價格=95,付款金額=10011.貨品價格=96,付款金額=10012.貨品價格=99,付款金額=10013.貨品價格=100,付款金額=1002023/2/4116保險金程序案例變量最小值略大于最小值正常值略小于最大值最大值年齡16175499100點數(shù)01611122023/2/4117黑盒測試方法邊界值分析等價類規(guī)范導出錯誤猜測基于故障的測試因果圖法2023/2/4118等價類1.定義

是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。該方法是一種重要的,常用的黑盒測試用例設計方法。X1的輸入域是[a,d],區(qū)間[a,b),[b,c),[c,d]X2的輸入域是[e,g],區(qū)間[e,f),(f,g]abcdfgeX2X12023/2/4119等價類測試原理通過每個等價類中的一個元素標識測試用例降低測試用例之間的冗余例如:三角型測試{5,5,5}與{10,10,10}是一個等價類2023/2/4120弱一般等價類單缺陷假設abcdfgeX1X22023/2/4122強一般等價類多缺陷假設abcdfgeX1X22023/2/4123弱健壯等價類單缺陷假設無效輸入abcdfgeX1X22023/2/4124強健壯等價類多缺陷假設無效輸入abcdfgeX1X22023/2/4125保險金程序-需求保險金=基本保險費率×年齡系數(shù)-安全駕駛折扣年齡范圍年齡系數(shù)門限點數(shù)安全駕駛折扣〔16,25)2.8150〔25,35)1.8350〔35,45)1.05100〔45,60)0.87150〔60,100)1.552002023/2/4126等價類年齡A1=〔16,25)A2=〔25,35)A3=〔35,45)A4=〔45,60)A5=〔60,100)點數(shù)P1={0,1}P2={2,3}P3={4,5}P4={6,7}P5={8,9,10,11,12}2023/2/4127弱等價類測試2023/2/4128強等價類測試2023/2/41292.劃分等價類:

等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的,并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試,因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件就可以用少量代表性的測試數(shù)據(jù)取得較好的測試結(jié)果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類。

1)有效等價類

是指對于程序的規(guī)格說明來說是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價類可檢驗程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。

2)無效等價類

與有效等價類的定義恰巧相反。無效等價類指對程序的規(guī)格說明是不合理的或無意義的輸入數(shù)據(jù)所構(gòu)成的集合。對于具體的問題,無效等價類至少應有一個,也可能有多個。

設計測試用例時,要同時考慮這兩種等價類。因為軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗,這樣的測試才能確保軟件具有更高的可靠性。

2023/2/41303.劃分等價類的標準:1)完備測試、避免冗余;

2)劃分等價類重要的是:集合的劃分,劃分為互不相交的一組子集,而子集的并是整個集合;

3)并是整個集合:完備性;

4)子集互不相交:保證一種形式的無冗余性;

5)同一類中標識(選擇)一個測試用例,同一等價類中,往往處理相同,相同處理映射到"相同的執(zhí)行路徑"。2023/2/41314.劃分等價類的方法2)在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類;

3)在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。

4)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。

例:輸入條件說明學歷可為:???、本科、碩士、博士四種之一,則分別取這四種這四個值作為四個有效等價類,另外把四種學歷之外的任何學歷作為無效等價類。

5)在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則);

6)在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。

1)在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,則可以確立一個有效等價類和兩個無效等價類。如:輸入值是學生成績,范圍是0~100;

2023/2/41325.設計測試用例

在確立了等價類后,可建立等價類表,列出所有劃分出的等價類輸入條件:有效等價類、無效等價類,然后從劃分出的等價類中按以下三個原則設計測試用例:

1)為每一個等價類規(guī)定一個唯一的編號;

2)設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止;

3)設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。

2023/2/4133實戰(zhàn)演習1.某程序規(guī)定:“輸入三個整數(shù)a、b、c分別作為三邊的邊長構(gòu)成三角形。通過程序判定所構(gòu)成的三角形的類型,當此三角形為一般三角形、等腰三角形及等邊三角形時,分別作計算…

”。用等價類劃分方法為該程序進行測試用例設計。(三角形問題的復雜之處在于輸入與輸出之間的關(guān)系比較復雜。)

分析題目中給出和隱含的對輸入條件的要求:

(1)整數(shù)

(2)三個數(shù)

(3)非零數(shù)

(4)正數(shù)

(5)兩邊之和大于第三邊

(6)等腰

(7)等邊

如果a、b、c滿足條件(1)~(4),則輸出下列四種情況之一:

1)如果不滿足條件(5),則程序輸出為"非三角形"。

2)如果三條邊相等即滿足條件(7),則程序輸出為"等邊三角形"。

3)如果只有兩條邊相等、即滿足條件(6),則程序輸出為"等腰三角形"。

4)如果三條邊都不相等,則程序輸出為"一般三角形"。

列出等價類表并編號

2023/2/4134覆蓋有效等價類的測試用例3

45(1)-(7)445

(1)-(7)(8)455

(1)-(7)(9)545

(1)--(7)(10)444

(1)--(7)(11)abc覆蓋等價類號碼2023/2/4135覆蓋無效等價類的測試用例:2023/2/4136

練習:2.設有一個檔案管理系統(tǒng),要求用戶輸入以年月表示的日期。假設日期限定在1990年1月~2049年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后2位表示月?,F(xiàn)用等價類劃分法設計測試用例,來測試程序的"日期檢查功能"。2023/2/41371)劃分等價類并編號,下表等價類劃分的結(jié)果輸入等價類有效等價類無效等價類日期的類型及長度①6位數(shù)字字符②有非數(shù)字字符③少于6位數(shù)字字符④多于6位數(shù)字字符年份范圍⑤在1990~2049之間⑥小于1990⑦大于2049月份范圍⑧在01~12之間⑨等于00⑩大于122023/2/41382)設計測試用例,以便覆蓋所有的有效等價類在表中列出了3個有效等價類,編號分別為①、⑤、⑧,設計的測試用例如下:

測試數(shù)據(jù)

期望結(jié)果

覆蓋的有效等價類

200211

輸入有效

①、⑤、⑧

3)為每一個無效等價類設計一個測試用例,設計結(jié)果如下:

測試數(shù)據(jù)

期望結(jié)果

覆蓋的無效等價類

95June

無效輸入

20036

無效輸入

2001006

無效輸入

198912

無效輸入

200401

無效輸入

200100

無效輸入

200113

無效輸入

2023/2/41393.NextDate函數(shù)包含三個變量:month、day和year,函數(shù)的輸出為輸入日期后一天的日期。例如,輸入為2006年3月7日,則函數(shù)的輸出為2006年3月8日。要求輸入變量month、day和year均為整數(shù)值,并且滿足下列條件:

①1≤month≤12

②1≤day≤31

③1920≤year≤2050

1)有效等價類為:

M1={月份:1≤月份≤12}

D1={日期:1≤日期≤31}

Y1={年:1812≤年≤2012}

2)若條件①~③中任何一個條件失效,則NextDate函數(shù)都會產(chǎn)生一個輸出,指明相應的變量超出取值范圍,比如"month的值不在1-12范圍當中"。顯然還存在著大量的year、month、day的無效組合,NextDate函數(shù)將這些組合作統(tǒng)一的輸出:"無效輸入日期"。其無效等價類為:

M2={月份:月份<1}

M3={月份:月份>12}

D2={日期:日期<1}

D3={日期:日期>31}

Y2={年:年<1812}

Y3={年:年>2012}

弱一般等價類測試用例

月份

日期

預期輸出

6

15

1912

1912年6月16日

強一般等價類測試用例同弱一般等價類測試用例

注:弱--有單缺陷假設;健壯--考慮了無效值

2023/2/4140

(一)弱健壯等價類測試

用例ID

月份

日期

預期輸出

WR1

6

15

1912

1912年6月16日

WR2

-1

15

1912

月份不在1~12中

WR3

13

15

1912

月份不在1~12中

WR4

6

-1

1912

日期不在1~31中

WR5

6

32

1912

日期不在1~31中

WR6

6

15

1811

年份不在1812~2012中

WR7

6

15

2013

年份不在1812~2012中

(二)強健壯等價類測試

用例ID

月份

日期

預期輸出

SR1

-1

15

1912

月份不在1~12中

SR2

6

-1

1912

日期不在1~31中

SR3

6

15

1811

年份不在1812~2012中

SR4

-1

-1

1912

兩個無效一個有效

SR5

6

-1

1811

兩個無效一個有效

SR6

-1

15

1811

兩個無效一個有效

SR7

-1

-1

1811

三個無效

2023/2/4141黑盒測試方法邊界值分析等價類規(guī)范導出錯誤猜測基于故障的測試因果圖法2023/2/4142規(guī)范導出根據(jù)相關(guān)規(guī)范描述來設計測試用例,每個測試用例被用來測試一個或多個規(guī)范陳述句?;旧鲜歉鶕?jù)陳述規(guī)范所用語句的順序來相應地為被測斷垣設計測試用例。這個方法在用例和規(guī)范陳述之間做到了很好的對應。加強了規(guī)范的可讀性和可維護性。是一種正向的測試技術(shù),需要逆向的測試技術(shù)對測試用例進行補充。例如:規(guī)范輸入一個大于等于0的實數(shù),返回正的平方根輸入一個小于0的實數(shù),顯示錯誤信息“平方根非法-輸入值小于0”Print_Line庫函數(shù)可以用來輸出錯誤信息2023/2/4143規(guī)范導出測試用例Testcase1:輸入4,輸出2Testcase2:輸入-1,輸出“平方根非法-輸入值小于0”2023

溫馨提示

  • 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

提交評論