1.軟件性能測試的基本概念網絡
軟件的性能是軟件的一種非功能特性,它關注的不是軟件是否可以完成特定的功能,而是軟件在完成該功能時展現出來的及時性。併發
(1)軟件性能的指標工具
1)響應時間:是指系統對請求做出響應的時間,而且這個時間被人們的接收程度是隨着系統的不一樣而不一樣的(一個遊戲相應3秒沒法忍受,一個編譯程序編譯3分鐘也是能夠接受的)性能
2)系統相應時間和應用延遲時間:前面的響應時間主要是指用戶感覺到的響應時間,其中還能夠具體分爲系統響應時間和呈現時間,性能測試比較關注系統響應時間測試
而系統響應時間又能夠具體分爲網絡傳輸時間和應用延遲時間,性能測試比較關注應用延遲時間優化
3)吞吐量:吞吐量是指系統在單位時間內處理請求的數量,可是並非訪問人數越多吞吐量越高,由於隨着訪問人數的增多系統的可分配的資源會減小形成吞吐量降低等線程
4)併發用戶數:是指系統能夠同時承載的正常使用系統功能的用戶數,與1秒鐘幾十萬吞吐量相比上千用戶的併發量是一個更直觀但也更籠統的性能指標設計
5)資源利用率:反映在一段時間內資源平均被佔用的狀況生命週期
(2)軟件性能的角度遊戲
用戶視角:對於用戶而言,性能就是響應時間,對於大量的數據,若是一邊返回數據一邊呈現對於用戶而言響應時間也是很快的
管理員視角:管理員能夠經過使用軟件提供的管理功能等手段來對系統性能進行優化,可是通常不涉及到源代碼的修改
開發人員視角:開發人員的角度和管理員的角度基本是一致的,可是開發人員更須要深刻的關注軟件的性能
(3)性能測試的目標
發現缺陷
性能調優
能力檢驗與規劃
(4)性能測試的分類
性能測試
併發測試
壓力測試
可靠性測試
負載測試
配置測試
失效恢復測試
2.軟件性能測試的執行
與功能測試相比,性能測試更復雜,執行難度更大,對測試工具的依賴也更強,更須要過程模型的指導(如:PTGM性能測試通用模型)
PTGM模型主要包括6個步驟:
(1)測試前期準備,一般要求軟件已經經過功能測試並修正了缺陷
(2)引入測試工具
(3)指定測試計劃,須要明確性能測試的目標
(4)測試設計和開發,準備好軟件運行的軟硬件環境,用戶併發使用軟件的測試場景,每一個用戶具體如何使用該軟件
(5)測試執行和管理
(6)測試結果分析
SEI負載測試計劃過程:
測試負載主要考慮一下六個方面
(1)目標,指的是商業目標而不是技術目標,明確軟件達到什麼樣的負載能力才能知足項目的商業目標
(2)用戶,是指可能產生負載或使用資源的人和軟件過程
(3)用例,是指用戶對軟件的不一樣使用方式
(4)使用環境,軟件在實際交付的運行環境中
(5)測試環境,在測試中的環境
(6)使用場景
LoadRunner的性能測試過程:
這是一個針對LoadRunner工具進行設計的測試過程,整體上是知足PTGM的
(1)指定測試計劃
(2)設計測試用例
(3)設計測試腳本(將測試用例轉換成能夠執行的測試腳本)
(4)建立測試環境(測試腳本運行的測試環境)
(5)運行測試腳本
(6)分析測試結果
3.性能分析
(1)性能降低曲線的分析
主要包括三個區間:性能平坦區,性能輕微降低區,性能急劇降低區
(2)快速性能瓶頸識別:優先考慮吞吐量,優先考慮簡單的測試用例,優先考慮基礎系統的性能
(3)性能計數器的分析:內存,處理器,I/O磁盤,進程等分析
4.性能測試的自動化
包括建立進程或者線程來模擬用戶產生壓力
對性能進行監控
對結果進行分析
依賴一些性能測試工具
5.軟件可靠性的概念
(1)錯誤,缺陷,故障和失效
錯誤:指的是軟件在生命週期中各個階段的狀態和行爲與人們的期待不一致的誤差,不僅僅是軟件系統自己,中間產品的誤差也算是軟件錯誤
缺陷:指的是軟件中一切很差的方面,比錯誤的範圍更廣,如,一個不易理解的軟件不是錯誤的,可是能夠歸爲缺陷
故障:是指軟件代碼中的錯誤
失效:是指由故障引發的在軟件運行期間的錯誤
(2)軟件可靠性的定義
在規定的條件下,在規定的時間內,軟件不引發系統失效的機率
在規定的時間週期內,在所述條件下程序執行所要求的功能的能力
6.軟件可靠性測試的執行
軟件可靠性測試的目的是收集軟件測試時揭示的軟件故障的狀況,並對其進行整理
主要包括5個步驟:
(1)肯定可靠性目標
(2)定義軟件運行剖面
(3)設計測試用例
(4)實行可靠性測試
(5)分析測試結果
7.軟件可靠性分析
(1)失效模式影響分析
(2)嚴酷度分析
(3)故障樹分析
(4)事件樹分析
(5)潛在路線分析