李亞玲 韓奧 魯建麗 張航 于航 河北農業(yè)大學
關鍵字:軟件測試 測試方法 測試意義
IEEE在軟件工程標準術語中給出的軟件測試定義為:“使用人工或自動手段來運行或測試某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別”。軟件的測試是一種用于鑒定當前的軟件或者產品的功能是否具有其完整性、正確性以及其安全性的技術過程。查看軟件的測試以執(zhí)行測試時的是否可以執(zhí)行程序分為靜態(tài)的穩(wěn)定性測試和動態(tài)的可靠性測試,以執(zhí)行測試時的是否可以查看執(zhí)行的程序可以分為動態(tài)的白盒測試和黑盒測試。
簡單來說軟件測試的一個主要目的其實就是為了幫助工作人員或者客戶發(fā)現(xiàn)當前應用程序中可能存在的代碼或者是邏輯上的錯誤,進而檢驗當前的產品或者功能是否完全符合當前用戶的需求。
(1)靜態(tài)穩(wěn)定性測試:不會對被測應用軟件實際的運行,只是通過靜態(tài)的數(shù)據(jù)進行分析和動態(tài)檢查來判斷軟件以及產品應用程序的結構、邏輯是否可能存在穩(wěn)定性的問題。常見的問題主要有數(shù)據(jù)引用錯誤、變量未正確定義、輸入輸出錯誤等。此外還要針對軟件的輸出界面與用戶要求的是否一致,軟件的使用方式與需求規(guī)格說明書是否一致進行測試。靜態(tài)的穩(wěn)定性測試總體可以劃分為應用程序的測試、界面規(guī)格測試和軟件的文檔測試三個主要部分。
(2)動態(tài)可靠性測試:對被測軟件實際運行,這一點與被測軟件靜態(tài)可靠性測試的特點恰好相反。其進行的測試過程一般可以大致分為單元測試、集成測試、確認可靠性測試、系統(tǒng)測試和軟件驗收可靠性測試五個主要組成部分。
(1)白盒測試:在不執(zhí)行程序的條件下,對軟件產品內部的邏輯結構以及相關處理方式進行檢驗,驗證其是否符合需求規(guī)格說明書的要求,從而找出軟件所存在的缺陷?!鞍缀小钡暮x即可以看到軟件的程序。常用的軟件白盒覆蓋測試方法主要有程序安全性審查法、靜態(tài)邏輯結構分析法、邏輯組合覆蓋測試法(包括語句條件組合覆蓋、判定條件組合覆蓋、路徑條件組合覆蓋、判定/條件組合覆蓋、條件組合覆蓋)等。該方法的優(yōu)點在于能夠對程序內部的特定部位進行測試,發(fā)現(xiàn)隱藏在測試代碼執(zhí)行過程中的缺陷和錯誤,對測試代碼的路徑覆蓋測試比較徹底并且推動測試人員認真思考軟件的具體實現(xiàn)方法,有利于測試人員的能力提升。
(2)黑盒測試:與白盒測試相反,這種方式要求必須對軟件進行執(zhí)行,將被測軟件看為一個打不開的黑盒?!昂诤小钡暮x即看不到軟件內部的程序,只了解軟件要完成什么樣的功能。測試工作人員完全不需要考慮應用程序的基本編寫以及內部的特性,只根據(jù)其需求對軟件說明書內容進行了測試,檢查軟件的程序是否完全可以正常的運行。常用的黑盒軟件程序測試方法主要有邊界值的分析法、軟件類型的劃分法、因果圖法、決策表法。該方式的優(yōu)點在于測試用例可以重復使用減省時間,能夠站在用戶的立場上進行測試,并且可以與軟件開發(fā)過程同步進行來壓縮項目的總開發(fā)時間。
軟件測試的一個重要意義在于在一個新的軟件產品正式投入運營之前,找出軟件所可能存在的缺陷和問題,消除軟件隱藏的錯誤,提高軟件的質量,減少因軟件質量問題而帶來的不良影響。軟件測試在不同的軟件開發(fā)階段具有不同的意義。在項目規(guī)劃階段,測試人員要制定軟件測試計劃,意義在于提前做到對整個項目測試的監(jiān)控;在用戶實際需求的設計階段,測試人員一定要提前做好對用戶實際需求的了解以及缺陷分析和預防,意義在于能夠保證產品符合開發(fā)商和用戶的實際要求,并且后期不會在測試中出現(xiàn)用戶實際需求不清楚的問題;在設計階段,測試人員要根據(jù)研發(fā)文檔,站在測試的角度制定一份詳細的測試邏輯圖,意義在于能夠發(fā)現(xiàn)文檔中存在的問題,減少返工,降低開發(fā)成本;在編碼階段,測試人員要利用相應的測試工具和方法對軟件產品進行測試,意義在于幫助開發(fā)人員減少研發(fā)中可避免的缺陷;在測試階段,測試人員要發(fā)現(xiàn)和定位錯誤存在,并且多次重復測試,降低軟件的錯誤率,意義在于大概率降低投入運營后的風險。
軟件測試不僅要找出缺陷,還需要對軟件存在的缺陷進行分析,找出其出現(xiàn)的根本原因,總結軟件產品出現(xiàn)的各種錯誤,避免以后出現(xiàn)相同的錯誤,保證軟件的正常運行。
綜上所述,軟件的測試在每一個軟件開發(fā)的過程中都有著舉足輕重的作用和地位。軟件測試技術可以保證軟件的性能,提高用戶的體驗效果,進而有效的提升了軟件產品的價值。因此,開發(fā)出更多的軟件測試方式勢在必行,用不同的方法對同一個軟件產品展開全面的測試,這樣才可以保障軟件測試的質量與效果。