伴隨著軟件測(cè)試技術(shù)的迅速發(fā)展产阱,白盒和黑盒測(cè)試在測(cè)試行業(yè)中運(yùn)用的越來(lái)越多江解。白盒測(cè)試相對(duì)于黑盒測(cè)試在很多地方是不同的,白盒趨向于對(duì)軟件結(jié)構(gòu)和代碼進(jìn)行測(cè)試脐彩,可以設(shè)計(jì)出測(cè)試用例碎乃。
可靠的軟件白盒測(cè)試工程師可以通過(guò)白盒對(duì)軟件內(nèi)部的邏輯關(guān)系進(jìn)行定義,對(duì)各種邏輯路徑實(shí)現(xiàn)全面覆蓋惠奸,這樣在測(cè)試中就能檢查各個(gè)點(diǎn)和部位程序狀態(tài)梅誓,保證測(cè)試的實(shí)際與預(yù)期狀態(tài)相一-致。本文將深入分析軟件測(cè)試中的白盒測(cè)試方法,希望對(duì)軟件測(cè)試提供幫助梗掰。
1.軟件白盒測(cè)試的作用及效果
做過(guò)軟件測(cè)試的人都了解白盒測(cè)試能夠準(zhǔn)確地產(chǎn)生出測(cè)試運(yùn)用嵌言。
例如,這個(gè)用例的好處在哪里呢及穗,本文認(rèn)為其有以下作用:
一是摧茴,實(shí)現(xiàn)了測(cè)試模塊中的每個(gè)路徑都能被測(cè)試-次,而且對(duì)所有的邏輯值都能調(diào)用true和fa1se埂陆。
二是苛白,在軟件的上下界面以及可操作的范圍內(nèi)可以運(yùn)行所有的循環(huán),做到測(cè)試的全面性焚虱。
三是购裙,可以自動(dòng)檢查內(nèi)部數(shù)據(jù)的結(jié)構(gòu)性以確保其可以有效的操作。因此鹃栽,將測(cè)試程序當(dāng)做一一個(gè)已經(jīng)打開(kāi)的盒子躏率,那么測(cè)試人員只需要按照盒子中已經(jīng)存在的邏輯結(jié)構(gòu)信息,設(shè)計(jì)相應(yīng)的測(cè)試用例民鼓,就可以實(shí)現(xiàn)全路徑覆蓋測(cè)試禾锤,檢查程序的運(yùn)行狀態(tài),從而確定實(shí)際狀態(tài)與預(yù)期狀態(tài)的差距摹察。
與通常的黑盒測(cè)試相比較,白盒最顯著的優(yōu)勢(shì)就是提高了路徑代碼的覆蓋率倡鲸,在測(cè)試中可以及時(shí)發(fā)現(xiàn)代碼中存在的一些不確定問(wèn)題供嚎。
但是,白盒測(cè)試缺點(diǎn)也是顯而易見(jiàn)的峭状,最主要的就是路徑較為復(fù)雜克滴,測(cè)試不能對(duì)每一條路徑都測(cè)試,測(cè)試全部依賴代碼优床,如果設(shè)計(jì)不夠精確劝赔,會(huì)影響測(cè)試的準(zhǔn)確度,同時(shí)如果系統(tǒng)很龐大胆敞,那么測(cè)試花費(fèi)就會(huì)很高着帽。
2軟件白盒測(cè)試分析
2.1精確挑選白盒測(cè)試工具
從當(dāng)前的白盒測(cè)試運(yùn)用方向來(lái)看,其運(yùn)用端主要集中在了軍工移层、航空航天等高精端行業(yè)仍翰,但是伴隨著測(cè)試活動(dòng)的迅速增加,白盒測(cè)試的運(yùn)用范圍也開(kāi)始變得更加多元化观话,主要是做好對(duì)白盒測(cè)試軟件的選購(gòu)予借。在選購(gòu)中要做到代碼深度覆蓋、開(kāi)發(fā)語(yǔ)言支持以及測(cè)試的全程可視化操作,這樣在測(cè)試中就能做到安全性灵迫。
比如對(duì)于開(kāi)發(fā)語(yǔ)言秦叛,白盒相對(duì)于黑盒主要是對(duì)源代碼測(cè)試,根據(jù)測(cè)試的需求瀑粥,要將重點(diǎn)放在靜態(tài)的錯(cuò)誤分析以及動(dòng)態(tài)的測(cè)試等挣跋。目前,白盒測(cè)試支持的開(kāi)發(fā)語(yǔ)言包含了C++利凑、Java等浆劲,伴隨著軟件語(yǔ)言的多種化,支持的語(yǔ)言會(huì)越來(lái)越多哀澈。同時(shí)要檢查測(cè)試硬件工作是否可以支持PCI/VME/CPCI總線等牌借,因此,在選購(gòu)軟件白盒測(cè)試工具時(shí)割按,要綜合考慮所軟件的測(cè)試性能和測(cè)試標(biāo)準(zhǔn)差等膨报,使測(cè)試得到的數(shù)據(jù)精準(zhǔn)化。
2.2白盒基本路徑測(cè)試法
白盒測(cè)試方法是比較豐富的适荣,經(jīng)常使用的有邏輯覆蓋法现柠、靜態(tài)質(zhì)量度量法等等,但是基于基礎(chǔ)性測(cè)試的基本路徑測(cè)試法是采用最多的測(cè)試方法弛矛,受到測(cè)試者的喜愛(ài)够吩。基本路徑測(cè)試法以程序控制流程圖為基礎(chǔ)丈氓,可以對(duì)結(jié)構(gòu)控制的環(huán)路進(jìn)行分析周循,最后導(dǎo)出局基本的可執(zhí)行路徑的集合,這對(duì)于測(cè)試用例的實(shí)施具有顯著的幫助作用万俗。
主要有4個(gè)過(guò)程:首先湾笛,設(shè)計(jì)出程序控制流程圖,對(duì)程序的實(shí)施流程描述闰歪。其次嚎研,根據(jù)程序環(huán)路復(fù)雜程度導(dǎo)出程序基本路徑,從而解決程序圈的復(fù)雜度库倘。再次临扮,對(duì)測(cè)試用例導(dǎo)出,根據(jù)程序結(jié)構(gòu)和復(fù)雜度設(shè)計(jì)用例的輸入和輸出結(jié)果教翩。
最后公条,將導(dǎo)出的測(cè)試用例進(jìn)行實(shí)施,保證基本路徑中的每一條路徑都被執(zhí)行迂曲,達(dá)到測(cè)試的整體性靶橱。在測(cè)試中,我們要將基本路徑全部覆蓋,在每個(gè)分支的匯集處應(yīng)該有一個(gè)匯集點(diǎn)关霸,這樣測(cè)試數(shù)據(jù)就能集中反映該點(diǎn)的測(cè)試情況传黄,讓測(cè)試或者程序員一目了然
2.3白盒測(cè)試實(shí)例分析
結(jié)合具體的白盒測(cè)試實(shí)例,可以讓分析過(guò)程變得更加合理队寇,因此膘掰,在實(shí)際測(cè)試中,可以根據(jù)客戶的要求佳遣,分別采用語(yǔ)句覆蓋识埋、判定覆蓋及其設(shè)計(jì)測(cè)試用例。(1)語(yǔ)晌覆蓋(StatementCoverage)零渐。
選取足夠的測(cè)試數(shù)據(jù)窒舟,讓測(cè)試程序中的每個(gè)語(yǔ)句至少執(zhí)行1次。(2)判定覆蓋诵盼。判定覆蓋主要是用來(lái)設(shè)計(jì)測(cè)試用例惠豺,保證設(shè)計(jì)的程序中的所有判定都能獲得一次檢驗(yàn)的機(jī)會(huì),比如“真值”和“假值”风宁,或者是“真”分支或者“假”分支洁墙,這樣就能使測(cè)試比較全面。
使用白盒進(jìn)行檢測(cè)時(shí)戒财,要經(jīng)常檢查程序中每條通路是否按預(yù)定的要求正常工作热监,要測(cè)試所有合法的輸入與輸出,發(fā)現(xiàn)路徑或覆蓋問(wèn)題之后饮寞,要重新理解程序內(nèi)部的邏輯結(jié)構(gòu)孝扛,以測(cè)試所有邏輯路徑,該循環(huán)對(duì)象可以同時(shí)在循環(huán)邊界和運(yùn)行邊界上執(zhí)行骂际,以滿足不同測(cè)試的需要。
同時(shí)在測(cè)試中也要檢查未覆蓋的白盒單位冈欢,這是因?yàn)槲锤采w的邏輯單位通常對(duì)應(yīng)未測(cè)試的等價(jià)類歉铝,從而找到遺漏的測(cè)試用例凑耻,讓白盒測(cè)試做到全面化类缤,實(shí)現(xiàn)測(cè)試工作的要求。
2.4白盒測(cè)試持續(xù)改進(jìn)關(guān)鍵
白盒測(cè)試在初始階段膏蚓,企業(yè)內(nèi)部只是進(jìn)行零星的單元測(cè)試或集成測(cè)試實(shí)踐,缺乏成功案例采郎。企業(yè)測(cè)試人員常見(jiàn)對(duì)白盒測(cè)試缺乏概念蒜埋,大概了解代碼審查管嬉、單元測(cè)試以及集成測(cè)試怎么做,但是涉及到具體的場(chǎng)景時(shí)沟启,尤其是模塊單元測(cè)試或者跨模塊、跨子系統(tǒng)實(shí)施集成測(cè)試時(shí)悬而,就會(huì)變得無(wú)頭緒。
伴隨著各種測(cè)試工具的迅速出現(xiàn)呻袭,測(cè)試已經(jīng)不再是測(cè)試人員的負(fù)擔(dān),主動(dòng)測(cè)試也成為了測(cè)試工作者的一種態(tài)度闰蚕,而且在流程開(kāi)發(fā)中已經(jīng)不限于白盒測(cè)試涩哟。
在持續(xù)改進(jìn)的白盒測(cè)試技術(shù)中,測(cè)試與編程人員要做好溝通交流盼玄,積極地設(shè)計(jì)代碼功能贴彼,同時(shí)在標(biāo)準(zhǔn)允許的情況下人工對(duì)設(shè)計(jì)用例進(jìn)行設(shè)計(jì),對(duì)白盒的覆蓋率進(jìn)行統(tǒng)計(jì)埃儿,從而實(shí)現(xiàn)最強(qiáng)的白盒測(cè)試能力器仗,在持續(xù)改進(jìn)中,最理想的覆蓋率是100%的語(yǔ)句童番、標(biāo)準(zhǔn)精钮、分支以及路徑覆蓋。
3結(jié)語(yǔ)
綜上所述剃斧,白盒測(cè)試技術(shù)在軟件測(cè)試中運(yùn)用極為廣泛轨香,深受軟件測(cè)試人員的喜愛(ài),可以依照代碼檢測(cè)軟件中的每條路徑和分支幼东,及時(shí)發(fā)現(xiàn)代碼中的錯(cuò)誤信息臂容,從而達(dá)到最優(yōu)化的測(cè)試。但是筋粗,白盒測(cè)試對(duì)遺漏路徑測(cè)試不足同時(shí)數(shù)據(jù)敏感性也不強(qiáng)策橘,導(dǎo)致測(cè)試時(shí)需要比對(duì)的內(nèi)容多炸渡。
下一步娜亿,在軟件白盒測(cè)試中,測(cè)試人員要持續(xù)改進(jìn)測(cè)試方法和程序蚌堵,提高標(biāo)準(zhǔn)覆蓋买决、判定/標(biāo)準(zhǔn)覆蓋沛婴、標(biāo)準(zhǔn)組合覆蓋、修正判定/標(biāo)準(zhǔn)覆蓋等測(cè)試的比重督赤,從而優(yōu)化測(cè)試路徑嘁灯,提高測(cè)試效率。
看了這篇內(nèi)容后躲舌,堅(jiān)信以下兩件事丑婿,也會(huì)對(duì)你的自我提升有一定的幫助:
1、點(diǎn)贊没卸,讓更多人能看到羹奉,同時(shí)你的認(rèn)可也會(huì)鼓勵(lì)我創(chuàng)作更多優(yōu)質(zhì)內(nèi)容。
2约计、要讓自己變得更強(qiáng):想想诀拭,假如你是要在測(cè)試這個(gè)行業(yè)長(zhǎng)期做下去,你的工作經(jīng)驗(yàn)和測(cè)試技術(shù)是絕對(duì)不夠的煤蚌,你需要提升耕挨,你需要豐富你的技術(shù)棧!還等什么尉桩!