軟件測試中的性能測試、負載測試、壓力測試

軟件測試中的性能測試、負載測試、壓力測試 軟件測試

  效率作爲ISO 9126內部和外部質量的重要質量屬性之一,其含義是在規定條件下,相對於所用的資源的數量,軟件產品可提供適當性能的能力。資源可能包括其他軟件產品或系統的軟件和硬件配置,以及其他相關的資源(例如:打印紙、磁盤等)。

  效率測試主要關注產品的時間和資源相關的特性。時間相關的特性是指在規定條件下,軟件產品執行其功能時,提供適當的響應和處理時間以及吞吐量的能力,例如:用戶打開某個網頁需要等待的時間;資源相關的特性是指,在規定條件下,軟件產品執行其功能時,使用合適數量和類別的資源的能力,例如:用戶在進行相關操作時,系統的內存和CPU的變化情況。

  根據產品的時間特性和資源特性,效率測試可以包括不同的測試類型,例如:性能測試(Performance Test)、負載測試(Load Test)和壓力測試(Stress Test)。這三種效率測試類型,不僅在具體定義上面有不同的側重點,同時相互之間又是密切關聯的。

  1)性能測試

  性能測試主要評價系統或組件的性能是否和具體的性能需求一致,例如:對訪問速度的性能需求或對內存使用情況的需求。特定性能測試的關注點在於組件或系統在規定的時間內和特定的條件下響應用戶或系統輸入的能力。

  不同的性能的度量方法取決於不同的被測對象。對於一個單獨軟件組件,其性能可以根據CPU主頻來判定。而帶客戶端的系統,其性能則要根據系統處理特定用戶請求的響應時間來判定。對於那些由多種組件(如客戶端、服務器、數據庫)構成的系統,則要進行各組件之間的性能測試。

  產品的性能對用戶是否會持續使用該產品影響很大。表1所示是一個用戶對訪問一個獨立頁面時等待不同時間的態度分佈。可以看到,當頁面加載時間在10秒的時候,有84%的用戶願意等待;但是當頁面加載時間達到30秒的時候,只有5%的用戶願意等待。

  表1 用戶願意等待時間分佈

  頁面加載時間 願意等待的用戶比例

  10秒 84%

  15秒 51%

  20秒 26%

  30秒 5%

  表1中的數據考慮了網絡的延遲。而如果在測試環境中,整個網絡是被測試系統所獨佔的時候,對系統性能的要求要高的多。對於願意等待的時間,每個用戶的承受範圍是不同,而且用戶對不同的應用程序願意接受的等待時間也是不一樣的。下面是一組關於響應時間的性能需求描述:

  ● 對於多媒體交互系統,在90%的時間內系統響應時間應該不超過0.1秒;

  ● 對於每個用戶同時只有一項任務的在線系統,在90%的時間內系統響應時間應該不超過0.5秒;

  ● 對於每個用戶同時有多任務的在線系統,在90%的時間內系統響應時間應該不超過1秒。

  性能測試關注的是系統性能是否和具體的性能需求相一致,而當系統性能超過性能需求的時候,系統的表現並不是測試人員關心的重點。例如:性能需求中要求系統應該支持最大同時在線用戶爲5000個,那麼在性能測試過程中重點測試系統是否能支持5000個用戶同時在線;當有5000個用戶同時在線後,性能測試需要關注整個系統的運行是否符合要求;而對於在線用戶超過5000人的時候,系統的表現行爲並不是性能測試需要關注的。

  2)負載測試

  負載測試是一種通過增加負載來評估組件或系統的性能的測試方法。例如:通過增加併發用戶數和(或)事務數量來測量組件或系統能夠承受的負載。負載測試和性能測試的主要區別在於負載測試時,系統負載是逐漸增加的,而不是一步到位,負載測試需要觀察系統在各種不同的負載情況下是否都能夠正常工作。

  下圖是某網站隨着用戶數量的增加,對應的響應時間也在增加的趨勢圖。具體趨勢如圖1所示。
         
         
  圖1 某網站負載測試中用戶數量和響應時間關係圖

  通過觀察圖1,可以發現隨着用戶數目的增加,系統響應時間也跟着增加。當在線用戶數到700以後,系統響應時間增速明顯加快。當然響應時間只是需要觀察的數據之一,隨着測試負載的增加還需要觀察系統資源等佔有情況。

  3)壓力測試

  壓力測試是評估系統處於或超過預期負載時系統的運行情況。壓力測試的關注點在於系統在峯值負載或超出最大載荷情況下的處理能力。在壓力級別逐漸增加時,系統性能應該按照預期緩慢下降,但是不應該崩潰。壓力測試還可以發現系統崩潰的臨界點,從而發現系統中的薄弱環節。例如:系統最大支持的同時在線用戶數是1000個,壓力測試需要測試在1000個用戶甚至2000個用戶同時在線時系統的表現。雖然測試時負載已經超過了系統的設計能力,但是在這種情況下被測試系統也不應該發生崩潰。壓力測試也可以針對系統資源進行測試,例如:在系統內存耗盡情況下,測試系統的運行情況,這種情況下被測試系統也不應該崩潰。

  前面分別介紹了性能測試、負載測試和壓力測試三種效率測試類型。目前在軟件測試領域,對這三種測試類型的定義並不統一。在實際的測試工作中,性能測試這個詞被廣泛的使用。在很多場合,性能測試是上述三種測試類型的通稱;在有的書籍或者參考資料中,性能測試的範圍甚至更加廣泛。


   原文出處:http://www.ltesting.net/html/51/n-202551.html

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章