白盒測(cè)試方法_第1頁(yè)
白盒測(cè)試方法_第2頁(yè)
白盒測(cè)試方法_第3頁(yè)
白盒測(cè)試方法_第4頁(yè)
白盒測(cè)試方法_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上一、白盒測(cè)試概念1、定義白盒測(cè)試又稱結(jié)構(gòu)測(cè)試、透明盒測(cè)試、邏輯驅(qū)動(dòng)測(cè)試、基于的測(cè)試。盒子指被測(cè)試的 ,白盒指盒子是可視的。白盒測(cè)試是一種測(cè)試用例設(shè)計(jì)方法,測(cè)試人員依據(jù)內(nèi)部相關(guān)信息,設(shè)計(jì)或選擇。白盒測(cè)試主要針對(duì)被測(cè)程序的源代碼,主要用于軟件驗(yàn)證,不考慮軟件的功能實(shí)現(xiàn),只驗(yàn)證內(nèi)部動(dòng)作是否按照設(shè)計(jì)說(shuō)明書(shū)的規(guī)定進(jìn)行。2、目的我們一方面注重軟件功能需求的實(shí)現(xiàn),另一方面還要注重程序邏輯細(xì)節(jié),主要是因?yàn)檐浖陨淼娜毕?,具體如下:1)邏輯錯(cuò)誤和不正確假設(shè)與一條程序路徑被運(yùn)行的可能性成反比。日常處理往往被很好地了解,而“特殊情況”的處理則難于發(fā)現(xiàn)。 2)我們經(jīng)常相信某邏輯路徑不可能被執(zhí)

2、行,而事實(shí)上,它可能在正常的基礎(chǔ)上被執(zhí)行。程序的邏輯流有時(shí)是違反直覺(jué)的,只有路徑測(cè)試才能發(fā)現(xiàn)這些錯(cuò)誤。 3)代碼中的筆誤是隨機(jī)且無(wú)法杜絕的。筆誤出現(xiàn)在主流上和不明顯的邏輯路徑上的機(jī)率是一樣的。很多被語(yǔ)法檢查機(jī)制發(fā)現(xiàn),但是其他的會(huì)在測(cè)試開(kāi)始時(shí)才會(huì)被發(fā)現(xiàn)。 4)功能測(cè)試本身的局限性。如果程序?qū)崿F(xiàn)了沒(méi)有被描述的行為,功能測(cè)試是無(wú)法發(fā)現(xiàn)的,例如病毒,而白盒測(cè)試很容易發(fā)現(xiàn)它。3、目標(biāo)采用白盒測(cè)試必須遵循以下幾條原則,才能達(dá)到測(cè)試的目標(biāo):1)保證一個(gè)模塊中的所有獨(dú)立路徑至少被測(cè)試一次。2)所有邏輯值均需測(cè)試真 (true) 和假 (false) 兩種情況。3)檢查程序的內(nèi)部數(shù)據(jù)結(jié)構(gòu),保證其結(jié)構(gòu)的有效性。4

3、)在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán)。4、黑白灰區(qū)別黑盒測(cè)試技術(shù):也稱功能測(cè)試或,只關(guān)注規(guī)格說(shuō)明中的功能,測(cè)試者在對(duì)和軟件功能進(jìn)行測(cè)試,它只檢查實(shí)現(xiàn)了的功能是否按照“用戶需求說(shuō)明書(shū)”的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如或文件)的完整性。主要用于,結(jié)合兼容、等方面,但黑盒測(cè)試不能保證已經(jīng)實(shí)現(xiàn)的各個(gè)部分都被測(cè)試到。黑盒測(cè)試適用于各階段測(cè)試。白盒測(cè)試技術(shù):只關(guān)注軟件產(chǎn)品的測(cè)試,深入到一級(jí)的測(cè)試,它是知道產(chǎn)品內(nèi)部結(jié)構(gòu),通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照“設(shè)計(jì)規(guī)格說(shuō)明書(shū)”的規(guī)定正常進(jìn)行,按照內(nèi)部的結(jié)構(gòu),檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作,主

4、要用于驗(yàn)證,不能夠確保產(chǎn)品已經(jīng)實(shí)現(xiàn)了規(guī)格說(shuō)明中的所有功能。白盒測(cè)試通常用于單元測(cè)試?;液袦y(cè)試技術(shù):在白盒測(cè)試中交叉使用黑盒測(cè)試、在黑盒測(cè)試中交叉使用白盒測(cè)試的方法。它結(jié)合了白盒測(cè)試和黑盒測(cè)試的要素,涉及輸入和輸出,但使用關(guān)于代碼和程序操作等信息設(shè)計(jì)測(cè)試用例?;液袦y(cè)試通常用于集成測(cè)試。測(cè)試是從用戶需求的角度去對(duì)軟件的質(zhì)量進(jìn)行檢測(cè)。具體使用黑盒測(cè)試、白盒測(cè)試、灰盒測(cè)試,不需要太明確的來(lái)劃分,我們應(yīng)該多角度去設(shè)計(jì)測(cè)試用例,多角度去測(cè)試軟件、發(fā)現(xiàn)bug,才是一個(gè)測(cè)試工程師應(yīng)該具備的思想??傊ㄗh測(cè)試人員在測(cè)試過(guò)程中,可以考慮先使用黑盒測(cè)試,然后統(tǒng)計(jì)相應(yīng)的覆蓋率,再設(shè)計(jì)適當(dāng)?shù)陌缀袦y(cè)試用例作為補(bǔ)充,以保

5、證測(cè)試的完整性。二、白盒 1、簡(jiǎn)介白盒測(cè)試主要是檢查程序的內(nèi)部結(jié)構(gòu)、邏輯、循環(huán)和路徑。測(cè)試是基于覆蓋全部代碼、分支、路徑、條件。根據(jù)測(cè)試程序是否運(yùn)行,白盒測(cè)試分靜態(tài)白盒測(cè)試和動(dòng)態(tài)白盒測(cè)試兩種。靜態(tài)白盒測(cè)試也稱為結(jié)構(gòu)分析,是在不執(zhí)行程序的條件下審查軟件設(shè)計(jì)、體系結(jié)構(gòu)和代碼,從而找出軟件缺陷的過(guò)程。測(cè)試對(duì)象是文檔、代碼等非計(jì)算機(jī)執(zhí)行的部分。在項(xiàng)目中使用靜態(tài)白盒測(cè)試是基于這樣的原則:錯(cuò)誤發(fā)現(xiàn)得越早,改正錯(cuò)誤的成本越低,正確改正錯(cuò)誤的可能性越大,改正錯(cuò)誤時(shí)可能引發(fā)的其他錯(cuò)誤的數(shù)量也越少。靜態(tài)白盒測(cè)試方法包括檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法。常用的是檢查法,這些方法在程序開(kāi)始編碼之后、基于計(jì)算機(jī)的

6、動(dòng)態(tài)測(cè)試開(kāi)始之前使用。動(dòng)態(tài)白盒測(cè)試也稱為結(jié)構(gòu)化測(cè)試,是在使用和運(yùn)行程序的條件下,軟件測(cè)試員查看代碼內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)方式來(lái)確定哪些要測(cè)試,哪些不要測(cè)試,如何開(kāi)展測(cè)試,怎樣設(shè)計(jì)和執(zhí)行測(cè)試用例。白盒測(cè)試的覆蓋標(biāo)準(zhǔn)有、循環(huán)覆蓋和基本。動(dòng)態(tài)白盒測(cè)試常用的測(cè)試用例設(shè)計(jì)方法有邏輯覆蓋法(邏輯驅(qū)動(dòng)測(cè)試)和基本路徑測(cè)試法兩種。下面具體介紹一下三種常用的白盒測(cè)試方法:2、代碼檢查法2.1簡(jiǎn)介代碼檢查法主要檢查代碼和程序設(shè)計(jì)的一致性,代碼結(jié)構(gòu)的合理性,代碼編寫(xiě)的標(biāo)準(zhǔn)性、可讀性,代碼邏輯表達(dá)的正確性等方面。檢查方式包括桌面檢查、代碼走查、代碼審查三種方式。目的:檢查程序是不是按照某種標(biāo)準(zhǔn)或規(guī)范編寫(xiě)的。目標(biāo):發(fā)現(xiàn)程序缺陷

7、,改進(jìn)軟件的質(zhì)量。需要的文檔:程序設(shè)計(jì)文檔、程序的源代碼清單、編碼規(guī)范、代碼缺陷檢查表等。在進(jìn)行代碼檢查時(shí),代碼缺陷檢查表就是測(cè)試用例,檢查表中一般包括容易出錯(cuò)的地方和在以往的工作中遇到的典型錯(cuò)誤。優(yōu)缺點(diǎn):代碼檢查法能快速找到缺陷,一旦發(fā)現(xiàn)錯(cuò)誤,能夠在代碼中對(duì)其進(jìn)行精確定位,從而降低了錯(cuò)誤修正的成本。代碼檢查看到的是問(wèn)題本身而非問(wèn)題的征兆。但是代碼檢查非常耗費(fèi)時(shí)間,而且代碼檢查需要知識(shí)和經(jīng)驗(yàn)的積累。2.2代碼審查和走查兩種方法的形成、流程一樣,規(guī)程、方法不一樣。具體來(lái)說(shuō):代碼審查和走查都是以小組為單位閱讀代碼,它是一系列規(guī)程和錯(cuò)誤檢查方法的集合。審查或走查小組通常由不需要對(duì)程序細(xì)節(jié)很了解的協(xié)調(diào)

8、人員、程序的編碼人員、程序的設(shè)計(jì)人員、測(cè)試專家四人組成。都是以會(huì)議的形式進(jìn)行。會(huì)議理想時(shí)間為90-120分鐘之間,按照每小時(shí)閱讀 150行代碼的速度進(jìn)行。對(duì)大型軟件應(yīng)安排多個(gè)會(huì)議同時(shí)進(jìn)行,每個(gè)會(huì)議處理一個(gè)或幾個(gè)模塊或子程序。代碼審查規(guī)程和方法:在代碼審查會(huì)議上,程序作者逐條語(yǔ)句講述程序的邏輯結(jié)構(gòu),參與人根據(jù)“代碼缺陷檢查表”分析程序,檢查內(nèi)容包括編碼標(biāo)準(zhǔn)規(guī)范和錯(cuò)誤列表。編碼規(guī)范是指團(tuán)隊(duì)根據(jù)自己的經(jīng)驗(yàn)和風(fēng)格進(jìn)行設(shè)置的一些規(guī)范。錯(cuò)誤列表一般是代碼潛在的bug,由于某種代碼寫(xiě)法雖然沒(méi)有語(yǔ)法錯(cuò)誤,但是可能存在錯(cuò)誤,比如會(huì)導(dǎo)致線程死鎖,這些都是錯(cuò)誤列表應(yīng)該檢查的。程序員之間可以隔一定的時(shí)間抽取代碼進(jìn)行審

9、查。結(jié)束會(huì)議后,把這些經(jīng)驗(yàn)匯成列表,作為下次代碼審查的依據(jù),并針對(duì)錯(cuò)誤修正進(jìn)行跟蹤。輸出文檔是“代碼檢查記錄表”,此表主要內(nèi)容日期、住持人、參與人員、范圍、發(fā)現(xiàn)的問(wèn)題、問(wèn)題處理、跟蹤檢查等。代碼走查規(guī)程和方法:在代碼走查會(huì)議上,參與者參考“設(shè)計(jì)規(guī)格書(shū)”使用計(jì)算機(jī)來(lái)執(zhí)行代碼。測(cè)試人員準(zhǔn)備一些簡(jiǎn)單的測(cè)試用例,它的作用是提供啟動(dòng)代碼走查和質(zhì)疑程序員邏輯思路及其他設(shè)想的手段。在會(huì)議期間,把測(cè)試數(shù)據(jù)沿程序的邏輯結(jié)構(gòu)走一遍,程序的狀態(tài)記錄在紙或白板上以供監(jiān)視。在大多數(shù)的代碼走查中,很多問(wèn)題是在向程序員提問(wèn)的過(guò)程中發(fā)現(xiàn)的,而不是由測(cè)試用例本身直接發(fā)現(xiàn)的。2.3桌面檢查桌面檢查是一種傳統(tǒng)的檢查方法,由程序員檢

10、查自己編寫(xiě)的程序。程序員在程序通過(guò)編譯之后,對(duì)源程序代碼進(jìn)行分析、檢驗(yàn),并補(bǔ)充相關(guān)文檔,由于程序員熟悉自己的程序及其程序設(shè)計(jì)風(fēng)格,桌面檢查由程序員自己進(jìn)行可以節(jié)省時(shí)間,但應(yīng)避免主觀片面性。桌面檢查的效果遜色于代碼檢查和走查,但桌面檢查勝過(guò)沒(méi)有檢查。 3、邏輯覆蓋測(cè)試3.1簡(jiǎn)介測(cè)試覆蓋率:用于確定測(cè)試所執(zhí)行到的覆蓋項(xiàng)的百分比。其中的覆蓋項(xiàng)是指作為測(cè)試基礎(chǔ)的一個(gè)入口或?qū)傩?,比如語(yǔ)句、分支、條件等。 測(cè)試覆蓋率可以表示出測(cè)試的充分性,在測(cè)試分析報(bào)告中可以作為量化指標(biāo)的依據(jù),測(cè)試覆蓋率越高效果越好。但覆蓋率不是目標(biāo),只是一種手段。 測(cè)試覆蓋率包括功能點(diǎn)覆蓋率和結(jié)構(gòu)覆蓋率,功能點(diǎn)覆蓋率大致用于表示軟件已

11、經(jīng)實(shí)現(xiàn)的功能與軟件需要實(shí)現(xiàn)的功能之間的比例關(guān)系。結(jié)構(gòu)覆蓋率包括語(yǔ)句覆蓋率、分支覆蓋率、循環(huán)覆蓋率、路徑覆蓋率等。 邏輯覆蓋法:以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的用例設(shè)計(jì)方法,它通過(guò)對(duì)程序邏輯結(jié)構(gòu)的遍歷實(shí)現(xiàn)程序的覆蓋。根據(jù)覆蓋目標(biāo)的不同,分為、(分支覆蓋)、判定-條件覆蓋(分支-條件覆蓋)、六種覆蓋測(cè)試方法。語(yǔ)句覆蓋每條語(yǔ)句至少執(zhí)行一次。每個(gè)判定/分支至少執(zhí)行一次。每個(gè)判定的每個(gè)條件應(yīng)取到各種可能的值。判定-同時(shí)滿足和條件覆蓋。每個(gè)判定中各條件的每一種組合至少出現(xiàn)一次。使中每一條可能的路徑至少執(zhí)行一次。它們發(fā)現(xiàn)錯(cuò)誤的能力呈由弱至強(qiáng)的變化。3.2舉例說(shuō)明以下舉例說(shuō)明六種覆蓋測(cè)試方法:51Testing軟

12、件測(cè)試網(wǎng)9V b(g!A,j j1q5E:pgP3vf9s&m-z W如源代碼(C語(yǔ)言):int logicExample(int x, int y) int magic=0;   if(x>0 && y>0)   magic = x+y+10; / 語(yǔ)句塊1  else   magic = x+y-10; / 語(yǔ)句塊2 if(magic < 0)   magic = 0;         / 語(yǔ)句塊3

13、return magic;       / 語(yǔ)句塊4 一般邏輯覆蓋不會(huì)直接根據(jù)源代碼,而是根據(jù)流程圖來(lái)設(shè)計(jì)測(cè)試用例,在沒(méi)有設(shè)計(jì)文檔時(shí),要根據(jù)源代碼畫(huà)出流程圖:3.2.1語(yǔ)句覆蓋特點(diǎn):6ZSb5Y"|CU+M&d6Nw1K & 語(yǔ)句覆蓋要求設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每條語(yǔ)句至少被執(zhí)行一次。在本例中,可執(zhí)行語(yǔ)句是指語(yǔ)句塊1到語(yǔ)句塊4中的語(yǔ)句。51Testing軟件測(cè)試網(wǎng)2s NQc/tLD/b iw:z1e用例設(shè)計(jì):數(shù)據(jù)語(yǔ)句x=3, y=31、4x=-3, y=02、3、4通過(guò)這兩個(gè)測(cè)試用例即

14、達(dá)到語(yǔ)句覆蓋的標(biāo)準(zhǔn)(測(cè)試用例組不是唯一的)。 51Testing軟件測(cè)試網(wǎng)5c/6w4A,I優(yōu)點(diǎn):可以很直觀地從流程圖得到測(cè)試用例,可以測(cè)試所有的執(zhí)行語(yǔ)句。51Testing軟件測(cè)試網(wǎng)eT!_ w C'u(iD51Testing軟件測(cè)試網(wǎng)'F h79bL|8JK缺點(diǎn):語(yǔ)句覆蓋不能準(zhǔn)確的判斷運(yùn)算中的邏輯關(guān)系錯(cuò)誤。假設(shè)第一個(gè)判斷語(yǔ)句if(x>0 && y>0)中的“&&”被錯(cuò)誤地寫(xiě)成了“|”,即if(x>0 | y>0),使用上面設(shè)計(jì)出來(lái)的一組測(cè)試用例來(lái)進(jìn)行測(cè)試,仍然可以達(dá)到100%的語(yǔ)句覆蓋。在六種邏輯覆蓋標(biāo)準(zhǔn)中,語(yǔ)句覆蓋標(biāo)

15、準(zhǔn)最弱的。51Testing軟件測(cè)試網(wǎng))|!&A1guip M8c6J3.2.2判定覆蓋M&k Fn#R1q特點(diǎn):判定覆蓋(分支覆蓋)要求設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中的每個(gè)判斷的“真”和“假”都至少被執(zhí)行一次。即:程序中的每個(gè)分支至少執(zhí)行一次。在本例中共有兩個(gè)判斷if(x>0 && y>0)(記為P1)和if(magic < 0)(記為P2)。+U&g;NrF|1|kS用例設(shè)計(jì):數(shù)據(jù)P1P2x=3, y=3TFx=-3, y=0F T兩個(gè)判斷的取真、假分支都已經(jīng)被執(zhí)行過(guò),所以滿足了判斷覆蓋的標(biāo)準(zhǔn)。f u mheMcG

16、51Testing軟件測(cè)試網(wǎng))Vu;AGE1H f c優(yōu)點(diǎn):由于可執(zhí)行語(yǔ)句要不就在判定的真分支,要不就在假分支上,判定覆蓋比語(yǔ)句覆蓋要多幾乎一倍的測(cè)試路徑,所以,只要滿足了判定覆蓋標(biāo)準(zhǔn)就一定滿足語(yǔ)句覆蓋標(biāo)準(zhǔn)。因此,判定覆蓋比語(yǔ)句覆蓋強(qiáng)。51Testing軟件測(cè)試網(wǎng)$QrUn#X缺點(diǎn):判定覆蓋會(huì)忽略條件中取或(or)的情況。假設(shè)第一個(gè)判斷語(yǔ)句if(x>0 && y>0)中的“&&”被程序員錯(cuò)誤地寫(xiě)成了“|”,使用上面設(shè)計(jì)出來(lái)的一組測(cè)試用例,仍然可以達(dá)到100%的判定覆蓋,所以判定覆蓋也無(wú)法發(fā)現(xiàn)上述的邏輯錯(cuò)誤。51Testing軟件測(cè)試網(wǎng)Aj|!L-o,

17、h*fs'p3.2.3條件覆蓋4P*9L s qJTesting軟件測(cè)試網(wǎng)hn2U!W(p&z特點(diǎn):條件覆蓋要求設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行被測(cè)程序,使得判定中的每個(gè)條件獲得各種可能的結(jié)果,即每個(gè)條件至少有一次為真值,有一次為假值。在本例中有兩個(gè)判斷if(x>0 && y>0)(記為P1)和if(magic < 0)(記為P2),共計(jì)三個(gè)條件x>0(記為C1)、y>0(記為C2)和magic<0(記為C3)。/OD+Ya.Jrb P-)M.t tJ用例設(shè)計(jì):數(shù)據(jù)C1C2C3P1P2x=3, y=3TTFTFx=-3, y=0FF

18、TFT三個(gè)條件的各種可能取值都滿足了一次,達(dá)到了100%條件覆蓋的標(biāo)準(zhǔn),同時(shí)也到達(dá)了100%判定覆蓋的標(biāo)準(zhǔn)。但并不能保證達(dá)到100%條件覆蓋標(biāo)準(zhǔn)的測(cè)試用例(組)都能到達(dá)100%的判定覆蓋標(biāo)準(zhǔn),看下面的例子:數(shù)據(jù) C1C2C3P1P2x=3, y=0TFTFTx=-3, y=15FTFFF既然條件覆蓋標(biāo)準(zhǔn)不能100%達(dá)到判定覆蓋的標(biāo)準(zhǔn),也就不一定能夠達(dá)到100%的語(yǔ)句覆蓋標(biāo)準(zhǔn)了。/X&_ ?)i7oZ6T,P5xt#z4I$D優(yōu)點(diǎn):顯然條件覆蓋比判定覆蓋,增加了對(duì)符合判定情況的測(cè)試。51Testing軟件測(cè)試網(wǎng)OKvYW5a gPI51Testing軟件測(cè)試網(wǎng)Q0T$#E l缺點(diǎn):要達(dá)到

19、條件覆蓋,需要足夠多的測(cè)試用例,但條件覆蓋并不能保證判定覆蓋。3.3.4判定-條件覆蓋ns6N%bDV&fYR 特點(diǎn):設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行被測(cè)程序,使得被測(cè)試程序中的每個(gè)判斷本身的判定結(jié)果(真假)至少滿足一次,同時(shí),每個(gè)邏輯條件的可能值也至少被滿足一次。即同時(shí)滿足100%判定覆蓋和100%條件覆蓋的標(biāo)準(zhǔn)。用例設(shè)計(jì):數(shù)據(jù) C1C2C3P1P2x=3, y=3TTFTFx=-3, y=0FFTFT所有條件的可能取值都滿足了一次,而且所有的判斷本身的判定結(jié)果也都滿足了一次。51Testing軟件測(cè)試網(wǎng)7M%?7v0Y7Q0D優(yōu)點(diǎn):達(dá)到100%判定-條件覆蓋標(biāo)準(zhǔn)一定能夠達(dá)到100%條件覆

20、蓋、100%判定覆蓋和100%語(yǔ)句覆蓋。判定-條件覆蓋滿足判定覆蓋準(zhǔn)則和條件覆蓋準(zhǔn)則,彌補(bǔ)了二者的不足。51Testing軟件測(cè)試網(wǎng)W+z4U-B ?N51Testing軟件測(cè)試網(wǎng)1gc*JTX Z缺點(diǎn):未考慮條件的組合情況。51Testing軟件測(cè)試網(wǎng)A06?8atso-63.3.5條件組合覆蓋,HemNnf 7P!i$p xRZ$b HJ特點(diǎn):要求設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行被測(cè)程序,使得被測(cè)試程序中每個(gè)判定中條件結(jié)果的所有可能組合至少執(zhí)行一次。注意:1)條件組合只針對(duì)同一個(gè)判斷語(yǔ)句內(nèi)存在多個(gè)條件的情況,讓這些條件的取值進(jìn)行笛卡爾乘積組合。2)不同的判斷語(yǔ)句內(nèi)的條件取值之間無(wú)需組合。3)對(duì)于

21、單條件的判斷語(yǔ)句,只需要滿足自己的所有取值即可。用例設(shè)計(jì):數(shù)據(jù)C1C2C3P1P2x=3, y=0TFTFTx=-3, y=15FTFFFx=3, y=3TTFTFx=-3, y=0FFTFTC1和C2處于同一判斷語(yǔ)句中,它們的所有取值的組合都被滿足了一次。C|,qIp N f'c優(yōu)點(diǎn):多重條件覆蓋準(zhǔn)則滿足判定覆蓋、條件覆蓋、判定-條件覆蓋準(zhǔn)則。5m&N;D.?E-g*N缺點(diǎn):線性地增加了測(cè)試用例的數(shù)量。但上面的例子中,只走了兩條路徑a-c-e-f和a-b-d-f,而本例的程序存在三條路徑。所以條件組合覆蓋不能保證所以的路徑被執(zhí)行。3.3.6路徑覆蓋m2x$sK/piz5I:_

22、 特點(diǎn):設(shè)計(jì)足夠的測(cè)試用例,運(yùn)行被測(cè)程序,覆蓋程序中所有可能的路徑。51Testing軟件測(cè)試網(wǎng),g|.H/|cO4S C51Testing軟件測(cè)試網(wǎng)a(J用例設(shè)計(jì)::K(d,_-a|W7!J6120 數(shù)據(jù)C1C2C3P1P2路徑這條路徑不可能實(shí)現(xiàn)TTTTTa-b-d-fx=-3, y=3FTTFTa-c-d-fx=3, y=3TTFTFa-b-e-fx=-3, y=15FTFFFa-c-e-f所有可能的路徑都滿足過(guò)一次。51Testing軟件測(cè)試網(wǎng)7lj#Z8優(yōu)點(diǎn):這種測(cè)試方法可以對(duì)程序進(jìn)行徹底的測(cè)試,比前面五種覆蓋面都廣。100%滿足路徑覆蓋,一定能100%滿足判定覆蓋標(biāo)準(zhǔn)(因?yàn)槁窂骄褪菑?/p>

23、判斷的某條分支走的)。51Testing軟件測(cè)試網(wǎng)/U)A04h!"D9MqY O JdMFcx3缺點(diǎn): 100%滿足路徑覆蓋,但并不一定能100%滿足條件覆蓋(C2只取到了真),也就不能滿足100%條件組合覆蓋。經(jīng)過(guò)分析,它們之間的關(guān)系可以用下圖表示(路徑覆蓋在該圖無(wú)法表示):從上例可知,單獨(dú)采用任何一種邏輯覆蓋方法都不能完全覆蓋所有的測(cè)試用例,任何一個(gè)高效的測(cè)試用例,都是針對(duì)具體測(cè)試場(chǎng)景的。邏輯測(cè)試不是片面的測(cè)試正確的結(jié)果或是測(cè)試錯(cuò)誤的結(jié)果,而是盡可能全面地覆蓋每一個(gè)邏輯路徑。所以在實(shí)際測(cè)試用例設(shè)計(jì)中,就要先從代碼分析入手,根據(jù)不同的代碼邏輯規(guī)則、語(yǔ)句執(zhí)行情況,選用適合的覆蓋方法

24、。要根據(jù)不同需要和不同測(cè)試用例設(shè)計(jì)特征,將不同的設(shè)計(jì)方法組合起來(lái),交叉使用,以實(shí)現(xiàn)最佳的測(cè)試用例輸出。4、基本路徑測(cè)試法4.1簡(jiǎn)介基本法包括4個(gè)步驟,在控制流圖的基礎(chǔ)上,通過(guò)分析程序的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中程序的每個(gè)可執(zhí)行路徑至少執(zhí)行一次。以下舉例具體說(shuō)明這4個(gè)步驟:4.2舉例說(shuō)明          4.2.1畫(huà)出 可將映射到一個(gè)相應(yīng)的流圖。程序的控制流圖是對(duì)程序流程圖簡(jiǎn)化得到的,它可以更加突出的描述程序控制流的結(jié)構(gòu)。流圖只有二種圖形符號(hào),圓稱為流圖的

25、節(jié)點(diǎn),代表一個(gè)或多個(gè)語(yǔ)句,中一個(gè)處理方框序列和一個(gè)菱形決測(cè)框可被映射為一個(gè)節(jié)點(diǎn)。箭頭稱為邊或連接,代表,類似于流程圖中的箭頭。一條邊必須終止于一個(gè)節(jié)點(diǎn),即使該節(jié)點(diǎn)并不代表任何語(yǔ)句。由邊和節(jié)點(diǎn)限定的范圍稱為區(qū)域,計(jì)算區(qū)域時(shí)應(yīng)包括圖外部的范圍。如圖所示:           如果判斷中的條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符 (or, and) 連接的復(fù)合條件表達(dá)式時(shí),要為每個(gè)條件創(chuàng)建一個(gè)獨(dú)立的節(jié)點(diǎn),包含條件的節(jié)點(diǎn)被稱為判定節(jié)點(diǎn),一個(gè)判定節(jié)點(diǎn)發(fā)出兩條或多條邊。例如:1 )if a or b2) x3)

26、else4 )y對(duì)應(yīng)的邏輯為:        4.2.2計(jì)算圈復(fù)雜度通過(guò)對(duì)的分析和判斷來(lái)計(jì)算環(huán)形復(fù)雜度。圈復(fù)雜度也成為環(huán)形復(fù)雜度、程序環(huán)境復(fù)雜度,是一種為邏輯復(fù)雜性提供定量測(cè)度的,將該度量用于計(jì)算程序的基本的獨(dú)立路徑數(shù)目,為確保所有路徑至少執(zhí)行一次的測(cè)試數(shù)量的。有以下三種方法計(jì)算圈復(fù)雜度:1)流圖中區(qū)域的數(shù)量對(duì)應(yīng)于環(huán)型的復(fù)雜性。2)給定流圖G的圈復(fù)雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量,N是流圖中節(jié)點(diǎn)的數(shù)量。3)給定流圖G的圈復(fù)雜度V(G),定義為V(G)=P+1,P是流圖G中判定節(jié)點(diǎn)的數(shù)量。            4.2.3導(dǎo)出獨(dú)立路徑 從程序的環(huán)路復(fù)雜性可導(dǎo)出程序的獨(dú)立路徑條數(shù)。一條獨(dú)立路徑是指,和其他的獨(dú)立路徑相比,程序中至少引進(jìn)一個(gè)新的處理語(yǔ)句集合或一個(gè)新判斷條件的通路。即獨(dú)立路徑必須至少包含一條在定義

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論