單元測試及白盒測試技術(shù)_第1頁
單元測試及白盒測試技術(shù)_第2頁
單元測試及白盒測試技術(shù)_第3頁
單元測試及白盒測試技術(shù)_第4頁
單元測試及白盒測試技術(shù)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單元測試與白盒測試技術(shù)Thursday,February2,2023內(nèi)容介紹單元測試介紹單元測試設(shè)計單元測試用例設(shè)計單元測試執(zhí)行單元測試評估實施時的原則和步驟單元測試中的白盒測試設(shè)計內(nèi)容介紹單元測試介紹單元測試設(shè)計單元測試用例設(shè)計單元測試執(zhí)行單元測試評估實施時的原則和步驟單元測試中的白盒測試設(shè)計單元測試介紹單元測試是對軟件基本組成單元進(jìn)行測試?;締卧梢允呛瘮?shù),類,類的方法,也可以是任何具有明確的功能、規(guī)格定義、明確的接口定義、并且其規(guī)模一般比較小。單元測試介紹(與系統(tǒng)測試相比較)單元測試的重點在于發(fā)現(xiàn)程序設(shè)計或?qū)崿F(xiàn)的邏輯錯誤,基本輸入白盒測試范疇。使問題及早暴露,便于問題的定位解決。允許多個測試單元的測試并行展開。(與集成測試相比較)單元測試的測試對象是對應(yīng)詳細(xì)設(shè)計中所描述的設(shè)計單位。而集成測試的對象是在概要設(shè)計中規(guī)劃的模塊及這些模塊間的組合。單元測試介紹單元測試過程分為計劃,設(shè)計,實現(xiàn),執(zhí)行,評估等幾個步驟。單元測試介紹單元測試過程分為計劃,設(shè)計,實現(xiàn),執(zhí)行,評估等幾個步驟計劃:確定測試需求,制定測試策略,確定測試所用資源(人力,設(shè)備),創(chuàng)建測試任務(wù)的時間表。設(shè)計:設(shè)計單元測試模型,制定測試方案,確認(rèn)并結(jié)構(gòu)化測試過程。實現(xiàn)單元測試:參考測試模型和測試方案,制定具體的測試用例,創(chuàng)建可重用的測試腳本。執(zhí)行:根據(jù)單元測試的方案,用例對單元進(jìn)行測試,驗證測試的結(jié)果并記錄測試過程中出現(xiàn)的缺陷。評估:對單元測試的結(jié)果進(jìn)行評估。主要進(jìn)行測試完備性評估。內(nèi)容介紹單元測試介紹單元測試設(shè)計單元測試用例設(shè)計單元測試執(zhí)行單元測試評估實施時的原則和步驟單元測試中的白盒測試設(shè)計2:單元測試設(shè)計主要包括:單元測試模型的設(shè)計。測試項目的設(shè)計。2.1單元測試模型的設(shè)計(1)構(gòu)造單元測試模型的主要工作構(gòu)造最小運行調(diào)度系統(tǒng):驅(qū)動模塊模擬實現(xiàn)單元接口:樁模塊模擬生成測試數(shù)據(jù)或狀態(tài),為單元運行準(zhǔn)備動態(tài)環(huán)境。還需要考慮對測試過程的支持測試結(jié)果的保留對測試覆蓋率的紀(jì)錄測試過程的自動化2.1單元測試模型的設(shè)計(2)單元測試環(huán)境示意圖驅(qū)動模塊被測單元樁模塊1樁模塊2樁模塊3測試用例測試結(jié)果2.1單元測試模型的設(shè)計(3)驅(qū)動模塊一般只是一個接受測試數(shù)據(jù),并把數(shù)據(jù)傳遞給被測模塊,然后打印相關(guān)結(jié)果的“主程序”??梢钥紤]自動獲取測試數(shù)據(jù)的功能。樁模塊替代那些被調(diào)用的模塊,作少量的數(shù)據(jù)操作。保存或打印入口處的信息。插裝代碼用以紀(jì)錄單元測試中覆蓋率的信息。如果對某個單元的驅(qū)動模塊和樁模塊很難測試,那么可以考慮把這個單元的測試推遲到集成測試階段。2.2測試項目的設(shè)計(1)測試項目是測試用例的總則,根據(jù)測試需求設(shè)計測試點。設(shè)計測試項目的時候,可以從功能覆蓋和代碼覆蓋兩個角度進(jìn)行考慮。2.2測試項目的設(shè)計(2)功能覆蓋屬于黑盒測試的范疇。指出測試用例是否已經(jīng)覆蓋了程序應(yīng)該提供的功能。功能覆蓋率是考核單元測試質(zhì)量的一個關(guān)鍵指標(biāo)。2.2測試項目的設(shè)計(3)代碼覆蓋(邏輯覆蓋)是考核單元測試質(zhì)量的一個關(guān)鍵指標(biāo)。是常用的白盒測試方法,包括:語句覆蓋:設(shè)計若干測試用例,使得每一個可執(zhí)行語句至少執(zhí)行一次。判斷覆蓋:設(shè)計若干測試用例,使得程序中每個判斷的取真分支和取假分支都至少執(zhí)行一次。條件覆蓋:設(shè)計若干測試用例,運行被測試程序,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。2.2測試項目的設(shè)計(4)代碼覆蓋(2)對于比較復(fù)雜的覆蓋標(biāo)準(zhǔn),難以進(jìn)行100%的覆蓋測試。此時一般使用測試率表示。不同的測試對象可以設(shè)定不同的測試覆蓋率。比如:核心代碼:100%共享資源庫:100%非核心代碼:90%覆蓋率的統(tǒng)計可以用插裝代碼進(jìn)行??梢杂泄ぞ哌M(jìn)行自動化插裝代碼。內(nèi)容介紹單元測試介紹單元測試設(shè)計單元測試用例設(shè)計單元測試執(zhí)行單元測試評估實施時的原則和步驟單元測試中的白盒測試設(shè)計3單元測試用例設(shè)計3.1單元測試用例編寫原則3.2單元測試用例設(shè)計方法3.1單元測試用例編寫原則(1)單元測試用例設(shè)計的根據(jù)是軟件的設(shè)計說明書。完整的單元測試需要測試:被測單元作了它應(yīng)該做的事情。被測單元沒有作不希望它作的事情。設(shè)計用例可以按照5個基本步驟進(jìn)行。3.1單元測試用例編寫原則(2)基本步驟如下:為系統(tǒng)運行起來而設(shè)計用例單元測試用例中,第一個測試用例一般是使用最簡單的方法執(zhí)行被測單元。當(dāng)這個用例可以被執(zhí)行時,說明測試環(huán)境和測試單元是可用的。為正向測試而設(shè)計用例閱讀相關(guān)的設(shè)計說明,每一個測試用例就是通過有針對性地測試說明書中的一項或者多項內(nèi)容。用以驗證設(shè)計說明書所對應(yīng)的功能或性能能否實現(xiàn)。3.1單元測試用例編寫原則(3)為逆向測試而設(shè)計用例用來驗證被測單元沒有做不應(yīng)該做的事情。主要依靠錯誤猜測的方法進(jìn)行測試用例的構(gòu)造。為滿足特殊要求而設(shè)計用例從系統(tǒng)的性能、安全性、保密性的角度來設(shè)計測試用例。為代碼覆蓋而設(shè)計用例為了保證特定的測試覆蓋目標(biāo),可能還需要補充一些測試用例。3.2單元測試用例設(shè)計方法常用的設(shè)計方法有:規(guī)范(規(guī)格)導(dǎo)出法等價類劃分法邊界值分析法狀態(tài)轉(zhuǎn)移測試法分支測試法條件測試法數(shù)據(jù)定義-使用測試法內(nèi)部邊界值測試法錯誤猜測法單元測試用例-規(guī)范導(dǎo)出法(1)根據(jù)相應(yīng)的規(guī)范描述來設(shè)計測試用例。每個測試用例被用來測試一個或多個規(guī)范陳述句?;旧鲜歉鶕?jù)陳述規(guī)范所用語句的順序來相應(yīng)地為被測斷垣設(shè)計測試用例。這個方法在用例和規(guī)范陳述之間做到了很好的對應(yīng)。加強了規(guī)范的可讀性和可維護(hù)性。是一種正向的測試技術(shù),需要逆向的測試技術(shù)對測試用例進(jìn)行補充。當(dāng)規(guī)范中的某種情形需要不同的處理的時候,每個陳述句可能需要多個用例。單元測試用例-規(guī)范導(dǎo)出法(2)例子:計算平方根的函數(shù)的規(guī)范(1)輸入:實數(shù);輸出:實數(shù)規(guī)范:當(dāng)輸入一個0或比0大的數(shù)的時候,返回其正平方根;當(dāng)輸入一個小于0的數(shù)時,顯示錯誤信息“平方根非法-輸入值小于0”并返回0;庫函數(shù)Print-Line可以用來輸出錯誤信息。單元測試用例-規(guī)范導(dǎo)出法(3)由規(guī)范的3個陳述,可以得到兩個用例用例1:輸入4,輸出應(yīng)該為2。對應(yīng)于第一個陳述(當(dāng)輸入一個0或比0大的數(shù)時…)用例2:輸入-1,輸出0,并顯示錯誤提示信息。對應(yīng)于第二,第三個陳述(當(dāng)輸入一個小于0的數(shù)時,顯示錯誤信息“平方根非法-輸入值小于0”并返回0;庫函數(shù)Print-Line可以用來輸出錯誤信息。)單元測試用例-等價類劃分法(1)等價類劃分法是一種正式的測試用例設(shè)計方法.基于對被測單元的輸入、輸出所作的劃分。對每一個劃分中的所有輸入、被測單元有等價的行為。假設(shè)某一特定的等價類中的所有值對于測試目的來說是等價的。那么可以在每個等價類中尋找一個值作為測試用例。當(dāng)軟件比較復(fù)雜的時候,等價類的劃分也很復(fù)雜?;旧鲜且环N正向測試技術(shù)。單元測試用例-等價類劃分法(2)對于前面的例子:可以考慮作出如下劃分輸入(i)<0和(ii)>0。輸出(a)>=0和(b)Error。測試用例有兩個:輸入4,輸出2。對應(yīng)于(ii)和b輸入-10,輸出0和錯誤提示。對應(yīng)于(i)和(b)。單元測試用例-等價類劃分法(3)實際上,通常復(fù)雜程度的程序就難以找到嚴(yán)格的等價類。如果考慮白盒的方法,等價類的劃分準(zhǔn)則可以是:具有相同(類似)的執(zhí)行路徑的輸入。在例子中,如果對于輸入大于0的時的處理有不同的方法,那么我們把輸入大于0的劃分繼續(xù)細(xì)化。單元測試用例-邊界值分析法(1)使用等價類測試方法相同的等價類劃分。只是邊界值分析假定錯誤更多地存在于劃分的邊界上,因此在邊界上以及兩側(cè)的情況設(shè)計測試用例。邊界值方法在軟件變得復(fù)雜的時候會變得不實用。對于非向量類型的值(比如枚舉值),邊界分析沒有意義。有些邊界值在軟件的實際使用中很少出現(xiàn)。由這樣的用例找出的錯誤意義比較小。單元測試用例-邊界值分析法(2)對于前面的例子:劃分(ii)的邊界為0和無窮大;劃分(i)的邊界為最小負(fù)實數(shù)和0;劃分a有一個邊界0。由此得到以下用例:輸入{最小負(fù)實數(shù)}輸入{絕對值很小的負(fù)數(shù)}輸入0輸入{絕對值很小的實數(shù)}輸入{最大正實數(shù)}單元測試用例-狀態(tài)轉(zhuǎn)移測試法適用于以狀態(tài)機作為模型或設(shè)計為狀態(tài)的單元模塊。通過能導(dǎo)致狀態(tài)遷移的事件來測試狀態(tài)之間的轉(zhuǎn)換??梢栽O(shè)計逆向測試用例。比如狀態(tài)和事件的非法組合。單元測試用例-分支測試法(1)根據(jù)單元中控制流分支或判斷點來設(shè)計測試用例。通常用來達(dá)到一定的覆蓋率。“黑盒”形式的分支測試“猜測”那里有分支,并設(shè)計相應(yīng)的用例去測試該分支。類似于等價類劃分?!鞍缀小毙问饺缦拢航o定一個結(jié)構(gòu)化的規(guī)格說明,說明單元中的控制流,就可以設(shè)計測試用例來測試其中的分支。單純使用功能規(guī)格說明會導(dǎo)致分支遺漏設(shè)計分支測試的時候,不應(yīng)該忽略整體的功能。單元測試用例-分支測試法(2)對于前面的例子,假設(shè)有如下的測試用例:1、輸入4;2、輸入-10。對于這個單元,有四種不同的實現(xiàn)ifinput<0then callprint_line“Squarerooterror-illegalnegativeinput” return0else calculatetheanswer returntheanswerend_if 實現(xiàn)1單元測試用例-分支測試法(3)例子的不同實現(xiàn)ifinput<0then callprint_line“Squarerooterror-illegalnegativeinput” return0elseifinput==0thenreturn0elsecalculatetheanswerreturntheanswerend_if 實現(xiàn)2callco-processortocalculatetheanswerexamineco-processorstatusregistersifstatus=errorthen callprint_line“Squarerooterror-illegalnegativeinput” return0else returntheanswerend_if 實現(xiàn)3單元測試用例-分支測試法(3)例子的不同實現(xiàn)(續(xù))ifinput<0then callprint_line“Squarerooterror-illegalnegativeinput” return0elseifinput==0thenreturn0elsecalculatethefirstapproximationLOOP calculateerror EXIT_LOOPWHENerror<desiredaccuracy adjustapproximationEND_LOOPreturntheanswerend_if 實現(xiàn)4單元測試用例-條件測試法(1)條件測試法的目標(biāo)是測試在每個邏輯條件的單個成分及他們的組合情況下,程序是正確的??梢允褂枚鄠€用例來達(dá)到一定的覆蓋率。比如:MCDC(ModifiedConditionDecisionCoverage)白盒測試技術(shù)。比較適合于有結(jié)構(gòu)化規(guī)格說明的單元。它提供了一個全面的測試,包括復(fù)雜條件,編程和設(shè)計錯誤多發(fā)區(qū)域,以及分支測試不能達(dá)到的區(qū)域。單元測試用例-條件測試法(2)考慮前面的例子:ifinput<0then callprint_line“Squarerooterror-illegalnegativeinput” return0elseifinput==0thenreturn0elsecalculatethefirstapproximationLOOP calculateerror EXIT_LOOPWHEN(error<desiredaccuracy)or(iterations=10) adjustapproximationEND_LOOPreturntheanswerend_if 實現(xiàn)4單元測試用例-條件測試法(3)測試用例就要證明error<desiredaccuracy和iterations=10都能夠成立。測試用例1:10次迭代,每次誤差都大于期望誤差。顯示條件iterations=10單獨滿足。測試用例2:2次迭代后,誤差小于期望誤差。error<desiredaccuracy單獨滿足。單元測試用例-數(shù)據(jù)流法(1)又稱為數(shù)據(jù)定義-使用測試法。數(shù)據(jù)定義是指數(shù)據(jù)項被賦值的地方,數(shù)據(jù)使用是指數(shù)據(jù)項被讀或使用的地方。目的是設(shè)計測試用例,以驅(qū)動執(zhí)行數(shù)據(jù)定義和使用之間的路徑。用例設(shè)計的第一步是列出所有的數(shù)據(jù)定義使用對。然后根據(jù)定義-使用對來設(shè)計相應(yīng)的用例。單元測試用例-數(shù)據(jù)流法(2)前面的例子定義使用1InputroutineBythemathsco-processor2Co-processorstatusTestforstatus=error3ErrormessageByPrint_Line4RETURN0Bythecallingunit5Answerbyco-processorRETURNtheanswer6RETURNtheanswerBythecallingunit單元測試用例-數(shù)據(jù)流法(3)測試用例設(shè)計如下:測試用例1:輸入4,返回2。測試定義-使用對1,2,5,6。測試用例2:輸入-10,返回0,輸出“平方根錯誤…”。測試定義使用對1,2,3,4。單元測試用例-內(nèi)部邊界值法(1)大多數(shù)情況下,可以從單元的功能規(guī)格說明中導(dǎo)出等價類和邊界值測試。但是,在實現(xiàn)的時候可能會引入其他的邊界。測試需要增加新的等價類。前面的例子中,如果從效率上考慮,可能會根據(jù)輸入的大小,調(diào)用不同的處理方法。此時,需要按照單元內(nèi)部的結(jié)構(gòu)再細(xì)化等價類。輸入的等價類分為:input<0;input>=0&&input<100;input>=100單元測試用例-內(nèi)部邊界值法(2)if(input>=100)then usemethod1tocalculatetherootelse usemethod2tocalculatetheroot.錯誤猜測法基于經(jīng)驗和其他一些測試技術(shù)。在經(jīng)驗的基礎(chǔ)上,測試者猜測錯誤的類型及在特定的軟件中錯誤發(fā)生的位置,類型,并設(shè)計測試用例去發(fā)現(xiàn)他們??赡苄枰鶕?jù)經(jīng)驗,得到一個可能錯誤列表。然后根據(jù)這個列表去生成用例。純粹依賴于經(jīng)驗。一般只能作為輔助方法。內(nèi)容介紹單元測試介紹單元測試設(shè)計單元測試用例設(shè)計單元測試執(zhí)行單元測試評估實施時的原則和步驟單元測試中的白盒測試設(shè)計4單元測試的執(zhí)行(1)測試中模擬運行環(huán)境的程序執(zhí)行精確性和測試結(jié)論有關(guān)。在單元程序測試的時候,需要考慮所有可能影響單元測試結(jié)果的因素。這些因素包括:隱性輸入,關(guān)聯(lián)系統(tǒng)??梢钥紤]使用一些工具來完成設(shè)置。4單元測試的執(zhí)行自動測試可以大大提高測試執(zhí)行的效率,便于回歸測試??梢允褂蒙虡I(yè)化的測試工具。也可以考慮自行開發(fā)一些工具。自動測試通過預(yù)定義的腳本文件將測試用例逐條放入文件。由驅(qū)動程序讀取文件,驅(qū)動被測單元,將得到的結(jié)果存放在文件中(或者自動比較)。和界面有關(guān)的測試,可以通過Record&Replay工具進(jìn)行。但是要注意模塊化。內(nèi)容介紹單元測試介紹單元測試設(shè)計單元測試用例設(shè)計單元測試執(zhí)行單元測試評估實施時的原則和步驟單元測試中的白盒測試設(shè)計5單元測試的評估單元測試完成后,需要對測試效果進(jìn)行評估:測試完備性評估:檢查測試過程中是否已經(jīng)執(zhí)行了所有的測試用例。代碼覆蓋率評估:根據(jù)覆蓋率工具提供的覆蓋情況進(jìn)行評估??赡芤驗槟承┰蚴沟酶采w率達(dá)不到要求。不可能路徑和條件不可達(dá)的或者冗余的代碼。不充分的測試用例。為了覆蓋率而拼湊測試用例是低效率的。內(nèi)容介紹單元測試介紹單元測試設(shè)計測試用例應(yīng)用方法單元測試執(zhí)行單元測試評估實施時的原則和步驟單元測試中的白盒測試設(shè)計6實施時的原則和步驟(1)總則:排除測試的隨意性,使得測試方法化,流程化精心制定測試計劃嚴(yán)格評審測試計劃嚴(yán)格執(zhí)行測試計劃系統(tǒng)分析測試結(jié)果并提交報告。6實施時的原則和步驟(2)制定測試計劃/方案重點是測試用例的設(shè)計,必須按照有關(guān)設(shè)計方法進(jìn)行用例設(shè)計。白盒測試法中的邏輯覆蓋測試:語句覆蓋,判斷覆蓋,判定-條件覆蓋,條件-組合覆蓋、路徑覆蓋,…黑盒測試中的等價類劃分法,邊界值分析法,錯誤推測方法等。6實施時的原則和步驟(3)測試計劃評審由測試人員進(jìn)行,開發(fā)人員配合,對測試計劃進(jìn)行評審和修改,并最后達(dá)成最終計劃。評審內(nèi)容包括:方法性,合理性,全面性和最優(yōu)性。測試計劃執(zhí)行由測試操作人員按照指定的測試計劃流程化地進(jìn)行。及時反饋問題。保證按照測試計劃要求實施。當(dāng)測試過程比較規(guī)整化的時候,可以考慮由開發(fā)人員自身執(zhí)行。6實施時的原則和步驟(4)測試結(jié)果分析并提交報告測試人員和開發(fā)人員共同對測試結(jié)果進(jìn)行分析,歸類,給出錯誤原因和解決方法,對結(jié)果進(jìn)行報告和歸檔。測試文檔報告包含如下內(nèi)容:單元名稱(id)和描述;單元的目的和功能簡單描述;單元和其他單元的依賴關(guān)系;測試用例測試環(huán)境、過程和步驟地描述實際測試結(jié)果錯誤跟蹤分析測試人員和完成時間測試評審其它情況內(nèi)容介紹單元測試介紹單元測試設(shè)計單元測試用例設(shè)計單元測試執(zhí)行單元測試評估實施時的原則和步驟單元測試中的白盒測試設(shè)計7單元測試中的白盒測試設(shè)計白盒測試主要檢查程序的內(nèi)部結(jié)構(gòu)、邏輯、循環(huán)和路徑。常用方法有:邏輯覆蓋和基本路徑覆蓋按照覆蓋目標(biāo)不同,邏輯覆蓋有可以分為:語句覆蓋,判定覆蓋,判定-條件覆蓋、條件組合覆蓋以及路徑覆蓋。白盒測試的模塊例子(1)程序流程框圖a(A>1)and(B=0)(A=2)or(X>0)X=X+1X=X/AFFTTbcde白盒測試的模塊例子(2)4個可能的路徑以及應(yīng)該滿足的表達(dá)式L1(ace):MandNL2(abd):~Mand~NL3(abe):~MandNL4(acd):Mand~N其中M={(A>1)and(B=0)};

N={(A=2)or(X/A>1)}語句覆蓋語句覆蓋:就是指設(shè)計若干個測試用例,使得用這些測試用例執(zhí)行測試之后使得每一條可執(zhí)行語句至少被執(zhí)行一遍。對于前面的例子,L1包含了所有的可執(zhí)行語句,所以根據(jù)L1來設(shè)計測試用例就可以達(dá)到100%語句覆蓋。用例如下:{input(A,B,x);output(A,B,x)}={(2,0,4),(2,0,3)}語句覆蓋的不足語句覆蓋可以保證檢驗了每一個可執(zhí)行語句。但是不能保證用于控制的邏輯運算得到充分的檢驗。比如第一個邏輯運算中的and錯寫成了or,最后的結(jié)果仍然成立。語句覆蓋是最弱的邏輯覆蓋。if(A>1)and(B=0) x=x/A;if(A=2)or(X>0) x=x+1;判斷覆蓋又稱為分支覆蓋:設(shè)計若干個測試用例,執(zhí)行測試,使得被測單元中的每個判斷的取值TRUE和FALSE分支至少經(jīng)歷一次。對于判斷(A>1)and(B=0)和(A=2)or(X>0)分別測試其true,false分支??梢赃x擇L1,L2組合或者L3,L4組合。對于L1,L2組合,L1:{(2,0,4),(2,0,3)}L2:{(1,0,-1),(1,0,-1)};對于L3,L4組合,L1:{(2,1,1),(2,1,2)}L2:{(3,0,3),(3,1,1)};判斷覆蓋的不足復(fù)合判斷中,某個子判斷的錯誤不一定引起整個判斷的值的改變。這樣的錯誤可能被漏掉。比如:使用上面定義的測試的時候,如果第二個判斷中X>0成為了X<10,最后的結(jié)果還是一樣的。兩組測試用例都不能測試這些值。彌補這個缺陷的是條件覆蓋。條件覆蓋(1)設(shè)計若干個用例,執(zhí)行測試,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。條件包括:A>1:T1 notA>1:F1B=0:T2 notB=0:F2A=2:T3 notA=2:F3x>1:T4 notx>1:F4if(A>1)and(B=0) x=x/A;if(A=2)or(X>0) x=x+1;條件覆蓋(2)下面的兩組測試用例都滿足條件覆蓋要求:測試用例通過路徑條件取值覆蓋分支{(1,0,3),(1,0,4)}abe(L3)F1,T2,F3,F4b,e{(2,1,1),(2,1,2)}abe(L3)T1,F2,T3,F4b,e測試用例通過路徑條件取值覆蓋分支{(2,0,4),(2,0,3)}L1T1,T2,T3,T4c,e{(1,0,1),(1,0,1)}L2F1,T2,F3,F4b,d{(2,1,1),(2,1,2)}L3T1,F2,T3,F4b,e條件覆蓋(3)不足之處:雖然可以保證每個條件都取不同的值,但是不能保證每個判斷都取不同的值。有時甚至不能滿足分支覆蓋的要求。比如前面的第一組用例。使用判斷-條件覆蓋來彌補這個不足。判斷-條件覆蓋(1)判斷-條件覆蓋就是設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷的所有可能判斷結(jié)果至少執(zhí)行一次。測試用例的例子:測試用例通過路徑條件取值覆蓋分支{(2,0,4),(2,0,3)}ace(L1)T1,T2,T3,T4c,e{(2,1,1),(2,1,2)}abd(L2)F1,F2,F3,F4b,d判斷-條件覆蓋(2)判斷-條件覆蓋的不足之處:某些條件的值錯誤的時候,判斷的值依舊可能是正確的。此時,有關(guān)這個條件的錯誤可能沒有被發(fā)現(xiàn)。(A>1)AND(B=0),如果第一個條件不成立,那么不管

溫馨提示

  • 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

提交評論