系統測試(System Testing)
系統測試是對整個系統的測試,將硬件、軟件、操作人員看作一個整體,檢驗它是否有不符合系統說明書的地方。這種測試可以發現系統分析和設計中的錯誤。如安全測試是測試安全措施是否完善,能不能保證系統不受非法侵入。再例如,壓力測試是測試系統在正常數據量以及超負荷量(如多個用戶同時存取) 等情況下是否還能正常地工作。
內容
將經過集成測試的軟件,作爲計算機系統的一個部分,與系統中其他部分結合起來,在實際運行環境下對計算機系統進行的一系列嚴格有效的測試,以發現軟件潛在的問題,保證系統的正常運行。系統測試的目的是驗證最終軟件系統是否滿足用戶規定的需求。
主要內容包括:
- 功能測試
測試軟件系統的功能是否正確,其依據是需求文檔,由於正確性是軟件最重要的質量因素,所以功能測試必不可少。 - 健壯性測試
測試軟件系統在異常情況下能否正常運行的能力。健壯性有兩層含義:一是容錯能力,二是恢復能力。
分類
比較常見的、典型的系統測試包括恢復測試、安全測試、壓力測試。
- 恢復測試
恢復測試作爲一種系統測試,主要關注導致軟件運行失敗的各種條件,並驗證其恢復過程能否正確執行。在特定情況下,系統需具備容錯能力。另外,系統失效必須在規定時間段內被更正,否則將會導致嚴重的經濟損失。 - 安全測試
安全測試用來驗證系統內部的保護機制,以防止非法侵入。在安全測試中,測試人員扮演試圖侵入系統的角色,採用各種辦法試圖突破防線。因此係統安全設計的準則是要想方設法使侵入系統所需的代價更加昂貴。 - 壓力測試
壓力測試是指在正常資源下使用異常的訪問量、頻率或數據量來執行系統。在壓力測試中可執行以下測試:
①如果平均中斷數量是每秒一到兩次,那麼設計特殊的測試用例產生每秒十次中斷。
②輸入數據量增加一個量級,確定輸入功能將如何響應。
③在虛擬操作系統下,產生需要最大內存量或其它資源的測試用例,或產生需要過量磁盤存儲的數據。
目標
- 確保系統測試的活動是按計劃進行的;
- 驗證軟件產品是否與系統需求用例不相符合或與之矛盾;
- 建立完善的系統測試缺陷記錄跟蹤庫;
- 確保軟件系統測試活動及其結果及時通知相關小組和個人。
原則
- 測試機構要獨立;
- 要精心設計測試計劃,包括負載測試、壓力測試、用戶界面測試、可用性測試、逆向測試、安裝測試、驗收測試;
- 要進行迴歸測試;
- 測試要遵從經濟性原則。
方針
- 爲項目指定一個測試工程師負責貫徹和執行系統測試活動;
- 測試組向各事業部總經理/項目經理報告系統測試的執行狀況;
- 系統測試活動遵循文檔化的標準和過程;
- 向外部用戶提供經系統測試驗收通過的預部署及技術支持;
- 建立相應項目的(BUG)缺陷庫,用於系統測試階段項目不同生命週期的缺陷記錄和缺陷狀態跟蹤;
- 定期的對系統測試活動及結果進行評估,向各事業部經理/項目辦總監/項目經理彙報/提供項目的產品質量信息及數據;