-
可靠性測試
鎖定
- 中文名
- 可靠性測試
- 外文名
- Reliability test
- 別 名
- 可靠性評估
- 分 類
- 軟件、硬件可靠性測試
- 測試方式
- 組件壓力測試等
可靠性測試分類
一、軟件可靠性測試
二、硬件可靠性測試
可靠性測試軟件
可靠性測試概念
可靠性測試測試方式
測試可靠性是指運行應用程序,以便在部署系統之前發現並移除失敗。因為通過應用程序的可選路徑的不同組合非常多,所以在一個複雜應用程序中不可能找到所有的潛在失敗。但是,可測試在正常使用情況下最可能的方案,然後驗證該應用程序是否提供預期的服務。如果時間允許,可採用更復雜的測試以揭示更微小的缺陷。
組件壓力測試
壓力測試是指模擬巨大的工作負荷以查看應用程序在峯值使用情況下如何執行操作。利用組件壓力測試,可隔離構成組件和服務、推斷出它們公開的導航方法、函數方法和接口方法以及創建調用這些方法的測試前端。對於那些進入數據庫服務器或一些其他組件的方法,可創建一個提供所需格式的啞元數據的後端。測試儀器在觀察結果的同時,反覆插入啞元數據。
這裏的想法是在隔離的情況下,對每個組件施加遠超過正常應用程序將經歷的壓力。例如,以儘可能快的速度使用 1 – 10,000,000 循環,查看是否有暴露的問題。單獨測試每個 DLL 可幫助確定組件的失敗總次數。
對於分佈式 Web 應用程序,Microsoft 提供“Web 應用程序壓力工具”。有關更多信息,請參見“Microsoft Web Application Stress Tool”(Microsoft Web 應用程序壓力工具).如果您購買了 Visual Studio .NET 企業版,還會提供另一個名為 Application Center Test 的工具,它用來預覽 Application Center 2000 中某些技術的介紹性信息。
集中壓力測試
集中測試從最基礎的功能測試開始。您需要知道編碼路徑和用户方案、瞭解用户試圖做什麼以及確定用户運用您的應用程序的所有方式。
測試腳本應根據預期的用法運行應用程序。例如,如果您的應用程序顯示 Web 頁,而且 99% 的客户只是搜索該站點、只有 1% 的客户將真正購買,這使得提供對搜索和其他瀏覽功能進行壓力測試的測試腳本才有意義。當然,也應對購物車進行測試,但是預期的使用暗示搜索測試應在測試中佔很大比重。
在日程和預算允許的範圍內,應始終儘可能延長測試時間。不是測試幾天或一週,而是要延續測試達一個月、一個季度或者一年之久,並查看應用程序在較長時期內的運行情況。
真實環境測試
在隔離的受保護的測試環境中可靠的軟件,在真實環境的部署中可能並不可靠。雖然隔離測試在早期的可靠性測試進程中是有用的,但真實環境的測試環境才能確保並行應用程序不會彼此干擾。這種測試經常發現與其他應用程序之間的意外的導致失敗的交互。
需要確保應用程序能夠在真實環境中運行,即能夠在具有所有預期客户事件配置文件的服務器空間中,使用最終配置條件運行。測試計劃應包括在最終目標環境中或在儘可能接近目標環境的環境中運行應用程序。這一點通常可通過部分複製最終環境或小心地共享最終環境來完成。
隨機破壞測試
測試可靠性的一個最簡單的方法是使用隨機輸入。這種類型的測試通過提供虛假的不合邏輯的輸入,努力使應用程序發生故障或掛起。輸入可以是鍵盤或鼠標事件、程序消息流、Web 頁、數據緩存或任何其他可強制進入應用程序的輸入情況。應該使用隨機破壞測試測試重要的錯誤路徑,並公開軟件中的錯誤。這種測試通過強制失敗以便可以觀察返回的錯誤處理來改進代碼質量。
隨機測試故意忽略程序行為的任何規範。如果該應用程序中斷,則未通過測試。如果該應用程序不中斷,則通過測試。這裏的要點是隨機測試可高度自動化,因為它完全不關心基礎應用程序應該如何工作。
可能需要某種測試裝備,以驅使混亂的、高壓力的、不合邏輯的測試事件進入應用程序的接口中。Microsoft 使用名為“注射器”的工具,使得以將錯誤注射到任何 API 中,而無需訪問源代碼。“注射器”可用於:模擬資源失敗,修改調用參數,注射損壞的數據,檢查參數驗證界限,插入定時延遲,以及執行許多其他功能。