一、測試用例
無論是功能測試還是性能測試,執行用例時候都有優先級之分,對於性能測試來說,優先級可以這樣划分:
①.重要的(業務場景中的核心)
②.重復的(用戶使用頻率最高的)
③.重量級的(消耗大量系統資源的)
設計性能測試用例的簡要過程:
1、具體的性能指標分為以下幾類:
①.系統容量(數據容量、用戶量、用戶並發量)
②.系統並發度指標(注冊用戶、在線用戶、並發用戶)
③.響應度指標(正常壓力下響應能力、峰值壓力下響應能力、異常壓力下的響應能力)
2、熟悉並且理解整個系統的業務邏輯、實現原理,然后進行需求拆分,得到性能測試需求點
3、多個渠道得到具體性能要求,分析評估風險,優先級,是否進行測試等
4、編寫性能測試方案和用例,並進行評審通過,然后執行
PS:一些性能測試的測試點
a.查詢 b.保存 c.統計 d.刷新 e.顯示 f.傳輸 g.響應 h.下載
舉個例子:打開網絡上其他媒介的文件,在網絡擁堵的情況下打開執行相關操作,主要測試點如下:
①.數據量小的時候主要執行查詢統計刷新等功能點
②.數據量累計到一定程度時的查詢統計刷新時間(一定程度:根據實際情況與需求來確定范圍)
二、常見的基礎性能測試
1、安全可靠性測試
①.用戶權限限制:對不同用戶權限的限制情況
②.用戶和密碼封閉性:對相應用戶和密碼進行次數限制
③.屏蔽用戶操作錯誤:對用戶常見操作錯誤的提示和屏蔽情況
④.錯誤提示的准確性:對用戶的錯誤提示的准確度
⑤.錯誤是否導致系統異常退出:有無操作錯誤引起系統異常退出的情況
⑥.數據備份和恢復手段:系統是否提供備份及恢復功能,備份手段具體如何,是否對備份數據進行加密、壓縮等
⑦.輸入數據有效性檢查:對錄入系統的數據進行有效性檢查
⑧.留痕功能:系統是否有操作日志,日志記錄的操作情況的全面性和准確性,是否含有主要要素
⑨.異常情況的影響:程序運行過程中進行掉電掉網等測試,考察數據和系統的受影響程度,若受損,是否有補救措施等
⑩.數據傳輸安全性:對有特殊要求的數據傳輸,對其進行必要的加密處理,使用的算法等
2、資源占用率測試
①.軟件安裝所占用的硬盤空間:檢查軟件安裝所占用的硬盤空間
②.模塊裝載后內存占用量:檢查模塊裝載后內存占用量(包括虛擬內存)
③.模塊卸載后內存釋放量:檢查模塊卸載后內存釋放率(包括虛擬內存)
3、兼容性測試
①.軟件兼容:測試軟件安裝運行的適用平台
②.硬件兼容:硬件平台的配置要求
4、易用性測試
①.易安裝性:安裝難易程度,是否符合當前流行的,易被接受的安裝模式
②.用戶界面友好性:界面的簡潔程度等
③.易學性:相對用戶使用者而言,學習使用的難度,對操作人員的要求等
④.易操作性:操作的難易程度
⑤.聯機幫助豐富性:檢查聯機操作的准確性、全面性,以及關鍵操作時使用聯機幫助的方便性
5、用戶文檔測試
①.用戶手冊的完整程度:用戶手冊內容的全面性、完整性
②.用戶手冊描述與軟件實際功能的一致性:手冊與軟件實際功能的一直程度
③.用戶手冊的易理解程度:用戶手冊對重要操作
④.用戶手冊提供的學習操作示例:對主要功能和關鍵操作提供的應用實例有多少,實例的詳細程度
6、效率測試
①.通信效率:網絡負載、吞吐率、利用率、響應時間、延遲等
②.設備效率:CPU占用率、內存占用率、磁盤占用率、輸入輸出效率等,包括軟件不工作狀態下對硬件資源的占用情況和進行業務處理過程中對硬件資源的占用情況
③.執行效率:典型業務場景的執行效率,例如關鍵的查詢、統計等響應時間等
7、可擴展性測試
①.與異種數據接口:有無與其他數據的接口
②.是否能擴展功能模塊:能否根據用戶要求擴展功能模塊
三、常見的進階性能測試
1、並發性能測試
並發測試的過程,是一個負載測試和壓力測試的過程。即逐漸增加負載,直到系統的瓶頸或者不能接收的性能點,通過綜合分析執行指標和資源監控指標來確定系統並發性能的過程
測試案例:例如:中間件應能滿足一定數量的客戶端同時辦公的需要
測試內容與監控指標:(負載壓力測試;模擬不同數量並發用戶測試)
模擬不同數量並發用戶執行關鍵業務,測試至系統能夠承受的最大並發用戶數。
主要監控指標如下:
● 每分鍾事務處理數(Transaction Rate):不同負載下每分鍾成功完成的事務處理數;
● 響應時間(Response Time):服務器對每個應用請求
● Mean:平均的服務器響應時間;
● Max:最大的服務器響應時間;
● StdDev:事務處理服務器響應的偏差,值越大,偏差越大;
● Median:中值響應時間;
● 90%:90%事務處理的服務器響應時間
● 虛擬並發用戶數(Total Virtual Users):測試工具模擬的用戶並發數量。
2、系統資源監控
在進行負載壓力測試的同時,用測試工具對數據庫服務器、Web服務器、應用服務器、認證及授權服務器上的操作系統、數據庫以及中間件等資源進行監控。
監控系統資源指標,在測試中,根據測試需求以及測試環境的變化,選取有意義的數據進行分析。
3、大數據量
例如:考慮系統未來發展需要的存儲空間,添加大數據量測試。
主要包括兩方面內容:
①.單獨的數據量測試;
②.與並發性能測試相結合的綜合測試。
測試數據的准備借助於測試數據管理與生成工具,例如FileAid。
4、速度
例如:磁盤訪問速度、備份速度以及網絡辦公系統運行速度等(人工測試)
5、疲勞測試
通常是采用系統穩定運行情況下能夠支持的最大並發用戶數,持續執行一段時間業務,通過綜合分析執行指標和資源監控指標來確定系統處理最大工作量強度性能的過程。
四、性能測試指標
一般有2種形式描述:產品需求指標和系統的性能指標。
1、產品需求指標
①.給出產品性能的主要指標,如在100000記錄中查詢一個特定數據的時間為0.5秒;
②.以某個已發布的版本為基線,如比上一個版本的性能提高30-50%;
③.和競爭對手的同類產品比較。
2、系統的性能指標
①.CPU利用率;
②.內存占用率;
③.磁盤I/O ;
④.響應時間。
五、性能測試的策略
性能測試策略一般從需求設計階段開始討論制定,策略的內容決定着性能測試工作投入多少資源、什么時間開始實施等后繼工作如何安排。制定性能測試的策略的因素:
1、預期的指標性能的因素
系統在需求分析、設計階段和產品說明書等文檔中明確的提出都性能指標,這些指標是性能測試要完成的工作。
2、獨立業務性能測試的因素
獨立業務主要是指軟件產品的模塊具有獨立業務功能,在需求階段就可以確定,要單獨測試其性能。
3、業務性能組合測試的因素
應用類軟件系統通常不會使所有的用戶只使用一個或者幾個核心業務模塊,可能是對多個業務進行組合使用,對多個業務進行組合性能測試。由於組合業務測試是最能反映
用戶使用系統情況,因而業務性能組合測試是測試的核心內容。
4、疲勞強度性能測試
疲勞強度測試是在系統穩定運行下模擬較大的用戶數量、並長時間運行系統的測試,通過綜合分析執行指標和資源監控來確定系統處理最大業務量時的性能,主要目的是為了測試系統的穩定性。
5、大數據量性能測試的因素
大數據量測試是為了測試系統的業務處理能力進行的。第一種是針對某些系統存儲、傳輸、統計查詢等業務進行大數據量的測試,主要是測試數據增多時的性能情況;
第二種是極限狀態下數據測試,主要指系統數據量達到一定程度時,通過性能測試來評估系統的響應情況,測試對象是某些核心業務或者日常常用的組合業務。
6、網絡性能測試的因素
網絡性能測試主要是為了准確展示帶寬、延遲、吞吐量、負載、瓶頸和端口的變化是如何影響用戶的響應時間的。重點測試吞吐量指標,因為80%的系統性能瓶頸由吞吐量造成。
六、性能測試的方法
性能測試方法主要有:能力驗證、規划性能、性能調優、壓力加載、性能下降曲線分析。
1、能力驗證
能力驗證強調:系統具備的硬件設備、軟件環境、網絡條件、基礎數據。能力驗證使用到可靠性測試、壓力測試、失效恢復測試 。
2、規划性能
規划性能關心的是要求系統具有的性能,強調系統配置,使系統能夠滿足增長的用戶數的需要等問題。規划性能使用到負載測試、配置測試、壓力測試。
3、性能調優
性能調優關心的是要求系統確定基准環境、基准負載和基准性能指標;調整系統運行環境和實現方法;記錄測試結果、進行測試分析。
4、壓力加載
壓力加載強調:
①.穩定壓力加載。一次性將負載加到某個水平,持續一段時間;
②.逐漸加載或交替加載到某個負載水平;
③.峰谷測試。確定從系統高峰時間的負載轉為幾乎空閑、再攀升到高負載這樣峰值交替情況下的系統性能狀態/指標。
5. 性能下降曲線分析
性能下降曲線分析關心的是性能隨着用戶數的增加而出現下降趨勢的曲線分析、查看性能下降的環境點與上下文。確定性能閥值。性能曲線通過單用戶區域、
性能平坦區域、壓力區域、性能拐點進行監控和分析。