朱海燕
(杭州師范大學(xué)信息科學(xué)與工程學(xué)院 浙江 杭州 311121)
隨著信息化社會的到來,計算機已成為家家戶戶的必備品,與人們的生活和工作密不可分。計算機軟件能夠幫助用戶實現(xiàn)與計算機硬件的連接,通過對計算機軟件的不斷優(yōu)化,提升計算機硬件的適應(yīng)性,使計算機系統(tǒng)進一步滿足用戶需求。因此,要優(yōu)化計算機軟件的性能,就要不斷對計算機軟件進行測試,這也是計算機軟件應(yīng)用的前提[1]。在計算機軟件應(yīng)用前,通過對其進行測試,發(fā)現(xiàn)優(yōu)勢與不足,并對不足之處不斷進行優(yōu)化,確保計算機軟件安全有效的運行,同時還為軟件開發(fā)應(yīng)用提供了良好的平臺。
計算機軟件測試是為了查找在軟件開發(fā)過程中存在的安全及邏輯方面的漏洞。計算機軟件測試通過對計算機軟件的使用情況進行評估,從而檢測軟件運行的各個環(huán)節(jié)中是否有漏洞及錯誤。這些漏洞和錯誤一般比較隱秘,難以被發(fā)現(xiàn),但是卻會對軟件的正常使用產(chǎn)生影響。要解決這一問題,就要運用計算機軟件測試技術(shù)及方法,對軟件的設(shè)計、編程等方面進行嚴(yán)密的檢測,進而發(fā)現(xiàn)軟件運行中的具體問題,并及時進行修正。計算機軟件測試還能夠?qū)浖氖褂眯阅?、速度等進行檢測,這些檢測數(shù)據(jù)能夠為軟件的進一步優(yōu)化提供參考。計算機軟件測試在測試運行性能及速度的同時,還能夠檢查計算機軟件的兼容性問題,有些計算機的軟件與硬件無法兼容,從而導(dǎo)致軟件無法運行,通過測試技術(shù),能夠測試軟件與硬件的兼容性,從而保證計算機軟件的正常運行。此外,安全性測試也是計算機軟件測試的重要目的。在計算機網(wǎng)絡(luò)中存在許多病毒,計算機軟件常常成為病毒載體,一旦攜有病毒的軟件運行,就會對整個計算機系統(tǒng)造成影響,造成系統(tǒng)癱瘓等問題。因此,測試人員要對軟件的安全性進行測試,查看軟件對病毒的抵御能力,防止病毒攻擊,保證軟件的正常及安全運行。
計算機軟件測試可以選用不同的方法,但軟件會因為測試次數(shù)的增加而產(chǎn)生免疫,因此,要想保證軟件測試的效果,測試人員在對軟件進行測試的過程中,要根據(jù)軟件的特性,在不同的測試方法中選擇最佳方案。
黑盒測試也叫作功能性測試,主要測試計算機軟件能否在使用過程中實現(xiàn)其基本功能。之所以稱其為黑盒測試,是因為我們可以將軟件看作一個無法打開的黑盒,在測試內(nèi)部程序及算法前先對其程序接口進行測試。它是一種從用戶角度來測試輸入及輸出的行為,如果在進行黑盒測試前,軟件運行的外部環(huán)境存在問題,則無法直觀反映出軟件存在的漏洞及問題。一般情況下,黑盒測試法主要用于檢測軟件在開發(fā)中存在的功能性錯誤、軟件運行界面存在的問題以及軟件初始化錯誤等[2]。黑盒測試法無法對計算機軟件進行全面的項目測試,主要是由于這一方法在模式上的限制,需要通過窮舉法來進行測試,同時還要針對合法指令及不合法指令進行測試。因此,針對常見漏洞進行有針對性的測試時常使用此方法。
白盒測試也叫作結(jié)構(gòu)性測試,主要測試計算機軟件程序內(nèi)部的結(jié)構(gòu),測評軟件程序的結(jié)構(gòu)是否與規(guī)定一致,程序通路是否與預(yù)期相符。稱其為白盒測試,正是因為期檢測方法與黑盒測試相對立。如果說進行黑盒測試時將軟件視為無法打開的黑盒,在進行白盒測試時則將軟件視為被完全打開的盒子,然后考察軟件程序的邏輯路徑,從而對軟件程序能否達到預(yù)期狀態(tài)進行評估,確保軟件程序的安全性[3]。
靜態(tài)測試法主要包括代碼走查、技術(shù)評審等,是測試人員對程序的接口、過程及結(jié)構(gòu)進行全面的測試及檢查,查找程序結(jié)構(gòu)、符號等是否與設(shè)計說明書一致,是否存在可疑計算或不匹配參數(shù)等錯誤之處。
動態(tài)測試法是與靜態(tài)測試法相對應(yīng)的計算機軟件測試方法,主要通過軟件運行,在動態(tài)過程中對軟件運行行為及結(jié)果進行測試,以確定軟件是否與設(shè)計標(biāo)準(zhǔn)相符合。在采用動態(tài)測試法時,要使軟件完整運行,從而對其運行狀況進行全面檢查,然后形成軟件測試的相關(guān)數(shù)據(jù),推動計算機軟件測試工作的開展。
計算機軟件測試技術(shù)是做好計算機軟件測試工作的技術(shù)保障。隨著信息技術(shù)的快速發(fā)展,軟件測試技術(shù)也不斷豐富與創(chuàng)新,從而為軟件測試人員提供了更多的選擇。
這一測試技術(shù)主要包括兩種方式,即漸增測試和非漸增測試。漸增測試主要是將待測模塊與已測模塊相連接,等到測試完成后再行下一步檢測。在測試過程中,測試的模塊越來越多,需要根據(jù)實際情況來選擇合適的集成方式,確保模塊能夠真正連接到軟件程序之中。非漸增測試主要是對模塊的結(jié)構(gòu)圖進行連接,然后參照相應(yīng)標(biāo)準(zhǔn)從整體上進行測試。
單元測試主要是測試軟件設(shè)計中的最小單位,也就是模塊。由于待測軟件模塊處于某一位置上,因此在采用單元測試技術(shù)時,無法單獨運行單元測試。測試人員需要提前設(shè)計好驅(qū)動程序及存根程序來進行軟件測試,在接收數(shù)據(jù)和調(diào)用模塊組件的同時,做好數(shù)據(jù)結(jié)構(gòu)。
系統(tǒng)測試主要針對軟件系統(tǒng)的安裝、性能及功能進行測試,從而最大程度上滿足用戶的基本需求。系統(tǒng)測試要遵循嚴(yán)格的測試標(biāo)準(zhǔn),可以選用黑盒測試的方法。在運用系統(tǒng)測試技術(shù)進行計算機軟件測試時,要將軟件編程系統(tǒng)與客戶的實際需求進行詳細(xì)的對比,從中找出不足與差距,通過改進與優(yōu)化進一步滿足客戶的基本需求。此外,在測試計算機軟件性能時,要重點關(guān)注軟件的安全與精度,監(jiān)控好系統(tǒng)運行速度。
用戶驗收測試主要是針對軟件的可用性及功能進行的,目的在于驗證軟件的運行程序是否符合業(yè)務(wù)要求。用戶驗收測試可分為α測試和Beta測試。α測試過程中,需要在開發(fā)環(huán)境下進行測試,完善的受控環(huán)境是該測試必備的條件之一,如此才能保證軟件測試的有效性。Beta測試是在進行功能及系統(tǒng)測試之后進行的,是技術(shù)測試的最后階段。因此,在進行Beta測試時,要明確用戶場,通過對測試記錄的分析,將計算機軟件中的潛在問題反饋給開發(fā)者。
計算機軟件測試是軟件成功開發(fā)的前提和基礎(chǔ),能夠保障軟件開發(fā)的可靠性、實用性與安全性。因此,在計算機軟件程序編寫完成后,相關(guān)人員還需要對軟件程序進行一系列的測試,以確定軟件在功能、運行效果、安全性等方面是否與預(yù)期相一致。通常情況下,計算機軟件基本開發(fā)完成后,測試人員還會檢測軟件的運行環(huán)境,將一些隨機數(shù)據(jù)輸入計算機,然后觀察數(shù)據(jù)在經(jīng)過軟件程序的核算后,是否達到相應(yīng)的匹配度及核算要求。為了確保軟件程序核算的精確性和可靠性,在選取隨機數(shù)據(jù)進行檢測的同時,還會輸入一些特殊參數(shù)。如果輸出結(jié)果與軟件功能相一致,那么軟件便通過測試;反之,如果測試結(jié)果與軟件的功能不一致,那么就說明該軟件與開發(fā)應(yīng)用的需求有差距,無法通過測試。近些年來,隨著我國信息化進程的加快以及計算機信息技術(shù)的提升,我國軟件在開發(fā)數(shù)量與水平方面都有大幅提升。一些專門用于計算機軟件測試的程序也相繼出現(xiàn)。但這類專用于測試的軟件由于開發(fā)環(huán)境的差別以及技術(shù)方面的限制,仍然存在一定的局限性。例如,一種測試軟件一般只能對某一固定類型的軟件實施檢測,這樣檢測的精確度便會大打折扣,需要相關(guān)人員進一步完善與優(yōu)化。因此,在軟件上市前,還要補充使用一種檢測工具來對待測軟件進行二次測試,從而保證計算機軟件測試的精準(zhǔn)度。
計算機軟件測試技術(shù)能夠通過對計算機軟件的檢測,及時發(fā)現(xiàn)軟件在開發(fā)設(shè)計以及應(yīng)用過程中存在的問題與漏洞,其所提供的測試數(shù)據(jù)能夠為軟件開發(fā)人員提供參考,進而有針對性地對軟件進行修復(fù)及優(yōu)化,確保軟件有效、安全地運行。當(dāng)前,我國計算機軟件市場的發(fā)展十分迅速,人們對軟件的需求也是千差萬別。在如此激烈的市場競爭中,要想提升計算機軟件的競爭力,就要重視對軟件的測試,保證軟件運行的功能性及安全性,為軟件的可持續(xù)發(fā)展提供前提與保障。