靜態測試主要針對程序的結構進行,檢測程序結構是否符合設計要求,F在流行的一些測試軟件都能提供一種稱為"可逆性工程"的功能,即通過原程序得到類關系圖和函數功能調用關系圖,例如International Software Automation 公司的Panorama-2 forWindows95、Rational公司的Rose C++ Analyzer等,將"可逆性工程"得到的結果與OOD的結果相比較,檢測程序結構和實現上是否有缺陷。換句話說,通過這種方法檢測OOP是否達到了設計要求。
動態測試設計測試用例時,通常需要上述的功能調用結構圖、類關系圖或者實體關系圖為參考,確定不需要被重復測試的部分,從而優化測試用例,減少測試工作量,使得進行的測試能夠達到一定覆蓋標準。測試所要達到的覆蓋標準可以是:達到類所有的服務要求或服務提供的一定覆蓋率;依據類間傳遞的消息,達到對所有執行線程的一定覆蓋率;達到類的所有狀態的一定覆蓋率等。同時也可以考慮使用現有的一些測試工具 來得到程序代碼執行的覆蓋率。
具體設計測試用例,可參考下列步驟:
1. 先選定檢測的類,參考OOD分析結果,仔細出類的狀態和相應的行為,類或成員函數間傳遞的消息,輸入或輸出的界定等。
2. 確定覆蓋標準。
3. 利用結構關系圖確定待測類的所有關聯。
4. 根據程序中類的對象構造測試用例,確認使用什么輸入激發類的狀態、使用類的服務和期望產生什么行為等。
值得注意,設計測試用例時,不但要設計確認類功能滿足的輸入,還應該有意識的設計一些被禁止的例子,確認類是否有不合法的行為產生,如發送與類狀態不相適應的消息,要求不相適應的服務等。根據具體情況,動態的集成測試,有時也可以通過系統測試完成。
八 面向對象的系統測試(OO System Test)
通過單元測試和集成測試,僅能保證軟件開發的功能得以實現。但不能確認在實際運行時,它是否滿足用戶的需要,是否大量存在實際使用條件下會被誘發產生錯誤的隱患。為此,對完成開發的軟件必須經過規范的系統測試。換個角度說,開發完成的軟件僅僅是實際投入使用系統的一個組成部分,需要測試它與系統其他部分配套運行的表現,以保證在系統各部分協調工作的環境下也能正常工作。在后面對ZXM10收發臺系統測試的敘述可以看到,其他的系統設備(如監控臺,圖象臺,E1接入設備,攝像頭等)如何配合收發臺的系統測試。
系統測試應該盡量搭建與用戶實際使用環境相同的測試平臺,應該保證被測系統的完整性,對臨時沒有的系統設備部件,也應有相應的模擬手段。系統測試時,應該參考OOA分析的結果,對應描述的對象、屬性和各種服務,檢測軟件是否能夠完全"再現"問題空間。系統測試不僅是檢測軟件的整體行為表現,從另一個側面看,也是對軟件開發設計的再確認。
這里說的系統測試是對測試步驟的抽象描述。它體現的具體測試內容包括:
· 功能測試:測試是否滿足開發要求,是否能夠提供設計所描述的功能,是否用戶的需求都得到滿足。功能測試是系統測試最常用和必須的測試,通常還會以正式的軟件說明書為測試標準。
· 強度測試:測試系統的能力最高實際限度,即軟件在一些超負荷的情況,功能實現情況。如要求軟件某一行為的大量重復、輸入大量的數據或大數值數據、對數據庫大量復雜的查詢等。
· 性能測試:測試軟件的運行性能。這種測試常常與強度測試結合進行,需要事先對被測軟件提出性能指標,如傳輸連接的最長時限、傳輸的錯誤率、計算的精度、記錄的精度、響應的時限和恢復時限等。
· 安全測試:驗證安裝在系統內的保護機構確實能夠對系統進行保護,使之不受各種非常的干擾。安全測試時需要設計一些測試用例試圖突破系統的安全保密措施,檢驗系統是否有安全保密的漏洞。
· 恢復測試:采用人工的干擾使軟件出錯,中斷使用,檢測系統的恢復能力,特別是通訊系統;謴蜏y試時,應該參考性能測試的相關測試指標。
· 可用性測試:測試用戶是否能夠滿意使用。具體體現為操作是否方便,用戶界面是否友好等。
· 安裝/卸載測試(install/uninstall test)等等。
系統測試需要對被測的軟件結合需求分析做仔細的測試分析,建立測試用例。
文章來源于領測軟件測試網 http://www.kjueaiud.com/