王春平
摘 要:為了提高動態(tài)軟件測試的效率及精準度,因而大力推行將白盒測試技術(shù)應用在動態(tài)軟件測試中,以高效率地查找出軟件代碼中的錯誤或不足,進而促進軟件系統(tǒng)開發(fā)達到高質(zhì)量的標準。在此,本文將對白盒測試技術(shù)在動態(tài)軟件測試中的應用進行重點研究。
關(guān)鍵詞:白盒測試技術(shù);動態(tài)軟件測試;覆蓋;應用
軟件測試是任何軟件系統(tǒng)開發(fā)過程中的一個重要的環(huán)節(jié),對任一軟件系統(tǒng)進行科學、嚴格的測試,這是確保軟件系統(tǒng)達到高質(zhì)量、高可靠性標準的一個有效途徑。而為了提高動態(tài)軟件測試的效率及精準度,所以大力推行將白盒測試技術(shù)應用在動態(tài)軟件測試中,高效率的查找出軟件代碼中的錯誤或不足,以促進軟件系統(tǒng)開發(fā)的高質(zhì)量。
1 白盒測試及其常用方法
1.1 白盒測試
白盒測試,又叫透明盒測試或邏輯驅(qū)動測試。這是一種有效的測試方法與技術(shù),其主要功能是全面了解程序內(nèi)部的邏輯結(jié)構(gòu);驗證軟件程序;檢測單元內(nèi)部的工作情況;測試軟件程序所有的邏輯路徑。測試者通過運用白盒測試方法與技術(shù)來檢查軟件程序的邏輯結(jié)構(gòu)、內(nèi)部結(jié)構(gòu)等,從中得出相應的檢測數(shù)據(jù),而后測試者根據(jù)這些數(shù)據(jù)來判斷被測軟件系統(tǒng)是否達到相應的標準,測試該軟件系統(tǒng)是否還存在代碼錯誤,最終確定該軟件系統(tǒng)能夠投入到具體的應用中。
1.2 白盒測試的常用方法
在白盒測試技術(shù)中已形成了一些較為成熟的常用方法,其中以覆蓋率測試用例設計方法為主要代表,且構(gòu)成了一系列完整的方法體系,如語句覆蓋法、判定覆蓋法等都是該方法的組成要素。下面將通過一個具體程序?qū)嵗齺斫榻B語句覆蓋法與判定覆蓋法,例子程序的內(nèi)容包括:①IF[(A<2)and(B=1)]then;②y=y/A;③IF[(C>2)and(X>1)]then;④z=z+1;⑤結(jié)束。如圖1與圖2,這是上述程序的流程圖以及流圖。
⑴語句覆蓋法。當程序應用語句覆蓋法進行測試時,其能夠保證任何一個執(zhí)行語句均可得到執(zhí)行及路徑測試,并完成語句覆蓋。如上述的程序?qū)嵗?,根?jù)圖2可知程序中的①②③④⑤語句的執(zhí)行路徑為B、C、E、F,在測試用例過程中,只需滿足A=1,B=1,C=3,X=2則完成了語句的執(zhí)行與覆蓋,通過了語句執(zhí)行路徑的測試。
⑵判定覆蓋。判定覆蓋法,又稱分支覆蓋法,這種方法與語句覆蓋法相比,其測試效果更為強大。該方法的測試原理是對程序中所有用例進行執(zhí)行與測試,從而確保每一個程序路徑都經(jīng)歷了一次“真值”與“假值”的判定。如上述的程序?qū)嵗?,只有程序中的①③語句在測試用例過程中獲得了一次“真值”與“假值”的判定時,該程序才能完成覆蓋測試的判定。
2 白盒測試技術(shù)在動態(tài)軟件測試中的應用
2.1 軟件功能需求
如圖3所示,在應用白盒測試技術(shù)在具體的動態(tài)軟件測試操作之前,測試者需要設計一個程序流程圖,并編寫模塊,以滿足軟件功能的需求。見圖3,用戶可通過t1、t2、t3三個文本框來實現(xiàn)數(shù)據(jù)的輸入,利用“+、-、×、/”四個功能選項按鈕來完成對軟件程序的測試。在測試過程中,測試者只需要將數(shù)字輸入到t1、t2的文本框中,通過“+、-、×、/”功能按鈕來進行運算,其結(jié)果會在t3文本框中顯示。
2.2 具體的測試應用
動態(tài)軟件測試在應用白盒測試技術(shù)的操作之前,需要確保程序中的每條路徑滿足了覆蓋。根據(jù)圖3可將程序測試分為四個分支節(jié)點,測試者依據(jù)具體需求輸入相應的數(shù)值(如d1=99,d2=25與d1=99,d2=abc)以覆蓋程序第一個分支節(jié)點中的兩個分支。而后,通過“+、-、×、/”來覆蓋第二個分支節(jié)點中的四個分支。對于第三個分支節(jié)點的覆蓋,可輸入d2=1、d2=25來完成兩個分支的覆蓋。而在第四個分支節(jié)點中,以循環(huán)的形式來完成分支覆蓋,一般只進行一次路徑覆蓋的循環(huán)執(zhí)行,以完成對程序循環(huán)體的驗證。只有當軟件程序中的四個分支節(jié)點都滿足了覆蓋,并通過了路徑驗證,這時軟件系統(tǒng)是否存在隱藏錯誤都可被檢測出來。
3 結(jié)語
任意一個新開發(fā)出來的軟件系統(tǒng)都需要經(jīng)歷軟件測試與驗證的階段,在這測試過程中動態(tài)軟件測試需要應用白盒測試技術(shù)來完成軟件系統(tǒng)運行的驗證,以判定被測試軟件系統(tǒng)是否存在隱藏的錯誤,是否達到統(tǒng)一的程序標準。不過,白盒測試技術(shù)在動態(tài)軟件測試中還存在不足,因而需要借助黑盒測試技術(shù)來協(xié)作完成對軟件系統(tǒng)的測試與驗證。
[參考文獻]
[1]巨志斌.面向?qū)ο蟮陌缀袦y試技術(shù)的研究與分析[J].軟件工程師,2010(5):56-57.
[2]劉洋.白盒測試技術(shù)概述[J].廣西大學學報(自然科學版),2008,33(Z1);70-75.