軟件性能測試的目的是評估當前系統性能指標,根據測試結果對性能瓶頸進行定位及優化,以預防規避性能風險。在進行系統的調優過程中,好的策略是按照由易到難的順序對系統性能進行調優。
一、軟件性能的衡量指標
1、響應時間(Response time)
對于網站系統來說,響應時間就是從點擊了一個頁面計時開始,到這個頁面完全在瀏覽器里展現計時結束的這一段時間間隔,響應時間越短越好??梢约毞譃榉掌鞫隧憫獣r間、網絡響應時間、客戶端響應時間。在軟件性能測試中一般是通過事務函數Transaction Response Time來統計響應時間。
2、吞吐量(Throughput)
吞吐量反映的是系統的處理能力,具體來說,就是指軟件系統在每單位時間內能處理多少個事務/請求/單位數據等。吞吐量的大小由負載或行為方式來決定。在Performance Center中,吞吐量反映單位時間內系統處理的事務數目。一般以TPS(Transaction Per Second)即每秒事務數表示。
3、資源使用率(Resource utilization)
指系統在負載情況下軟硬件上各種資源的占用情況。例如,CPU占用率、內存使用率、磁盤I/O等。
4、并發用戶數(Concurrent users)
并發用戶數用來度量多個用戶同時訪問同一個應用、同一個模塊或者數據記錄時是否存在死鎖或者其他性能問題,反映了系統的并發處理能力。
5、點擊數(Hits per second)
點擊數是按照客戶端向Web Server 發起了多少次 HTTP請求計算的。
二、軟件性能測試常用檢測項目
1.負載測試 (Load Testing)
負載測試是通過逐步增加系統負載,直到達到系統的工作極限,來評估軟件在正常和峰值條件下的性能。這種測試可以幫助確定系統在不同工作負載下的行為,以及系統是否能夠滿足性能目標。
2.壓力測試 (Stress Testing)
壓力測試是將系統推向其極限,通常超過預期的工作負載,以確定系統的最大承載能力和故障點。它可以幫助識別系統崩潰的閾值和潛在的性能瓶頸。
3.并發性能測試 (Concurrency Testing)
并發性能測試專注于模擬多個用戶同時訪問系統的情況,以評估系統的并發處理能力。它有助于發現并發操作引起的性能下降和潛在的同步問題。
4.容量測試 (Volume Testing)
容量測試涉及加載大量數據到系統中,以驗證系統在大數據量下的性能和穩定性。它通常用于數據庫系統和存儲密集型應用程序。
5.穩定性測試 (Endurance Testing)
穩定性測試,也稱為疲勞強度測試,是通過長時間運行系統來評估其在持續負載下的性能和穩定性。它可以揭示隨時間累積的性能問題,如內存泄漏。
6.基準測試 (Benchmark Testing)
基準測試是建立系統在理想狀態下的性能指標,用于后續測試的比較。這有助于評估性能改進或性能退化。
7.配置測試 (Configuration Testing)
配置測試檢查系統在不同硬件、軟件和網絡配置下的性能,以確保系統在各種環境中都能達到預期的性能水平。
8.恢復測試 (Recovery Testing)
恢復測試驗證系統在遇到故障或異常情況后能否正確恢復,以及恢復過程對系統性能的影響。
9.擴展性測試 (Scalability Testing)
擴展性測試評估系統在增加資源(如硬件、軟件或網絡資源)時的性能變化,以確定系統是否能夠隨著負載的增長而高效擴展。
三、軟件測試方法
1.等價類
等價類劃分的辦法是把程序的輸入域劃分成若干部分,然后從每個部分中選取少數代表性數據作為測試用例。每一類的代表性數據在測試中的作用等價于這一類中的其它值,也就是說,如果某一類中的一個例子發現了錯誤,這一等價類中的其他例子也能發現同樣的錯誤:反之,如果某一類中的一個例子沒有發現錯誤,則這一類中的其他例子也不會查出錯誤(除非等價類中的某些例子屬于另一等價類,因為幾個等價類是可能相交的)。等價類又分為有效等價類和無效等價類。有效等價類代表對程序有效的輸入,而無效等價類則是其他任何可能的輸入(即不正確的輸入值)。
2.邊界值
著重對輸入域的邊界進行測算*其中Min及Max分別表示被測項依據用戶手冊中規定的上下限值,單位表示取值的最小步進,中間值一般取范圍的中點值。
3.錯誤推斷
錯誤推測法就是基于經驗和直覺推測程序中所有可能存在的各種錯誤,有針對地設計測試用例的方法。
4.場景分析
①.一般場景分析:對典型的場景業務流進行分析,確定路徑觸發條件與場景關系,并付諸于測試用例;
②.風險場景分析:對典型業務可能遇到的諸如暴力、非法操作等風險場景進行分析,確定路徑觸發條件與場景關系,并付諸于測試用例。
5.因果圖
等價類劃分方法和邊界值分析法都是著重考慮輸入條件,并沒有考慮到輸入情況的各種組合,如果在測試時必須考慮輸入條件的各種組合,需要利用因果圖,基本步驟如下:
(1)分析程序規格說明的描述中,哪些是原因,哪些是結果。原因常常是輸入條件或是輸入條件的等價類,而結果是輸出條件;
(2)分析程序規格說明的描述中語義的內容,并將其表示成連接各個原因與各個結果的“因果圖”;
(3)標明約束條件。由于語法或環境的限制,并將其表示成連接各個原因與各個結果的“因果圖”。由于語法或環境的限制,有些原因和結果的組合情況是不可能出現的。為表明這些特定的情況,在因果圖上使用若干個標準的符號標明約束條件;
(4)反因果法轉換成判定表;
(5)為判定表中每一列表示的情況設計測試用例。
四、軟件測試常用檢測標準
GB/T 25000.51-2016《系統與軟件工程 系統與軟件質量要求和評價(SQuaRE) 第51部分:就緒可用軟件產品(RUSP)的質量要求和測試細則》;
GB/T 25000.10-2016《系統與軟件工程系統與軟件質量要求和評價(SQuaRE) 第10部分:系統與軟件質量模型》;
GB/T 37729-2019 《信息技術智能移動終端應用軟件(APP)技術要求》