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