日本国产高清一区二区三区,成人午夜三级一区二区,久久www成人看片免费,天天更新国产极品视频,国产欧美日韩一区二区三区在线,久久99精品国产99久久,国产精品伦理久久久,视频一区二区在线播放

分享軟件測試中那些常用的白盒測試方法
發(fā)布時間:2025-05-12

從是否考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的角度,測試方法可分為白盒測試、黑盒測試和灰盒測試。軟件單元測試和軟件集成測試一般采用白盒測試方法,輔助以黑盒測試方法;配置項(xiàng)測試、配置項(xiàng)集成測試和系統(tǒng)測試一般采用黑盒測試方法,輔助以白盒測試方法。今天我們介紹一下軟件測試中常用的那些白盒測試方法。

 

一、控制流測試

 

依據(jù)控制流程圖產(chǎn)生測試用例,通過對不同控制結(jié)構(gòu)成份的測試,驗(yàn)證程序的控制結(jié)構(gòu)。所謂驗(yàn)證某種控制結(jié)構(gòu),即指使這種控制結(jié)構(gòu)在程序運(yùn)行中得到執(zhí)行,也稱這一過程為覆蓋。

常用的覆蓋有語句覆蓋、分支覆蓋、條件覆蓋、條件組合覆蓋、修正的條件判定覆蓋(MC/DC)、路徑覆蓋等。

 

控制流測試的標(biāo)準(zhǔn)步驟為:

 

a) 將程序流程圖轉(zhuǎn)換成控制流圖;

b) 經(jīng)過語法分析求得路徑表達(dá)式;

c) 生成路徑樹;

d) 進(jìn)行路徑編碼;

e) 經(jīng)過譯碼得到執(zhí)行的路徑;

f) 通過路徑枚舉產(chǎn)生特定路徑的測試用例。

 

當(dāng)然,如果被測代碼的邏輯比較簡單,也可以適當(dāng)簡化上述步驟。

 

二、數(shù)據(jù)流測試

 

數(shù)據(jù)流測試是用控制流程圖對變量的定義和引用進(jìn)行分析,查找出未定義的變量或定義了而未使用的變量,這些變量可能是拼錯的變量、變量混淆或丟失了語句。數(shù)據(jù)流測試通過一定的覆蓋準(zhǔn)則,檢查程序中每個數(shù)據(jù)對象的每次定義、使用和消除的情況。

 

數(shù)據(jù)流測試方法的標(biāo)準(zhǔn)步驟為:

 

a) 將程序流程圖轉(zhuǎn)換成控制流圖;

b) 在每個鏈路上標(biāo)注對有關(guān)變量的數(shù)據(jù)操作的操作符號或符號序列;

c) 選定數(shù)據(jù)流測試策略;

d) 根據(jù)測試策略得到測試路徑;

e) 根據(jù)路徑可以獲得測試輸入數(shù)據(jù)和測試用例。

 

靜態(tài)的數(shù)據(jù)流測試一般使用測試工具自動進(jìn)行。動態(tài)數(shù)據(jù)流異常檢查在程序運(yùn)行時執(zhí)行,獲得的是對數(shù)據(jù)對象的真實(shí)操作序列,克服了靜態(tài)分析檢查的局限,但動態(tài)方式檢查是沿與測試輸入有關(guān)的一部分路徑進(jìn)行的,檢查的全面性和程序結(jié)構(gòu)覆蓋有關(guān)。

 

三、程序插樁

 

程序插樁是向被測程序中插入操作以實(shí)現(xiàn)測試目的方法。程序插樁不應(yīng)該影響被測程序的運(yùn)行過程和功能。

 

由于數(shù)據(jù)記錄量大,手工進(jìn)行將是一件很煩瑣的事,所以程序插樁一般會直接采用測試工具進(jìn)行。

 

注意,這里的程序插樁需要與通常說的單元測試時對函數(shù)的打樁區(qū)別開來,這里的程序插樁是指在保證被測程序原有邏輯完整性的基礎(chǔ)上在程序中插入一些探針(本質(zhì)上就是進(jìn)行信息采集的代碼段,可以是賦值語句或采集覆蓋信息的函數(shù)調(diào)用),通過探針的執(zhí)行并拋出程序運(yùn)行的特征數(shù)據(jù)。也就是通過程序插樁的方式來檢測被測代碼的執(zhí)行覆蓋情況。

 

四、接口打樁

 

樁,是指用來代替關(guān)聯(lián)代碼或者未實(shí)現(xiàn)代碼的代碼,也就是我們在做軟件單元測試時常說的對接口函數(shù)打樁。打樁的目的主要有:隔離、補(bǔ)齊、控制。

 

隔離:將測試任務(wù)之外的,并且與測試任務(wù)相關(guān)的代碼,用樁來代替,從而實(shí)現(xiàn)分離測試任務(wù)。補(bǔ)齊:用樁來代替未實(shí)現(xiàn)的代碼。控制:在測試時,人為設(shè)定相關(guān)代碼的行為,使之符合測試需求。

 

五、程序變異

 

程序變異是一種錯誤驅(qū)動測試方法。該方法針對某類特定程序錯誤,定義一系列的變異算子,將變異算子作用于程序代碼,產(chǎn)生若干符合語法的變異體,實(shí)際是將故障植入程序,用測試數(shù)據(jù)逐個測試變異體。根據(jù)變異程度的不同,可以分為強(qiáng)變異和弱變異。程序變異方法具有針對性強(qiáng)、系統(tǒng)性強(qiáng)的特點(diǎn),在對軟件進(jìn)行測試的同時,也可評價測試用例集的錯誤檢測能力。

 

有別于基于需求的覆蓋測試和基于結(jié)構(gòu)的覆蓋測試,變異測試則更為直接的選擇了缺陷覆蓋。因?yàn)樽儺悳y試相信如果一個測試用例集能夠發(fā)現(xiàn)人為注入的這些缺陷,也存在極大的可能會發(fā)現(xiàn)那些我們并不知道的缺陷。基于這樣的思路,在測試之前,需要對被測試的程序進(jìn)行變異,然后利用測試用例來殺死這些變異體,以獲取與注入缺陷類型相同或相近的那些隱藏缺陷。

 

六、域測試

 

域測試是要判別程序?qū)斎肟臻g的劃分是否正確。該方法限制較多,使用不方便,供有特殊要求的測試使用。

 

七、符號求值

 

符號求值是允許數(shù)值變量取“符號值”以及數(shù)值。符號求值可以檢查公式的執(zhí)行結(jié)果是否達(dá)到程序預(yù)期的目的,也可以通過程序的符號執(zhí)行,產(chǎn)生出程序的路徑,用于產(chǎn)生測試數(shù)據(jù)。

符號求值最好使用工具,在公式分支較少時手工推導(dǎo)也是可行的。

 

總結(jié)

 

以上就是軟件測試中的一些白盒測試方法,其中最常用的當(dāng)屬控制流測試、數(shù)據(jù)流測試、程序插樁和接口打樁。后三種用得比較少,僅供了解。你都學(xué)會了嗎?




更多軟件測試相關(guān)推薦:

軟件測試更多干貨文章

軟件測試就業(yè)培訓(xùn)


  文章來源:網(wǎng)絡(luò)  版權(quán)歸原作者所有

上文內(nèi)容不用于商業(yè)目的,如涉及知識產(chǎn)權(quán)問題,請權(quán)利人聯(lián)系博為峰小編(021-64471599-8103),我們將立即處理



相關(guān)閱讀
/