軟件測試中為什么進行性能測試?
目的是驗證軟件系統是否能夠達到用戶提出的性能指標,同時發現軟件系統中存在的性能瓶頸,優化軟件,最后起到優化系統的目的。
包括以下幾個方面
1.評估系統的能力,測試中得到的負荷和響應時間數據可以被用于驗證所計劃的模型的能力,并幫助作出決策。
2.識別體系中的弱點:受控的負荷可以被增加到一個極端的水平,并突破它,從而修復體系的瓶頸或薄弱的地方。
3.系統調優:重復運行測試,驗證調整系統的活動得到了預期的結果,從而改進性能。
檢測軟件中的問題:長時間的測試執行可導致程序發生由于內存泄露引起的失敗,揭示程序中的隱含的問題或沖突。
4.驗證穩定性(resilience)可靠性(reliability):在一個生產負荷下執行測試一定的時間是評估系統穩定性和可靠性是否滿足要求的唯一方法。
性能測試類型包括負載測試,強度測試,容量測試等
負載測試:負載測試是一種性能測試指數據在超負荷環境中運行,程序是否能夠承擔。
強度測試: 強度測試是一種性能測試,他在系統資源特別低的情況下軟件系統運行情況。
容量測試:確定系統可處理同時在線的最大用戶數
觀察指標:
性能測試主要是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。
在實際中作中我們經常會對兩種類型軟件進行測試:bs和cs,這兩方面的性能指標一般需要哪些內容呢?
Bs結構程序一般會關注的通用指標如下(簡):
Web服務器指標指標:
* Avg Rps: 平均每秒鐘響應次數=總請求時間 / 秒數;
* Avg time to last byte per terstion (mstes):平均每秒業務角本的迭代次數 ,有人會把這兩者混淆;
* Successful Rounds:成功的請求;
* Failed Rounds :失敗的請求;
* Successful Hits :成功的點擊次數;
* Failed Hits :失敗的點擊次數;
* Hits Per Second :每秒點擊次數;
* Successful Hits Per Second :每秒成功的點擊次數;
* Failed Hits Per Second :每秒失敗的點擊次數;
* Attempted Connections :嘗試鏈接數;
CS結構程序,由于一般軟件后臺通常為數據庫,所以我們更注重數據庫的測試指標:
* User 0 Connections :用戶連接數,也就是數據庫的連接數量;
* Number of deadlocks:數據庫死鎖;
* Butter Cache hit :數據庫Cache的命中情況
當然,在實際中我們還會察看多用戶測試情況下的內存,CPU,系統資源調用情況。這些指標其實是引申出來性能測試中的一種:競爭測試。什么是競爭測試,軟件競爭使用各種資源(數據紀錄,內存等),看他與其他相關系統對資源的爭奪能力。
我們知道軟件架構在實際測試中制約著測試策略和工具的選擇。如何選擇性能測試策略是我們在實際工作中需要了解的。一般軟件可以按照系統架構分成幾種類型:
c/s
client/Server 客戶端/服務器架構
基于客戶端/服務器的三層架構
基于客戶端/服務器的分布式架構
b/s
基于瀏覽器/Web服務器的三層架構
基于中間件應用服務器的三層架構l
基于Web服務器和中間件的多層架構l
文章來源于領測軟件測試網 http://www.kjueaiud.com/