計算機軟件是基于計算機系統的一個重要組成部分,軟件開發完畢后應與系統中其他成分集成在一起,此時需要進行一系列系統集成和確認測試。對這些測試的詳細討論已超出軟件工程的范圍,這些測試也不可能僅由軟件開發人員完成。
在系統測試之前,軟件工程師應完成下列工作:(1)為測試軟件系統的輸入信息設計出錯處理通路;(2)設計測試用例,模擬錯誤數據和軟件界面可能發生的錯誤,記錄測試結果,為系統測試提供經驗和幫助;(3)參與系統測試的規劃和設計,保證軟件測試的合理性。
系統測試應該由若干個不同測試組成,目的是充分運行系統,驗證系統各部件是否都能工作并完成所賦予的任務。下面簡單介紹幾類系統測試。
(1)恢復測試
恢復測試主要檢查系統的容錯能力。當系統出錯時,能否在指定時間間隔內修正錯誤并重新啟動系統;謴蜏y試首先要采用各種辦法強迫系統失敗,然后驗證系統是否能盡快恢復。對于自動恢復需驗證重新初始化、檢查點、數據恢復和重新啟動等機制的正確性;對于人工干預的恢復系統,還需估測平均修復時間,確定其是否在可接受的范圍內。
(2)安全測試
安全測試檢查系統對非法侵入的防范能力。安全測試期間,測試人員假扮非法入侵者,采用各種辦法試圖突破防線。
例如:
、傧敕皆O法截取或破譯口令;
、趯iT定做軟件破壞系統的保護機制;
、酃室鈱е孪到y失敗,企圖趁恢復之機非法進入;
、茉噲D通過瀏覽非保密數據,推導所需信息。
理論上講,只要有足夠的時間和資源,沒有不可進入的系統。因此系統安全設計的準則是使非法侵入的代價超過被保護信息的價值。此時非法侵入者已無利可圖。
(3)強度測試
強度測試檢查程序對異常情況的抵抗能力。強度測試總是迫使系統在異常的資源配置下運行。例如,當中斷的正常頻率為每秒一至兩個時,運行每秒產生十個中斷的測試用例;定量地增長數據輸入率,檢查輸入子功能的反映能力;運行需要最大存儲空間(或其他資源)的測試用例;運行可能導致虛存操作系統崩潰或磁盤數據劇烈抖動的測試用例等等。
(4)性能測試
對于那些實時和嵌入式系統,軟件部分既使能滿足功能要求,也未必能夠滿足性能要求。雖然從單元測試起,每一測試步驟都包含性能測試,但只有當系統真正集成之后,在真實環境中才能全面、可靠地測試運行性能系統。性能測試是為了完成這一任務。性能測試有時與強度測試相結合,經常需要其他軟硬件的配套支持。
文章來源于領測軟件測試網 http://www.kjueaiud.com/