摘 要:軟件測試是軟件開發過程中確保軟件質量的重要手段,隨著面向對象軟件開發技術的廣泛應用,對面向對象軟件測試技術的研究顯得尤為重要。本文首先介紹了軟件測試的概念以及面向對象軟件特點對傳統軟件測試產生的影響,接著重點討論了面向對象軟件測試的方法。
關鍵詞:軟件測試;面向對象;類測試
中圖分類號:TP311 文獻標識碼:A 文章編號:1674-7712 (2013) 24-0000-01
面向對象軟件測試技術是針對使用面向對象技術開發的軟件而提出的一種測試技術。面向對象開發技術和傳統開發技術相比有新的特點,使用面向對象技術開發的程序具有高質量、高效率、易擴展、易維護等優點,這也給它的測試技術帶來新的挑戰。面向對象軟件測試與傳統的軟件測試相比,由于面向對象技術開發的軟件會出現傳統軟件技術中不存在或者不突出的錯誤,使得傳統的軟件測試中次要方面成為了現在的主要問題,影響了軟件測試的方法和內容,增加了軟件測試的難度。
一、軟件測試
(一)軟件測試
軟件測試是使用人工操作或者利用測試工具按照測試方案和流程對軟件產品進行功能和性能方面的評估,檢驗軟件產品是否滿足規定的需求或弄清預期結果與實際結果之間的差別的過程。
(二)面向對象對軟件測試的影響
面向對象軟件具有抽象性、封裝性、繼承性和多態性等特點,這些特點對軟件測試產生了不同的影響。面向對象程序中子類可以繼承父類的功能,父類進行了充分測試后,子類也要設計相應的測試用例進行充分測試,對子類進行測試時不僅要測試子類中的方法,還要重新測試與子類中重定義方法相關的類。面向對象軟件測試時,對象的狀態通常是信息隱蔽的,測試人員需要在測試類中添加適當的信息來表明對象的實現方法及其內部狀態。對于面向對象軟件的多態性形成的動態綁定的測試使用傳統的靜態分析策略是不合適的,需要使用動態的測試標準來解決這個問題。
二、面向對象軟件測試方法
面向對象軟件測試方法是從傳統的軟件測試方法中演化而來的,有與傳統的軟件測試相類似之處,但由于面向對象的軟件開發具有繼承性和多態性等特點,為了支持和加強數據隱藏的特性,面向對象的軟件測試必須向一個類的接口添加操作,所以說面向對象的軟件測試方法更復雜一些。
(一)面向對象軟件單元測試
面向對象軟件單元測試主要是類測試,包括方法測試和對象測試。類是面向對象程序設計的基本單位,對象是類的具體實例,類測試是來驗證類的實現和類的說明是否完全一致,如果類的實現是正確的,那么類的每一個具體實例的行為也將是正確的。
面向對象的類測試首先要確定測試方法,通常可以通過代碼檢查和執行測試用例兩種方法來測試類的代碼。代碼檢查方法容易受人為錯誤的影響,在代碼量很大的情況下也會加大它的工作量,而編寫一個好的測試用例需要很豐富的經驗和較高的技巧。通過類實現的功能來分析所要編寫的測試用例,然后根據類的邊界值來擴充測試用例。構建測試用例一般是基于前置條件或后置條件,為所有可能出現的情況及情況的組合確定測試用例的需求,在這些可能出現的情況組合下,根據這些需求來構建測試用例,而且還要針對實際情況創建特定輸入值的測試用例,并確定它們的正確輸出。
測試驅動程序是一個運行測試用例并能夠收集運行結果的程序。在面向對象的軟件測試中,設計核心類的測試驅動程序十分重要,要求該程序必須思路嚴謹、結構簡單清晰并易于維護。當確定了類的可執行測試用例,測試驅動程序就要創建類的實例來運行該測試用例,并給出測試用例運行的測試結果。
(二)面向對象軟件集成測試
面向對象軟件集成測試主要是類簇測試。面向對象軟件是由若干對象組成的,這些對象互相協調合作來實現軟件的功能,在面向對象的軟件開發中,對象間的相互協調即對象的交互對于程序的正確性來說是非常重要的,對象的交互方式決定了程序能做什么,從而也就決定了程序是否正確。對象的交互測試是在對類的單獨測試的基礎上實現的,它來確保對象之間相互傳遞消息的正確性,它一般執行測試的是嵌入到應用程序中的交互對象。
在面向對象的軟件測試當中,除了要考慮對象交互特征面之外,還需要具體的測試技術去實現測試的要求,目前常用的面向對象軟件集成測試的方法有抽樣測試和正交陣列測試。抽樣測試提供了一種運算法則,不需要首先明確測試用例的總體,從一組可能的測試用例中選擇測試序列;正交陣列測試是一種特殊的抽樣方法,它通過定義一組交互對象的配對方式組合來進行測試,同時要盡量限制測試組合的配置數目,正交陣列測試系統就是挑選某個樣本的特定測試技術。
(三)面向對象軟件系統測試
在對面向對象軟件進行系統測試時,要保證被測系統的完整性,搭建與真實用戶實際使用環境相同的測試平臺,并且需要參考面向對象分析的結果,對軟件的架構進行驗證,確保軟件可以完全再現問題空間以及完整實現用戶需求。系統測試不僅是要檢測軟件的整體功能行為表現,也是對軟件設計開發的再確認,它針對的是非功能需求的測試,包括功能需求以外的所有需求以及注意事項等。系統測試是針對完整軟件產品的測試,包括軟件、軟件運行所依賴的硬件、外設、數據、支撐軟件及接口等,確保開發的軟件與其依賴的各種資源能夠協調運行,形成完整的軟件產品。系統測試是軟件測試過程中非常重要的階段,它對測試技術的要求也是最高的。在進行面向對象軟件的系統測試時,測試技術人員需要與軟件的用戶進行交流,根據用戶提出的需求給出系統的修改建議,結合用戶需求對被測試軟件進行測試分析,根據分析結果建立測試用例。
三、結束語
面向對象的軟件測試技術是面向對象軟件開發中的重要組成部分,本文從面向對象軟件的特點出發,分析了面向對象軟件測試對傳統軟件測試的影響,介紹了面向對象軟件測試的方法。
參考文獻:
[1]王艷麗.面向對象軟件簇級測試用例自動生成方法研究與實現[D].長春工業大學,2011.
[2]梁利亭.基于UML的面向對象的軟件測試研究與應用[D].南京理工大學,2010.