通過單元測試和集成測試,僅能保證軟件開發的功能得以實現。但不能確認在實際運行時,它是否滿足用戶的需要,是否大量存在實際使用條件下會被誘發產生錯誤的隱患。為此,對完成開發的軟件必須經過規范的系統測試。
換個角度說,開發完成的軟件僅僅是實際投入使用系統的一個組成部分,需要測試它與系統其他部分配套運行的表現,以保證在系統各部分協調工作的環境下也能正常工作?! ?/p>
系統測試應該盡量搭建與用戶實際使用環境相同的測試平臺,應該保證被測系統的完整性,對臨時沒有的系統設備部件,也應有相應的模擬手段。系統測試時,應該參考OOA分析的結果,對應描述的對象、屬性和各種服務,檢測軟件是否能夠完全“再現”問題空間。系統測試不僅是檢測軟件的整體行為表現,從另一個側面看,也是對軟件開發設計的再確認。
這里說的系統測試是對測試步驟的抽象描述。它體現的具體測試內容包括:
·功能測試:測試是否滿足開發要求,是否能夠提供設計所描述的功能,是否用戶的需求都得到滿足。功能測試是系統測試最常用和必須的測試,通常還會以正式的軟件說明書為測試標準。
·強度測試:測試系統的能力最高實際限度,即軟件在一些超負荷的情況,功能實現情況。如要求軟件某一行為的大量重復、輸入大量的數據或大數值數據、對數據庫大量復雜的查詢等。
·性能測試:測試軟件的運行性能。這種測試常常與強度測試結合進行,需要事先對被測軟件提出性能指標,如傳輸連接的最長時限、傳輸的錯誤率、計算的精度、記錄的精度、響應的時限和恢復時限等。
·安全測試:驗證安裝在系統內的保護機構確實能夠對系統進行保護,使之不受各種非常的干擾。安全測試時需要設計一些測試用例試圖突破系統的安全保密措施,檢驗系統是否有安全保密的漏洞。
·恢復測試:采用人工的干擾使軟件出錯,中斷使用,檢測系統的恢復能力,特別是通訊系統?;謴蜏y試時,應該參考性能測試的相關測試指標。
·可用性測試:測試用戶是否能夠滿意使用。具體體現為操作是否方便,用戶界面是否友好等。
·安裝/卸載測試(install/uninstall test)等等。
系統測試需要對被測的軟件結合需求分析做仔細的測試分析,建立測試用例。
原文轉自:http://www.anti-gravitydesign.com