![單元測試及白盒測試技術(shù)_第1頁](http://file4.renrendoc.com/view/87265e7ad87b2d9e20850974617f8e51/87265e7ad87b2d9e20850974617f8e511.gif)
![單元測試及白盒測試技術(shù)_第2頁](http://file4.renrendoc.com/view/87265e7ad87b2d9e20850974617f8e51/87265e7ad87b2d9e20850974617f8e512.gif)
![單元測試及白盒測試技術(shù)_第3頁](http://file4.renrendoc.com/view/87265e7ad87b2d9e20850974617f8e51/87265e7ad87b2d9e20850974617f8e513.gif)
![單元測試及白盒測試技術(shù)_第4頁](http://file4.renrendoc.com/view/87265e7ad87b2d9e20850974617f8e51/87265e7ad87b2d9e20850974617f8e514.gif)
![單元測試及白盒測試技術(shù)_第5頁](http://file4.renrendoc.com/view/87265e7ad87b2d9e20850974617f8e51/87265e7ad87b2d9e20850974617f8e515.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
單元測試與白盒測試技術(shù)Thursday,February2,2023內(nèi)容介紹單元測試介紹單元測試設(shè)計(jì)單元測試用例設(shè)計(jì)單元測試執(zhí)行單元測試評(píng)估實(shí)施時(shí)的原則和步驟單元測試中的白盒測試設(shè)計(jì)內(nèi)容介紹單元測試介紹單元測試設(shè)計(jì)單元測試用例設(shè)計(jì)單元測試執(zhí)行單元測試評(píng)估實(shí)施時(shí)的原則和步驟單元測試中的白盒測試設(shè)計(jì)單元測試介紹單元測試是對(duì)軟件基本組成單元進(jìn)行測試?;締卧梢允呛瘮?shù),類,類的方法,也可以是任何具有明確的功能、規(guī)格定義、明確的接口定義、并且其規(guī)模一般比較小。單元測試介紹(與系統(tǒng)測試相比較)單元測試的重點(diǎn)在于發(fā)現(xiàn)程序設(shè)計(jì)或?qū)崿F(xiàn)的邏輯錯(cuò)誤,基本輸入白盒測試范疇。使問題及早暴露,便于問題的定位解決。允許多個(gè)測試單元的測試并行展開。(與集成測試相比較)單元測試的測試對(duì)象是對(duì)應(yīng)詳細(xì)設(shè)計(jì)中所描述的設(shè)計(jì)單位。而集成測試的對(duì)象是在概要設(shè)計(jì)中規(guī)劃的模塊及這些模塊間的組合。單元測試介紹單元測試過程分為計(jì)劃,設(shè)計(jì),實(shí)現(xiàn),執(zhí)行,評(píng)估等幾個(gè)步驟。單元測試介紹單元測試過程分為計(jì)劃,設(shè)計(jì),實(shí)現(xiàn),執(zhí)行,評(píng)估等幾個(gè)步驟計(jì)劃:確定測試需求,制定測試策略,確定測試所用資源(人力,設(shè)備),創(chuàng)建測試任務(wù)的時(shí)間表。設(shè)計(jì):設(shè)計(jì)單元測試模型,制定測試方案,確認(rèn)并結(jié)構(gòu)化測試過程。實(shí)現(xiàn)單元測試:參考測試模型和測試方案,制定具體的測試用例,創(chuàng)建可重用的測試腳本。執(zhí)行:根據(jù)單元測試的方案,用例對(duì)單元進(jìn)行測試,驗(yàn)證測試的結(jié)果并記錄測試過程中出現(xiàn)的缺陷。評(píng)估:對(duì)單元測試的結(jié)果進(jìn)行評(píng)估。主要進(jìn)行測試完備性評(píng)估。內(nèi)容介紹單元測試介紹單元測試設(shè)計(jì)單元測試用例設(shè)計(jì)單元測試執(zhí)行單元測試評(píng)估實(shí)施時(shí)的原則和步驟單元測試中的白盒測試設(shè)計(jì)2:單元測試設(shè)計(jì)主要包括:單元測試模型的設(shè)計(jì)。測試項(xiàng)目的設(shè)計(jì)。2.1單元測試模型的設(shè)計(jì)(1)構(gòu)造單元測試模型的主要工作構(gòu)造最小運(yùn)行調(diào)度系統(tǒng):驅(qū)動(dòng)模塊模擬實(shí)現(xiàn)單元接口:樁模塊模擬生成測試數(shù)據(jù)或狀態(tài),為單元運(yùn)行準(zhǔn)備動(dòng)態(tài)環(huán)境。還需要考慮對(duì)測試過程的支持測試結(jié)果的保留對(duì)測試覆蓋率的紀(jì)錄測試過程的自動(dòng)化2.1單元測試模型的設(shè)計(jì)(2)單元測試環(huán)境示意圖驅(qū)動(dòng)模塊被測單元樁模塊1樁模塊2樁模塊3測試用例測試結(jié)果2.1單元測試模型的設(shè)計(jì)(3)驅(qū)動(dòng)模塊一般只是一個(gè)接受測試數(shù)據(jù),并把數(shù)據(jù)傳遞給被測模塊,然后打印相關(guān)結(jié)果的“主程序”??梢钥紤]自動(dòng)獲取測試數(shù)據(jù)的功能。樁模塊替代那些被調(diào)用的模塊,作少量的數(shù)據(jù)操作。保存或打印入口處的信息。插裝代碼用以紀(jì)錄單元測試中覆蓋率的信息。如果對(duì)某個(gè)單元的驅(qū)動(dòng)模塊和樁模塊很難測試,那么可以考慮把這個(gè)單元的測試推遲到集成測試階段。2.2測試項(xiàng)目的設(shè)計(jì)(1)測試項(xiàng)目是測試用例的總則,根據(jù)測試需求設(shè)計(jì)測試點(diǎn)。設(shè)計(jì)測試項(xiàng)目的時(shí)候,可以從功能覆蓋和代碼覆蓋兩個(gè)角度進(jìn)行考慮。2.2測試項(xiàng)目的設(shè)計(jì)(2)功能覆蓋屬于黑盒測試的范疇。指出測試用例是否已經(jīng)覆蓋了程序應(yīng)該提供的功能。功能覆蓋率是考核單元測試質(zhì)量的一個(gè)關(guān)鍵指標(biāo)。2.2測試項(xiàng)目的設(shè)計(jì)(3)代碼覆蓋(邏輯覆蓋)是考核單元測試質(zhì)量的一個(gè)關(guān)鍵指標(biāo)。是常用的白盒測試方法,包括:語句覆蓋:設(shè)計(jì)若干測試用例,使得每一個(gè)可執(zhí)行語句至少執(zhí)行一次。判斷覆蓋:設(shè)計(jì)若干測試用例,使得程序中每個(gè)判斷的取真分支和取假分支都至少執(zhí)行一次。條件覆蓋:設(shè)計(jì)若干測試用例,運(yùn)行被測試程序,使得程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(zhí)行一次。2.2測試項(xiàng)目的設(shè)計(jì)(4)代碼覆蓋(2)對(duì)于比較復(fù)雜的覆蓋標(biāo)準(zhǔn),難以進(jìn)行100%的覆蓋測試。此時(shí)一般使用測試率表示。不同的測試對(duì)象可以設(shè)定不同的測試覆蓋率。比如:核心代碼:100%共享資源庫:100%非核心代碼:90%覆蓋率的統(tǒng)計(jì)可以用插裝代碼進(jìn)行。可以有工具進(jìn)行自動(dòng)化插裝代碼。內(nèi)容介紹單元測試介紹單元測試設(shè)計(jì)單元測試用例設(shè)計(jì)單元測試執(zhí)行單元測試評(píng)估實(shí)施時(shí)的原則和步驟單元測試中的白盒測試設(shè)計(jì)3單元測試用例設(shè)計(jì)3.1單元測試用例編寫原則3.2單元測試用例設(shè)計(jì)方法3.1單元測試用例編寫原則(1)單元測試用例設(shè)計(jì)的根據(jù)是軟件的設(shè)計(jì)說明書。完整的單元測試需要測試:被測單元作了它應(yīng)該做的事情。被測單元沒有作不希望它作的事情。設(shè)計(jì)用例可以按照5個(gè)基本步驟進(jìn)行。3.1單元測試用例編寫原則(2)基本步驟如下:為系統(tǒng)運(yùn)行起來而設(shè)計(jì)用例單元測試用例中,第一個(gè)測試用例一般是使用最簡單的方法執(zhí)行被測單元。當(dāng)這個(gè)用例可以被執(zhí)行時(shí),說明測試環(huán)境和測試單元是可用的。為正向測試而設(shè)計(jì)用例閱讀相關(guān)的設(shè)計(jì)說明,每一個(gè)測試用例就是通過有針對(duì)性地測試說明書中的一項(xiàng)或者多項(xiàng)內(nèi)容。用以驗(yàn)證設(shè)計(jì)說明書所對(duì)應(yīng)的功能或性能能否實(shí)現(xiàn)。3.1單元測試用例編寫原則(3)為逆向測試而設(shè)計(jì)用例用來驗(yàn)證被測單元沒有做不應(yīng)該做的事情。主要依靠錯(cuò)誤猜測的方法進(jìn)行測試用例的構(gòu)造。為滿足特殊要求而設(shè)計(jì)用例從系統(tǒng)的性能、安全性、保密性的角度來設(shè)計(jì)測試用例。為代碼覆蓋而設(shè)計(jì)用例為了保證特定的測試覆蓋目標(biāo),可能還需要補(bǔ)充一些測試用例。3.2單元測試用例設(shè)計(jì)方法常用的設(shè)計(jì)方法有:規(guī)范(規(guī)格)導(dǎo)出法等價(jià)類劃分法邊界值分析法狀態(tài)轉(zhuǎn)移測試法分支測試法條件測試法數(shù)據(jù)定義-使用測試法內(nèi)部邊界值測試法錯(cuò)誤猜測法單元測試用例-規(guī)范導(dǎo)出法(1)根據(jù)相應(yīng)的規(guī)范描述來設(shè)計(jì)測試用例。每個(gè)測試用例被用來測試一個(gè)或多個(gè)規(guī)范陳述句。基本上是根據(jù)陳述規(guī)范所用語句的順序來相應(yīng)地為被測斷垣設(shè)計(jì)測試用例。這個(gè)方法在用例和規(guī)范陳述之間做到了很好的對(duì)應(yīng)。加強(qiáng)了規(guī)范的可讀性和可維護(hù)性。是一種正向的測試技術(shù),需要逆向的測試技術(shù)對(duì)測試用例進(jìn)行補(bǔ)充。當(dāng)規(guī)范中的某種情形需要不同的處理的時(shí)候,每個(gè)陳述句可能需要多個(gè)用例。單元測試用例-規(guī)范導(dǎo)出法(2)例子:計(jì)算平方根的函數(shù)的規(guī)范(1)輸入:實(shí)數(shù);輸出:實(shí)數(shù)規(guī)范:當(dāng)輸入一個(gè)0或比0大的數(shù)的時(shí)候,返回其正平方根;當(dāng)輸入一個(gè)小于0的數(shù)時(shí),顯示錯(cuò)誤信息“平方根非法-輸入值小于0”并返回0;庫函數(shù)Print-Line可以用來輸出錯(cuò)誤信息。單元測試用例-規(guī)范導(dǎo)出法(3)由規(guī)范的3個(gè)陳述,可以得到兩個(gè)用例用例1:輸入4,輸出應(yīng)該為2。對(duì)應(yīng)于第一個(gè)陳述(當(dāng)輸入一個(gè)0或比0大的數(shù)時(shí)…)用例2:輸入-1,輸出0,并顯示錯(cuò)誤提示信息。對(duì)應(yīng)于第二,第三個(gè)陳述(當(dāng)輸入一個(gè)小于0的數(shù)時(shí),顯示錯(cuò)誤信息“平方根非法-輸入值小于0”并返回0;庫函數(shù)Print-Line可以用來輸出錯(cuò)誤信息。)單元測試用例-等價(jià)類劃分法(1)等價(jià)類劃分法是一種正式的測試用例設(shè)計(jì)方法.基于對(duì)被測單元的輸入、輸出所作的劃分。對(duì)每一個(gè)劃分中的所有輸入、被測單元有等價(jià)的行為。假設(shè)某一特定的等價(jià)類中的所有值對(duì)于測試目的來說是等價(jià)的。那么可以在每個(gè)等價(jià)類中尋找一個(gè)值作為測試用例。當(dāng)軟件比較復(fù)雜的時(shí)候,等價(jià)類的劃分也很復(fù)雜?;旧鲜且环N正向測試技術(shù)。單元測試用例-等價(jià)類劃分法(2)對(duì)于前面的例子:可以考慮作出如下劃分輸入(i)<0和(ii)>0。輸出(a)>=0和(b)Error。測試用例有兩個(gè):輸入4,輸出2。對(duì)應(yīng)于(ii)和b輸入-10,輸出0和錯(cuò)誤提示。對(duì)應(yīng)于(i)和(b)。單元測試用例-等價(jià)類劃分法(3)實(shí)際上,通常復(fù)雜程度的程序就難以找到嚴(yán)格的等價(jià)類。如果考慮白盒的方法,等價(jià)類的劃分準(zhǔn)則可以是:具有相同(類似)的執(zhí)行路徑的輸入。在例子中,如果對(duì)于輸入大于0的時(shí)的處理有不同的方法,那么我們把輸入大于0的劃分繼續(xù)細(xì)化。單元測試用例-邊界值分析法(1)使用等價(jià)類測試方法相同的等價(jià)類劃分。只是邊界值分析假定錯(cuò)誤更多地存在于劃分的邊界上,因此在邊界上以及兩側(cè)的情況設(shè)計(jì)測試用例。邊界值方法在軟件變得復(fù)雜的時(shí)候會(huì)變得不實(shí)用。對(duì)于非向量類型的值(比如枚舉值),邊界分析沒有意義。有些邊界值在軟件的實(shí)際使用中很少出現(xiàn)。由這樣的用例找出的錯(cuò)誤意義比較小。單元測試用例-邊界值分析法(2)對(duì)于前面的例子:劃分(ii)的邊界為0和無窮大;劃分(i)的邊界為最小負(fù)實(shí)數(shù)和0;劃分a有一個(gè)邊界0。由此得到以下用例:輸入{最小負(fù)實(shí)數(shù)}輸入{絕對(duì)值很小的負(fù)數(shù)}輸入0輸入{絕對(duì)值很小的實(shí)數(shù)}輸入{最大正實(shí)數(shù)}單元測試用例-狀態(tài)轉(zhuǎn)移測試法適用于以狀態(tài)機(jī)作為模型或設(shè)計(jì)為狀態(tài)的單元模塊。通過能導(dǎo)致狀態(tài)遷移的事件來測試狀態(tài)之間的轉(zhuǎn)換。可以設(shè)計(jì)逆向測試用例。比如狀態(tài)和事件的非法組合。單元測試用例-分支測試法(1)根據(jù)單元中控制流分支或判斷點(diǎn)來設(shè)計(jì)測試用例。通常用來達(dá)到一定的覆蓋率?!昂诤小毙问降姆种y試“猜測”那里有分支,并設(shè)計(jì)相應(yīng)的用例去測試該分支。類似于等價(jià)類劃分。“白盒”形式如下:給定一個(gè)結(jié)構(gòu)化的規(guī)格說明,說明單元中的控制流,就可以設(shè)計(jì)測試用例來測試其中的分支。單純使用功能規(guī)格說明會(huì)導(dǎo)致分支遺漏設(shè)計(jì)分支測試的時(shí)候,不應(yīng)該忽略整體的功能。單元測試用例-分支測試法(2)對(duì)于前面的例子,假設(shè)有如下的測試用例:1、輸入4;2、輸入-10。對(duì)于這個(gè)單元,有四種不同的實(shí)現(xiàn)ifinput<0then callprint_line“Squarerooterror-illegalnegativeinput” return0else calculatetheanswer returntheanswerend_if 實(shí)現(xiàn)1單元測試用例-分支測試法(3)例子的不同實(shí)現(xiàn)ifinput<0then callprint_line“Squarerooterror-illegalnegativeinput” return0elseifinput==0thenreturn0elsecalculatetheanswerreturntheanswerend_if 實(shí)現(xiàn)2callco-processortocalculatetheanswerexamineco-processorstatusregistersifstatus=errorthen callprint_line“Squarerooterror-illegalnegativeinput” return0else returntheanswerend_if 實(shí)現(xiàn)3單元測試用例-分支測試法(3)例子的不同實(shí)現(xiàn)(續(xù))ifinput<0then callprint_line“Squarerooterror-illegalnegativeinput” return0elseifinput==0thenreturn0elsecalculatethefirstapproximationLOOP calculateerror EXIT_LOOPWHENerror<desiredaccuracy adjustapproximationEND_LOOPreturntheanswerend_if 實(shí)現(xiàn)4單元測試用例-條件測試法(1)條件測試法的目標(biāo)是測試在每個(gè)邏輯條件的單個(gè)成分及他們的組合情況下,程序是正確的??梢允褂枚鄠€(gè)用例來達(dá)到一定的覆蓋率。比如:MCDC(ModifiedConditionDecisionCoverage)白盒測試技術(shù)。比較適合于有結(jié)構(gòu)化規(guī)格說明的單元。它提供了一個(gè)全面的測試,包括復(fù)雜條件,編程和設(shè)計(jì)錯(cuò)誤多發(fā)區(qū)域,以及分支測試不能達(dá)到的區(qū)域。單元測試用例-條件測試法(2)考慮前面的例子:ifinput<0then callprint_line“Squarerooterror-illegalnegativeinput” return0elseifinput==0thenreturn0elsecalculatethefirstapproximationLOOP calculateerror EXIT_LOOPWHEN(error<desiredaccuracy)or(iterations=10) adjustapproximationEND_LOOPreturntheanswerend_if 實(shí)現(xiàn)4單元測試用例-條件測試法(3)測試用例就要證明error<desiredaccuracy和iterations=10都能夠成立。測試用例1:10次迭代,每次誤差都大于期望誤差。顯示條件iterations=10單獨(dú)滿足。測試用例2:2次迭代后,誤差小于期望誤差。error<desiredaccuracy單獨(dú)滿足。單元測試用例-數(shù)據(jù)流法(1)又稱為數(shù)據(jù)定義-使用測試法。數(shù)據(jù)定義是指數(shù)據(jù)項(xiàng)被賦值的地方,數(shù)據(jù)使用是指數(shù)據(jù)項(xiàng)被讀或使用的地方。目的是設(shè)計(jì)測試用例,以驅(qū)動(dòng)執(zhí)行數(shù)據(jù)定義和使用之間的路徑。用例設(shè)計(jì)的第一步是列出所有的數(shù)據(jù)定義使用對(duì)。然后根據(jù)定義-使用對(duì)來設(shè)計(jì)相應(yīng)的用例。單元測試用例-數(shù)據(jù)流法(2)前面的例子定義使用1InputroutineBythemathsco-processor2Co-processorstatusTestforstatus=error3ErrormessageByPrint_Line4RETURN0Bythecallingunit5Answerbyco-processorRETURNtheanswer6RETURNtheanswerBythecallingunit單元測試用例-數(shù)據(jù)流法(3)測試用例設(shè)計(jì)如下:測試用例1:輸入4,返回2。測試定義-使用對(duì)1,2,5,6。測試用例2:輸入-10,返回0,輸出“平方根錯(cuò)誤…”。測試定義使用對(duì)1,2,3,4。單元測試用例-內(nèi)部邊界值法(1)大多數(shù)情況下,可以從單元的功能規(guī)格說明中導(dǎo)出等價(jià)類和邊界值測試。但是,在實(shí)現(xiàn)的時(shí)候可能會(huì)引入其他的邊界。測試需要增加新的等價(jià)類。前面的例子中,如果從效率上考慮,可能會(huì)根據(jù)輸入的大小,調(diào)用不同的處理方法。此時(shí),需要按照單元內(nèi)部的結(jié)構(gòu)再細(xì)化等價(jià)類。輸入的等價(jià)類分為:input<0;input>=0&&input<100;input>=100單元測試用例-內(nèi)部邊界值法(2)if(input>=100)then usemethod1tocalculatetherootelse usemethod2tocalculatetheroot.錯(cuò)誤猜測法基于經(jīng)驗(yàn)和其他一些測試技術(shù)。在經(jīng)驗(yàn)的基礎(chǔ)上,測試者猜測錯(cuò)誤的類型及在特定的軟件中錯(cuò)誤發(fā)生的位置,類型,并設(shè)計(jì)測試用例去發(fā)現(xiàn)他們??赡苄枰鶕?jù)經(jīng)驗(yàn),得到一個(gè)可能錯(cuò)誤列表。然后根據(jù)這個(gè)列表去生成用例。純粹依賴于經(jīng)驗(yàn)。一般只能作為輔助方法。內(nèi)容介紹單元測試介紹單元測試設(shè)計(jì)單元測試用例設(shè)計(jì)單元測試執(zhí)行單元測試評(píng)估實(shí)施時(shí)的原則和步驟單元測試中的白盒測試設(shè)計(jì)4單元測試的執(zhí)行(1)測試中模擬運(yùn)行環(huán)境的程序執(zhí)行精確性和測試結(jié)論有關(guān)。在單元程序測試的時(shí)候,需要考慮所有可能影響單元測試結(jié)果的因素。這些因素包括:隱性輸入,關(guān)聯(lián)系統(tǒng)??梢钥紤]使用一些工具來完成設(shè)置。4單元測試的執(zhí)行自動(dòng)測試可以大大提高測試執(zhí)行的效率,便于回歸測試??梢允褂蒙虡I(yè)化的測試工具。也可以考慮自行開發(fā)一些工具。自動(dòng)測試通過預(yù)定義的腳本文件將測試用例逐條放入文件。由驅(qū)動(dòng)程序讀取文件,驅(qū)動(dòng)被測單元,將得到的結(jié)果存放在文件中(或者自動(dòng)比較)。和界面有關(guān)的測試,可以通過Record&Replay工具進(jìn)行。但是要注意模塊化。內(nèi)容介紹單元測試介紹單元測試設(shè)計(jì)單元測試用例設(shè)計(jì)單元測試執(zhí)行單元測試評(píng)估實(shí)施時(shí)的原則和步驟單元測試中的白盒測試設(shè)計(jì)5單元測試的評(píng)估單元測試完成后,需要對(duì)測試效果進(jìn)行評(píng)估:測試完備性評(píng)估:檢查測試過程中是否已經(jīng)執(zhí)行了所有的測試用例。代碼覆蓋率評(píng)估:根據(jù)覆蓋率工具提供的覆蓋情況進(jìn)行評(píng)估??赡芤?yàn)槟承┰蚴沟酶采w率達(dá)不到要求。不可能路徑和條件不可達(dá)的或者冗余的代碼。不充分的測試用例。為了覆蓋率而拼湊測試用例是低效率的。內(nèi)容介紹單元測試介紹單元測試設(shè)計(jì)測試用例應(yīng)用方法單元測試執(zhí)行單元測試評(píng)估實(shí)施時(shí)的原則和步驟單元測試中的白盒測試設(shè)計(jì)6實(shí)施時(shí)的原則和步驟(1)總則:排除測試的隨意性,使得測試方法化,流程化精心制定測試計(jì)劃嚴(yán)格評(píng)審測試計(jì)劃嚴(yán)格執(zhí)行測試計(jì)劃系統(tǒng)分析測試結(jié)果并提交報(bào)告。6實(shí)施時(shí)的原則和步驟(2)制定測試計(jì)劃/方案重點(diǎn)是測試用例的設(shè)計(jì),必須按照有關(guān)設(shè)計(jì)方法進(jìn)行用例設(shè)計(jì)。白盒測試法中的邏輯覆蓋測試:語句覆蓋,判斷覆蓋,判定-條件覆蓋,條件-組合覆蓋、路徑覆蓋,…黑盒測試中的等價(jià)類劃分法,邊界值分析法,錯(cuò)誤推測方法等。6實(shí)施時(shí)的原則和步驟(3)測試計(jì)劃評(píng)審由測試人員進(jìn)行,開發(fā)人員配合,對(duì)測試計(jì)劃進(jìn)行評(píng)審和修改,并最后達(dá)成最終計(jì)劃。評(píng)審內(nèi)容包括:方法性,合理性,全面性和最優(yōu)性。測試計(jì)劃執(zhí)行由測試操作人員按照指定的測試計(jì)劃流程化地進(jìn)行。及時(shí)反饋問題。保證按照測試計(jì)劃要求實(shí)施。當(dāng)測試過程比較規(guī)整化的時(shí)候,可以考慮由開發(fā)人員自身執(zhí)行。6實(shí)施時(shí)的原則和步驟(4)測試結(jié)果分析并提交報(bào)告測試人員和開發(fā)人員共同對(duì)測試結(jié)果進(jìn)行分析,歸類,給出錯(cuò)誤原因和解決方法,對(duì)結(jié)果進(jìn)行報(bào)告和歸檔。測試文檔報(bào)告包含如下內(nèi)容:單元名稱(id)和描述;單元的目的和功能簡單描述;單元和其他單元的依賴關(guān)系;測試用例測試環(huán)境、過程和步驟地描述實(shí)際測試結(jié)果錯(cuò)誤跟蹤分析測試人員和完成時(shí)間測試評(píng)審其它情況內(nèi)容介紹單元測試介紹單元測試設(shè)計(jì)單元測試用例設(shè)計(jì)單元測試執(zhí)行單元測試評(píng)估實(shí)施時(shí)的原則和步驟單元測試中的白盒測試設(shè)計(jì)7單元測試中的白盒測試設(shè)計(jì)白盒測試主要檢查程序的內(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個(gè)可能的路徑以及應(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è)計(jì)若干個(gè)測試用例,使得用這些測試用例執(zhí)行測試之后使得每一條可執(zhí)行語句至少被執(zhí)行一遍。對(duì)于前面的例子,L1包含了所有的可執(zhí)行語句,所以根據(jù)L1來設(shè)計(jì)測試用例就可以達(dá)到100%語句覆蓋。用例如下:{input(A,B,x);output(A,B,x)}={(2,0,4),(2,0,3)}語句覆蓋的不足語句覆蓋可以保證檢驗(yàn)了每一個(gè)可執(zhí)行語句。但是不能保證用于控制的邏輯運(yùn)算得到充分的檢驗(yàn)。比如第一個(gè)邏輯運(yùn)算中的and錯(cuò)寫成了or,最后的結(jié)果仍然成立。語句覆蓋是最弱的邏輯覆蓋。if(A>1)and(B=0) x=x/A;if(A=2)or(X>0) x=x+1;判斷覆蓋又稱為分支覆蓋:設(shè)計(jì)若干個(gè)測試用例,執(zhí)行測試,使得被測單元中的每個(gè)判斷的取值TRUE和FALSE分支至少經(jīng)歷一次。對(duì)于判斷(A>1)and(B=0)和(A=2)or(X>0)分別測試其true,false分支??梢赃x擇L1,L2組合或者L3,L4組合。對(duì)于L1,L2組合,L1:{(2,0,4),(2,0,3)}L2:{(1,0,-1),(1,0,-1)};對(duì)于L3,L4組合,L1:{(2,1,1),(2,1,2)}L2:{(3,0,3),(3,1,1)};判斷覆蓋的不足復(fù)合判斷中,某個(gè)子判斷的錯(cuò)誤不一定引起整個(gè)判斷的值的改變。這樣的錯(cuò)誤可能被漏掉。比如:使用上面定義的測試的時(shí)候,如果第二個(gè)判斷中X>0成為了X<10,最后的結(jié)果還是一樣的。兩組測試用例都不能測試這些值。彌補(bǔ)這個(gè)缺陷的是條件覆蓋。條件覆蓋(1)設(shè)計(jì)若干個(gè)用例,執(zhí)行測試,使得程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(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)不足之處:雖然可以保證每個(gè)條件都取不同的值,但是不能保證每個(gè)判斷都取不同的值。有時(shí)甚至不能滿足分支覆蓋的要求。比如前面的第一組用例。使用判斷-條件覆蓋來彌補(bǔ)這個(gè)不足。判斷-條件覆蓋(1)判斷-條件覆蓋就是設(shè)計(jì)足夠的測試用例,使得判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷的所有可能判斷結(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)判斷-條件覆蓋的不足之處:某些條件的值錯(cuò)誤的時(shí)候,判斷的值依舊可能是正確的。此時(shí),有關(guān)這個(gè)條件的錯(cuò)誤可能沒有被發(fā)現(xiàn)。(A>1)AND(B=0),如果第一個(gè)條件不成立,那么不管
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子商務(wù)平臺(tái)公開戶運(yùn)營與推廣技巧
- 生物科技驅(qū)動(dòng)下的現(xiàn)代農(nóng)業(yè)革新
- 現(xiàn)代餐飲與AI技術(shù)共同打造的未來
- 現(xiàn)代服務(wù)業(yè)中人力資源的重要性與挑戰(zhàn)
- 國際貿(mào)易國際貿(mào)易便利化協(xié)議解讀考核試卷
- 室內(nèi)模擬探險(xiǎn)與生存體驗(yàn)基地設(shè)備實(shí)施考核試卷
- 工業(yè)五金批發(fā)供應(yīng)考核試卷
- 礦山意向協(xié)議書(2篇)
- 醫(yī)療器械用信息化學(xué)品的表面改性技術(shù)考核試卷
- 光纖的偏振保持技術(shù)探究考核試卷
- 電鍍產(chǎn)業(yè)園項(xiàng)目可行性研究報(bào)告(專業(yè)經(jīng)典案例)
- 2025年魯泰集團(tuán)招聘170人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024-2025學(xué)年成都高新區(qū)七上數(shù)學(xué)期末考試試卷【含答案】
- 企業(yè)員工食堂管理制度框架
- 《辣椒主要病蟲害》課件
- 2024年煤礦安全生產(chǎn)知識(shí)培訓(xùn)考試必答題庫及答案(共190題)
- 《法律援助》課件
- 小兒肺炎治療與護(hù)理
- SLT824-2024 水利工程建設(shè)項(xiàng)目文件收集與歸檔規(guī)范
- (完整word版)中國銀行交易流水明細(xì)清單模版
- DB43∕T 859-2014 高速公路機(jī)電工程概預(yù)算編制辦法及定額
評(píng)論
0/150
提交評(píng)論