郭 芊
?
淺談白盒測試技術(shù)在動態(tài)軟件測試中的應(yīng)用
郭 芊
廣州廣電運通金融電子股份有限公司,廣東 廣州 510000
為增強(qiáng)動態(tài)軟件測試的精準(zhǔn)度跟使用效率,大量運用白盒測試技術(shù),準(zhǔn)確且高效地將軟件代碼里存在的問題及錯誤點及時找出來,再進(jìn)一步進(jìn)行改善,來開發(fā)出高品質(zhì)水準(zhǔn)的軟件系統(tǒng)。
白盒測試技術(shù);動態(tài)軟件測試;應(yīng)用
隨著科技發(fā)展,很多由軟件及硬件合并發(fā)展衍生成的軟件測試成了目前市場中很重要的一個檢驗方式。軟件測試是高質(zhì)量、高水平軟件的重要保證,而軟件測試的目的是為了及時發(fā)現(xiàn)軟件系統(tǒng)中可能或已經(jīng)存在的漏洞,保障軟件的安全完整性。[1]大部分公司開始重視這一環(huán)節(jié)的工作,甚至對軟件測試這一方面加大投放力度。在軟件測試中最基本的一個測試方式就是白盒測試,它的主要任務(wù)就是測試被測單元內(nèi)部是怎么進(jìn)行運作的。
白盒測試主要就被測單元內(nèi)部怎樣運作進(jìn)行檢測的一種基礎(chǔ)性測試方法。它依照程序控制組織結(jié)構(gòu)對導(dǎo)出測試用例進(jìn)行規(guī)劃設(shè)計,適合對象主要是那些軟件程序,對其進(jìn)行技術(shù)檢測。白盒測試又可以稱為透明盒測試跟邏輯驅(qū)動測試。[2]
白盒測試其中一個任務(wù)就是找出程序編碼工作過程中存在的錯誤點。在編寫程序代碼時,程序員是否擁有著長期編程經(jīng)驗,是否對軟件開始所使用的工具有足夠了解,是否有著良好的工作狀態(tài),這些都是很重要的決定因素,它決定了程序員會不會在編寫軟件代碼的過程中出現(xiàn)錯誤。針對那些語言方面上產(chǎn)生的錯誤,檢測調(diào)試時還是可以進(jìn)行改正的,但是對于一些運算、路徑處理等技術(shù)上的問題一時發(fā)生就很難再發(fā)現(xiàn)并修改了。[3]
其實在進(jìn)行白盒測試時,我們可以把被測試軟件程序當(dāng)作一個已經(jīng)打開的小盒子,測試人員通過觀察盒子里的東西來分析軟件程序內(nèi)部組織結(jié)構(gòu)。而在對白盒測試進(jìn)行運用時,必須事先對程序內(nèi)部組織及運行結(jié)構(gòu)有清楚的了解,再對所有程序中的邏輯路徑進(jìn)行科學(xué)的測試,可以說這是一種非常時期運用的手段。當(dāng)企業(yè)確定運用這種方法時,軟件測試人員一定要對程序內(nèi)部結(jié)構(gòu)進(jìn)行詳細(xì)檢查,再根據(jù)檢查程序中存在邏輯結(jié)構(gòu)開始,慢慢總結(jié)出軟件測試結(jié)果的數(shù)據(jù)資料。
白盒測試?yán)镆阎饾u形成了一系列較為成熟的方法,這些方法相對而言也是比較常用的。其中,代表性方法就是覆蓋率測試用例設(shè)計方法,以此向外展開,形成一個完整性方法體系,包括語句覆蓋法、判定覆蓋法等。下文選其中兩個方法進(jìn)行簡要分析:
2.1 語句覆蓋法
這是最常用、最常見的一種覆蓋方式,就是度量被測代碼中每個可執(zhí)行語句是否被執(zhí)行到了。它的作用主要體現(xiàn)在如果程序應(yīng)用語句覆蓋法在測試過程中,可以保障所有執(zhí)行語句都可以運用到并可以進(jìn)行路徑測試,完成最后的語句覆蓋。語句覆蓋常常被人指責(zé)為“最弱的覆蓋”,它只管覆蓋代碼中的執(zhí)行語句,卻不考慮各種分支的組合等。假如只要求達(dá)到語句覆蓋,那么換來的確實測試效果不明顯,很難更多地發(fā)現(xiàn)代碼中的問題。
2.2 判定覆蓋法
判定覆蓋法又可以稱為分支覆蓋法。所謂判定覆蓋,就是設(shè)計若干個測試用例,運行被測程序,使得程序中每個判定條件的取真分支和取假分支至少評價一次。與語句覆蓋法相比較,其測試效果會比較明顯。而這種方法的具體運用原理就是針對軟件程序中每個用例,對其進(jìn)行實際運用并測試,以此保證程序中所有程序路徑都可以得到檢驗,都有一個“真值”或“假值”的判斷。
3.1 測試軟件具體功能需求分析
從圖1我們可以看到,所有的測試人員在動態(tài)軟件測試中通過白盒測試技術(shù)進(jìn)行操作之前都是需要事先設(shè)計規(guī)劃好一個程序流程圖的,一個個劃分好操作模塊,以此來達(dá)到軟件功能所需要的要求,運用“+、-、X、/”這四個功能鍵對被測軟件對象整個軟件運作過程進(jìn)行檢測。而具體如何操作,測試人員只要在整個測試過程中把具體數(shù)字一個個輸入到對應(yīng)的t1、t2的小文本框里,運用“+、-、X、/”這四個功能鍵對其進(jìn)行數(shù)字運算,而最終結(jié)果會自己自然而然地出現(xiàn)在t3的文本框中,從整體操作來看并不太復(fù)雜,相對來說還是比較簡單的,但最主要靠的還是仔細(xì)。
圖1 程序流程圖
3.2 白盒測試技術(shù)實際測試應(yīng)用分析
當(dāng)動態(tài)軟件在運用白盒測試技術(shù)進(jìn)行測試之前,最重要的一個必要條件就是軟件中所有路徑必須達(dá)到覆蓋要求,否則將無法進(jìn)行準(zhǔn)確的檢測??梢詫⒊绦蚝唵蔚胤殖?部分,軟件測試人員需要根據(jù)軟件的實際需要在對應(yīng)的對話框中輸入對應(yīng)的數(shù)值(如d1=99,d2=25與d1=99,d2=abc),通過這個來對軟件程序中第一個部分里兩個分支進(jìn)行覆蓋。接著再運用“+、-、X、/”這四個功能鍵對軟件程序中第二個部分中的4個分支進(jìn)行完整覆蓋。而軟件的第三部分可以通過輸入d2=1,d2=25來對其進(jìn)行完美覆蓋。至于最后一個軟件的最4部分則需要利用到循環(huán)方式進(jìn)行分支覆蓋,通常來說只需要進(jìn)行一次路徑覆蓋方式下循環(huán)運行,來對第四部分的軟件程序進(jìn)行循環(huán)體檢驗就可以了。對于上述這四個軟件程序分支點的操作,必須做到全部覆蓋才能夠有效通過路徑驗證,才可以精準(zhǔn)地檢驗出軟件系統(tǒng)中是不是真的存在潛在漏洞與不足,企業(yè)才可能及時糾正,防止錯誤的發(fā)生。
從上述所有分析來看,我們可以了解到市場上所有新開發(fā)產(chǎn)生的軟件系統(tǒng)在生產(chǎn)之前都是經(jīng)過嚴(yán)格的檢驗測試環(huán)節(jié)的,而整個測試過程中所使用的測試方式也多種多樣。對于動態(tài)軟件的測試一般是需要白盒測試技術(shù)來對軟件系統(tǒng)進(jìn)行嚴(yán)格技術(shù)檢測的,白盒測試技術(shù)是一項相對基礎(chǔ)性的測試方法,它能夠檢測出新軟件中一些隱性的漏洞問題,可以比較精確地知道該軟件是不是符合生產(chǎn)的標(biāo)準(zhǔn),是否是一個合格品。當(dāng)然,白盒測試技術(shù)也不是完美的,也會有一定的不足之處需要我們改善,它也是需要借助黑盒測試技術(shù)來協(xié)作完成軟件系統(tǒng)的測試與驗證。
[1]毛志雄.軟件測試?yán)碚撆c實踐[M].北京:中國鐵道出版社,2008.
[2]賀平.軟件測試教程[M].北京:電子工業(yè)出版社,2007.
[3]佟偉光.軟件測試技術(shù)[M].北京:人民郵電出版社,2005.
The Application of White Box Testing Technology in Dynamic Software Testing
Guo Qian
Guangzhou radio and television financial electronic Limited by Share Ltd, Guangzhou, Guangdong 510000
To enhance dynamic software testing precision and use efficiency, extensive use of white box testing technique, accurate and efficient to the software code in the presence of the problems and errors in the little time to find out and further improved, to develop a high level of software system.
white box testing technology; dynamic software testing; application
TP311.52
A
1009-6434(2016)6-0152-02