python 白盒测试_白盒测试教程 - 颜丽的个人空间 - OSCHINA - 中文开源技术交流社区...
總共貼了39節(jié),后續(xù)還有很長(zhǎng),共122節(jié),文章名為‘白盒測(cè)試教程’
1、白盒測(cè)試概念
2、測(cè)試覆蓋標(biāo)準(zhǔn)
3、邏輯驅(qū)動(dòng)測(cè)試
4、基本路徑測(cè)試
白盒測(cè)試概念
1、白盒測(cè)試也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,是一種測(cè)試用例設(shè)計(jì)方法,它從程序的控制結(jié)構(gòu)導(dǎo)出測(cè)試用例。(測(cè)試用例由測(cè)試輸入數(shù)據(jù)以及與之對(duì)應(yīng)的輸出結(jié)果組成。? 測(cè)試用例設(shè)計(jì)的好壞直接決定了測(cè)試的效果和結(jié)果。所以說(shuō)在軟件測(cè)試活動(dòng)中最關(guān)鍵的步驟就是設(shè)計(jì)有效的測(cè)試用例。)
2、白盒測(cè)試使用被測(cè)單元內(nèi)部如何工作的信息,允許測(cè)試人員對(duì)程序內(nèi)部邏輯結(jié)構(gòu)及有關(guān)信息來(lái)設(shè)計(jì)和選擇測(cè)試用例,對(duì)程序的邏輯路徑進(jìn)行測(cè)試。基于一個(gè)應(yīng)用代碼的內(nèi)部邏輯知識(shí),測(cè)試是基于覆蓋全部代碼、分支、路徑、條件。
白盒測(cè)試的主要目的:
1、保證一個(gè)模塊中的所有獨(dú)立路徑至少被執(zhí)行一次;
2、對(duì)所有的邏輯值均需要測(cè)試真、假兩個(gè)分支;
3、在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán);
4、檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。
測(cè)試覆蓋標(biāo)準(zhǔn)
1、白盒法特點(diǎn):以程序的內(nèi)部邏輯為基礎(chǔ)設(shè)計(jì)測(cè)試用例,所以又稱為邏輯覆蓋法。應(yīng)用白盒法時(shí),手頭必須有程序的規(guī)格說(shuō)明以及程序清單。
白盒法考慮的是測(cè)試用例對(duì)程序內(nèi)部邏輯的覆蓋程度。最徹底的白盒法是覆蓋程序中的每一條路徑,但是由于程序中一般含有循環(huán),所以路徑的數(shù)目極大,要執(zhí)行每一條路徑是不可能的,只能希望覆蓋的程度盡可能高些。
測(cè)試覆蓋標(biāo)準(zhǔn)
測(cè)試覆蓋標(biāo)準(zhǔn)
1、上頁(yè)小程序的流程圖,其中包括了一個(gè)執(zhí)行達(dá)20次的循環(huán)。那么它所包含的不同執(zhí)行路徑數(shù)高達(dá)520(=1013)條,若要對(duì)它進(jìn)行窮舉測(cè)試,覆蓋所有的路徑。假使測(cè)試程序?qū)γ恳粭l路徑進(jìn)行測(cè)試需要1毫秒,同樣假定一天工作24小時(shí),一年工作365 天, 那么要想把如圖所示的小程序的所有路徑測(cè)試完,則需要3170年。
測(cè)試覆蓋標(biāo)準(zhǔn)
一、為了衡量測(cè)試的覆蓋程度,需要建立一些標(biāo)準(zhǔn),目前常用的一些覆蓋標(biāo)準(zhǔn)從低到高分別是:
1、語(yǔ)句覆蓋:是一個(gè)比較弱的測(cè)試標(biāo)準(zhǔn),它的含義是:選擇足夠的測(cè)試用例,使得程序中每個(gè)語(yǔ)句至少都能被執(zhí)行一次。
它是最弱的邏輯覆蓋,效果有限,必須與其它方法交互使用。
2、判定覆蓋(也稱為分支覆蓋):執(zhí)行足夠的測(cè)試用例,使得程序中的每一個(gè)分支至少都通過(guò)一次。
判定覆蓋只比語(yǔ)句覆蓋稍強(qiáng)一些,但實(shí)際效果表明,只是判定覆蓋,還不能保證一定能查出在判斷的條件中存在的錯(cuò)誤。因此,還需要更強(qiáng)的邏輯覆蓋準(zhǔn)則去檢驗(yàn)判斷內(nèi)部條件。
3、條件覆蓋:執(zhí)行足夠的測(cè)試用例,使程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次;
條件覆蓋深入到判定中的每個(gè)條件,但可能不能滿足判定覆蓋的要求。
測(cè)試覆蓋標(biāo)準(zhǔn)
1、判定/條件覆蓋:執(zhí)行足夠的測(cè)試用例,使得判定中每個(gè)條件取到各種可能的值,并使每個(gè)判定取到各種可能的結(jié)果。
判定/條件覆蓋有缺陷。從表面上來(lái)看,它測(cè)試了所有條件的取值。但是事實(shí)并非如此。往往某些條件掩蓋了另一些條件。會(huì)遺漏某些條件取值錯(cuò)誤的情況。為徹底地檢查所有條件的取值,需要將判定語(yǔ)句中給出的復(fù)合條件表達(dá)式進(jìn)行分解,形成由多個(gè)基本判定嵌套的流程圖。這樣就可以有效地檢查所有的條件是否正確了。
2、條件組合覆蓋:執(zhí)行足夠的例子,使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。
這是一種相當(dāng)強(qiáng)的覆蓋準(zhǔn)則,可以有效地檢查各種可能的條件取值的組合是否正確。它不但可覆蓋所有條件的可能取值的組合,還可覆蓋所有判斷的可取分支,但可能有的路徑會(huì)遺漏掉。測(cè)試還不完全。
白盒測(cè)試的主要方法:
一、邏輯驅(qū)動(dòng)測(cè)試
1、語(yǔ)句覆蓋:語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)試程序,使得每一條可執(zhí)行語(yǔ)句至少執(zhí)行一次;
2、判定覆蓋(也稱為分支覆蓋):設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行所測(cè)程序,使程序中每個(gè)判斷的取真分支和取假分支至少執(zhí)行一次;
3、條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行所測(cè)程序,使程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次;
4、判定/條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行所測(cè)程序,使程序中每個(gè)判斷的每個(gè)條件的所有可能取值至少執(zhí)行一次,并且每個(gè)可能的判斷結(jié)果也至少執(zhí)行一次,換句話說(shuō),即是要求各個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次;
5、條件組合覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行所測(cè)程序,使程序中每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次;
二、基本路徑測(cè)試
設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行所測(cè)程序,要覆蓋程序中所有可能的路徑。這是最強(qiáng)的覆蓋準(zhǔn)則。但在路徑數(shù)目很大時(shí),真正做到完全覆蓋是很困難的,必須把覆蓋路徑數(shù)目壓縮到一定限度。
語(yǔ)句覆蓋
o語(yǔ)句覆蓋”是一個(gè)比較弱的測(cè)試標(biāo)準(zhǔn),它的含義是:選擇足夠的測(cè)試用例,使得程序中每個(gè)語(yǔ)句至少都能被執(zhí)行一次。
n如,例1:
PROCEDURE??M(VAR A,B,X:REAL);
BEGIN
IF (A>1) AND (B=0) ?THEN X:=X/A;
IF (A=2) OR (X>1) ? THEN X:=X+1;
END.
總共貼了39節(jié),后續(xù)還有很長(zhǎng),共122節(jié),文章名為‘白盒測(cè)試教程’
總結(jié)
以上是生活随笔為你收集整理的python 白盒测试_白盒测试教程 - 颜丽的个人空间 - OSCHINA - 中文开源技术交流社区...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小森生活农田怎么增加
- 下一篇: 楚乔传星儿眼睛为何瞎了 华佗秋水的作用是