資源描述:
《4.白盒測(cè)試基礎(chǔ)及代碼審查》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、2014/9/16Inspurgroup白盒測(cè)試講師:張雪蓮2014/9/16浪潮軟件評(píng)測(cè)實(shí)驗(yàn)室2目錄12白盒測(cè)試概念2測(cè)試覆蓋標(biāo)準(zhǔn)3邏輯驅(qū)動(dòng)測(cè)試4基本路徑測(cè)試Inspurgroup2014/9/16浪潮軟件評(píng)測(cè)實(shí)驗(yàn)室12014/9/163白盒測(cè)試概念白盒測(cè)試=測(cè)試所有的語句?設(shè)此開發(fā)工作已結(jié)束,程序送交到測(cè)試組,代碼中有一個(gè)潛在的被0除的錯(cuò)誤。若測(cè)試組采用的測(cè)試用例的執(zhí)行路徑?jīng)]有同時(shí)經(jīng)過x=0和y=5/x進(jìn)行測(cè)試,顯然測(cè)試工作似乎非常完善,測(cè)試用例覆蓋了所有執(zhí)行語句,也沒有被0除的錯(cuò)誤發(fā)生。Inspurgroup2014
2、/9/16浪潮軟件評(píng)測(cè)實(shí)驗(yàn)室4白盒測(cè)試概念?白盒測(cè)試也稱結(jié)構(gòu)測(cè)試、透明盒測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于代碼的測(cè)試,是一種測(cè)試用例設(shè)計(jì)方法,它從程序的控制結(jié)構(gòu)導(dǎo)出測(cè)試用例。?白盒測(cè)試使用被測(cè)單元內(nèi)部如何工作的信息,允許測(cè)試人員對(duì)程序內(nèi)部邏輯結(jié)構(gòu)及有關(guān)信息來設(shè)計(jì)和選擇測(cè)試用例,對(duì)程序的邏輯路徑進(jìn)行測(cè)試?;谝粋€(gè)應(yīng)用代碼的內(nèi)部邏輯知識(shí),測(cè)試是基于覆蓋全部代碼、分支、路徑、條件。Inspurgroup9/16/2014浪潮軟件評(píng)測(cè)實(shí)驗(yàn)室22014/9/165白盒測(cè)試的主要目的:?保證一個(gè)模塊中的所有獨(dú)立路徑至少被執(zhí)行一次;?對(duì)所有的邏輯
3、值均需要測(cè)試真、假兩個(gè)分支;?在上下邊界及可操作范圍內(nèi)運(yùn)行循環(huán);?檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。Inspurgroup9/16/2014浪潮軟件評(píng)測(cè)實(shí)驗(yàn)室6測(cè)試覆蓋標(biāo)準(zhǔn)?白盒法特點(diǎn):以程序的內(nèi)部邏輯為基礎(chǔ)設(shè)計(jì)測(cè)試用例,所以又稱為邏輯覆蓋法。應(yīng)用白盒法時(shí),手頭必須有程序的規(guī)格說明以及程序清單。?白盒法考慮的是測(cè)試用例對(duì)程序內(nèi)部邏輯的覆蓋程度。最徹底的白盒法是覆蓋程序中的每一條路徑,但是由于程序中一般含有循環(huán),所以路徑的數(shù)目極大,要執(zhí)行每一條路徑是不可能的,只能希望覆蓋的程度盡可能高些。Inspur9/16/2014浪潮軟件
4、評(píng)測(cè)實(shí)驗(yàn)室group32014/9/167測(cè)試覆蓋標(biāo)準(zhǔn)Inspurgroup2014/9/16浪潮軟件評(píng)測(cè)實(shí)驗(yàn)室8測(cè)試覆蓋標(biāo)準(zhǔn)?上頁小程序的流程圖,其中包括了一個(gè)執(zhí)行達(dá)20次的循環(huán)。那么它所包含的不同執(zhí)行路2013徑數(shù)高達(dá)5(=10)條,若要對(duì)它進(jìn)行窮舉測(cè)試,覆蓋所有的路徑。假使測(cè)試程序?qū)γ恳粭l路徑進(jìn)行測(cè)試需要1毫秒,同樣假定一天工作24小時(shí),一年工作365天,那么要想把如圖所示的小程序的所有路徑測(cè)試完,則需要3170年。?上頁小程序即使每條路徑都測(cè)試過了,仍然可能存在錯(cuò)誤。因?yàn)椋?窮舉路徑測(cè)試無法檢查出程序本身是否違反了
5、設(shè)計(jì)規(guī)范,即程序是否是一個(gè)錯(cuò)誤的程序。?窮舉路徑測(cè)試不可能查出程序因?yàn)檫z漏路徑而出錯(cuò)。?窮舉路徑測(cè)試發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤。Inspurgroup2014/9/16浪潮軟件評(píng)測(cè)實(shí)驗(yàn)室42014/9/169測(cè)試覆蓋標(biāo)準(zhǔn)?為了衡量測(cè)試的覆蓋程度,需要建立一些標(biāo)準(zhǔn)。測(cè)試覆蓋率可以表示出測(cè)試的充分性,在測(cè)試分析報(bào)告中可以作為量化指標(biāo)的依據(jù),測(cè)試覆蓋率越高效果越好。?測(cè)試覆蓋率:用于確定測(cè)試所執(zhí)行到的覆蓋項(xiàng)的百分比。測(cè)試覆蓋率包括功能點(diǎn)覆蓋率和邏輯覆蓋率:?功能點(diǎn)覆蓋率大致用于表示軟件已經(jīng)實(shí)現(xiàn)的功能與軟件需要實(shí)現(xiàn)的功能之間的比
6、例關(guān)系。?邏輯覆蓋率指程序邏輯的覆蓋率,可分為語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋。Inspurgroup2014/9/16浪潮軟件評(píng)測(cè)實(shí)驗(yàn)室10測(cè)試覆蓋標(biāo)準(zhǔn)?覆蓋標(biāo)準(zhǔn)從低到高分別是:?語句覆蓋:一個(gè)較弱的測(cè)試標(biāo)準(zhǔn)。它的含義是:選擇足夠的測(cè)試用例,使得程序中每個(gè)語句至少都能被執(zhí)行一次。?它是最弱的邏輯覆蓋,效果有限,必須與其它方法交互使用。?判定覆蓋(分支覆蓋):執(zhí)行足夠的測(cè)試用例,使得程序中的每一個(gè)分支至少都通過一次。?判定覆蓋比語句覆蓋稍強(qiáng)一些,但實(shí)際效果表明,只是判定覆蓋,還不能保證一定能
7、查出在判斷條件中存在的錯(cuò)誤。?條件覆蓋:執(zhí)行足夠的測(cè)試用例,使程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次;?條件覆蓋深入到判定中的每個(gè)條件,但可能不能滿足判定覆蓋的要求。Inspurgroup2014/9/16浪潮軟件評(píng)測(cè)實(shí)驗(yàn)室52014/9/1611測(cè)試覆蓋標(biāo)準(zhǔn)?判定/條件覆蓋:執(zhí)行足夠的測(cè)試用例,使判定中每個(gè)條件取到各種可能的值,并使每個(gè)判定取到各種可能的結(jié)果。?判定/條件覆蓋有缺陷。從表面看,它測(cè)試了所有條件的取值。但事實(shí)并非如此。往往某些條件掩蓋了另一些條件。會(huì)遺漏某些條件取值錯(cuò)誤的情況。?為徹底地檢查所有
8、條件的取值,需要將判定語句中給出的復(fù)合條件表達(dá)式進(jìn)行分解,形成由多個(gè)基本判定嵌套的流程圖。這樣就可以有效地檢查所有的條件是否正確了。?條件組合覆蓋:執(zhí)行足夠的用例,使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。?這是一種相當(dāng)強(qiáng)的覆蓋準(zhǔn)則,可以有效地檢查各種可能的條件取值的組合是否正確。它不但可覆蓋所有