韓 韜
(山西職業技術學院 山西 太原 030006)
對于軟件測試的定義有兩種說法,一種認為軟件測試就是通過測試手段對某個系統進行運行測定,判斷該系統是否可以滿足規定的需求,或者發現預期結果和實際結果之間的差別。另一種認為軟件測試是為了發現程序錯誤而執行程序的過程。總的來說,軟件測試就是選擇合適的測試手段,然后對某一個軟件進行分析檢驗,發現實際結果和預期結果之間的差別,并評價該軟件的特性。
軟件測試方法眾多,比較常用到的測試方法有等價類劃分、場景法,偶爾會使用到的測試方法有邊界值和判定表,還有包括不經常使用到的正交排列法和測試大綱法。其中等價類劃分、邊界值分析、判定表等屬于黑盒測試方法;只對功能是否可以滿足規定要求進行檢查,主要用于軟件的確認測試階段。白盒測試也叫做結構測試或邏輯驅動測試,是基于覆蓋的全部代碼和路徑、條件的測試,通過測試檢測產品內部性能,檢驗程序中的路徑是否可以按照要求完成工作,但是并不對功能進行測試,主要用于軟件的驗證。
軟件測試策略和軟件測試方法不同,軟件測試方法指的是一種具體的對軟件進行檢驗的手段,而測試策略則是針對不同的階段應該選擇怎樣的測試方法,或者應該如何合理配置不同測試方法而制定的方案。在掌握了不同測試方法之后應該如何應用到具體的測試項目中就需要制定相關策略,比如在單元測試中應該選擇技術評審法,在集成階段應該選擇三明治法,在系統測試階段應該選擇場景法,在針對功能進行測試的時候應選擇合適的黑盒測試方法制定相應的測試用例,在開展單元測試和集成測試時則應該選用白盒測試方法制定相應測試用例,測試策略的任務或者功能是指導測試工作順利完成。
上文已經談到過,根據軟件測試方法來分,可以分成黑盒測試和白盒測試。如果靜態測試指的是不實際運行被測試軟件,而只是對測試軟件的程序代碼、界面或者文檔等進行檢查,然后發現其中錯誤的過程。主要包括代碼測試、界面測試和文檔測試。代碼測試主要是通過對代碼的檢查判斷其是否滿足規定標準和要求,界面測試則是對被測試軟件的實際界面和需求中對于界面的要求進行比較,文檔測試主要是對用戶手冊和需求說明等進行檢查,檢驗這些是否滿足用戶的實際需求。動態測試指的是實際運行被測試軟件,通過測試數據的輸入來判斷實際輸出結果和預期輸出結果之間的差別。此外,如果根據測試階段來劃分,軟件測試又可以分成單元測試、集成測試、確認測試和系統測試幾種。
軟件測試策略是指在掌握了具體的不同種類的測試方法之后,針對什么時間和什么任務應該采取哪種測試方法,或者進行怎樣的組合而制定的測試方案。本文主要是針對不同測試階段對軟件測試策略進行簡要分析。
3.2.1 單元測試階段 單元測試是指對軟件的基本組成單位,如某個模塊、某個過程等進行測試,屬于動態測試類別,也是動態測試中最為基礎和關鍵的部分。單元測試的目的是為了檢測基本組成單位是否正確合理,通過對軟件內部程序設計和編碼的認識,借助開發測試驅動模塊或樁模塊來進行單元測試,一般由軟件程序員執行完成。在單元測試階段主要采用的測試方法應該是白盒測試方法,先靜態檢查代碼,然后動態運行代碼,檢查被測試軟件實際的運行結果。
3.2.2 集成測試階段 集成測試指的是在軟件系統所開展的測試過程,目的是為了檢查軟件單位間各個接口是否正確,所組成系統的各個部分是否合理。集成測試階段的策略主要有自頂向下測試和自底向上測試兩種,具體該使用何種策略需要根據實際測試項目的情況制定測試計劃,然后在將單元模塊或軟件單元進行組合集合成為系統的過程中,同時又要對該所形成的系統進行運行檢驗,判斷所形成的系統是否滿足要求,其中各個部分是否正確合理。
3.2.3 確認測試階段 在單元測試階段,往往只能確保軟件局部的正確性,對于各個單元模塊之間接口的問題無法及時解決。而集成測試則可以使相互獨立的不同模塊連接起來,形成完整的程序。只有滿足客戶所需的軟件才是合格的,主要測試步驟包括:首先在測試之前先要確認測試的準則,也就是達到什么樣的要求才算是合格的,在測試中應該注意哪些問題。此外,要對所開發的軟件的配置進行審核評價,檢驗其是否滿足合格性標準。
3.2.4 系統測試階段 系統測試是一種綜合性的測試,是對軟件系統中的所有組成部分再次進行檢驗,保證之前所有的測試都滿足測試要求,系統中的每一個部分都完成了合理的集成,不管是在功能上、配置上還是結構上都是滿足測試標準的。
綜上所述,現階段不管是國外軟件測試的發展,還是國內發展現狀,軟件測試工作將進一步向前推進。在未來,軟件測試的重點將傾向于測試需求上的精確性和完整性,軟測測試人員和程序開發人員將形成相互合作的關系。隨著信息技術和軟件技術的快速發展,軟件測試方法和測試策略將得到更加廣泛的應用和發展,也將被越來越多的企業所重視。