1. 程式人生 > >性能測試應用領域

性能測試應用領域

測試結果 可用 發生 數據庫 產出 衡量 完成 過程 另一個

取自<軟件性能測試過程詳解與案例剖析>--段念

性能測試的應用領域劃分為5個不同領域:

技術分享圖片

1、能力驗證領域的特點與性能測試的特點非常接近

  <1>要求在已確定的環境下運行

    能力驗證要求運行環境必須是確定的。只有在一個確定的運行環境下,軟件的性能的的承諾和規劃才是最有意義的。因為無法或很難根據系統在一個環境中的表現去推斷其在另一個不同環境中的表現,因此在這種應用領域內的測試必須要求測試時的環境已經確定(如硬件、軟件、網絡條件、基礎數據等)

  <2>需要根據典型場景設計測試方案和用例

    能力驗證需要了解被測系統的典型場景,並根據典型場景設計測試方案和用例。一個典型場景包括操作序列和並發用戶數量條件。在設計用例時,需要確定響應的性能指標。

    (測試方法包括性能測試、可靠性測試、壓力測試、失效恢復測試)

2、規劃能力

  規劃能力關心“應該如何使系統達到我們要求的性能能力”或是在“某種可能發生的條件下,系統具有如何的性能能力”。規劃能力應用領域內的問題常常會被描述為“某系統能夠支持未來一段時間內的用戶增長”或是“應該如何調整系統配置,使系統能夠滿足增長的用戶數需要”。

  <1>它是一種探索性測試。

    規劃能力領域側重的是規劃。也就是說,該領域內的測試不依賴於預先設定的用於比較的目標,而且要求在測試過程中了解系統本身的能力。這種測試與能力驗證領域內測試的最大區別就在於其探索性。

  <2>它可被用於了解系統性能以及獲得擴展性能的方法。

    規劃能力領域的問題是期望了解系統的能力,或是獲得擴展系統性能的方法。該領域在測試過程中,除了要通過負載測試等方法獲知系統性能表現外,還需要通過更換設備、調整參數等方法獲知系統性能可擴展的元素。

  (測試方法包括負載測試、配置測試、壓力測試)

3、性能調優

  性能調優應用領域主要對應於對系統性能進行調優。一般來說,性能調優活動會和其他性能測試應用領域的活動交雜在一起。由於性能調優可以調整的對象眾多,而且並不要求在系統全部完成後才能進行調優,因此可以在多種不同的測試階段和場合下使用。

  對已經部署在實際生產環境中的應用系統來說,對齊進行的性能調優可能會首先關註應用系統部署環境的調整,例如,對服務器的調整、對數據庫參數的調整及對應用服務器的參數調整,此時的性能調優需要在生產環境在這個確定的環境下進行;但是對正在開發中的應用來說,性能調優會更多地關註應用邏輯的實現方法、應用中設計的算法、數據庫訪問層的設計等因素,此時並不要求測試環境是實際的生產環境,只要整個調優過程中具有一個可用於比較的測試基準測試環境即可。

  一個標準的性能調優過程如下:

  <1>確定基準環境、基準負載和基準性能指標

    所謂基準負載是指一種可以被用來衡量和比較性能調優測試結果的標準的應用運行環境、測試操作腳本和可被用來衡量調優效果的性能指標。

  <2>調整系統運行環境和實現方法,執行測試

    這就是性能調優的核心步驟。性能調優的目的是通過調整,提高應用系統的性能表現。

    (1)硬件環境的調整。主要是對軟件硬件環境進行調整,包括改變系統運行的服務器、主機設備環境、調整網絡環境等

    (2)系統設置的調整。主要是對系統運行的基礎平臺進行調整,例如根據系統需要調整unix系統的核心數量,調整數據庫的內存池大小,調整服務器的內存大小,JVM版本等。

    (3)應用級別的調整。主要是對應用實現本身進行調整,包括選用新的架構、采用新的數據訪問方式或修改業務邏輯的實現方式等。

   在實際的性能調優過程中,具體調整那部分的內容要具體根據實際情況而定。以達到最高的投入產出比為核心。

4、缺陷發現:

  缺陷發現性能測試應用領域的主要目的是通過性能測試的手段來發現系統中存在的缺陷。經常會出現在測試環境下沒有什麽問題,可是在生產環境就會出現莫名奇妙的錯誤。其原因也並不能說明是由並發和性能原因引起的。但是在測試環境運行正常,在生產環境中經常出現卡死、多人訪問時速度時快時慢、甚至崩潰幾率都很大,則基本上都是由於並發時的線程鎖、資源爭用或內存問題引起的。

  該領域的主要目的便是發現缺陷,並沒有可以參照的性能指標或是需要達到的性能指標,因此主要采取並發測試的方法。如果還需要關註壓力及失效恢復過程中出現的問題,則可以采用壓力測試和失效恢復測試方法。

5、性能基準比較:

  性能基準比較,顧名思義,就是在不設定明確的性能目標的情況下,通過比較得到每次叠代中的性能表現的變化,根據這些變化決定叠代是否達到了預期的目標。

          性能測試應用領域與測試方法的關聯

技術分享圖片

  由於性能測試項目一般比較復雜,一個真實的性能測試項目通常同時包括了幾個領域的性能測試目標,這種情況下也可以利用性能測試應用領域的方法,將其分解為多個不同的性能測試應用領域,並為其規劃不同的測試方法。

性能測試應用領域