準則: 工作量分析模型
「工作量分析模型」指出會影響系統效能的變數及如何測量其效果。這個準則說明如何開發工作量分析模型。
關係
相關元素
主要說明

概觀

軟體品質是就各種不同的維度來評量,其中包括可靠性、功能和效能等(請參閱概念:品質維度)。建立工作量分析模型(請參閱工作成果:工作量分析模型)可以識別和定義會影響應用程式或系統效能的不同變數及評量效能時所需要的測量標準。組成模型的工作量設定檔代表在一或多個測試環境配置之下,要針對目標測試項目來模擬的候選狀況。下列角色會用到工作量分析模型:

  • 測試分析師(請參閱角色:測試分析師)會利用工作量分析模型來識別測試觀念及定義不同測試的測試案例
  • 測試設計者(請參閱角色:測試設計者)利用工作量分析模型來定義適當的測試方式及識別不同測試的可測試性需求
  • 測試人員(請參閱角色:測試人員)利用工作量分析模型來進一步瞭解要實作的測試目標,以及適當執行測試及分析執行情況
  • 使用者代表(請參閱角色:關係人)利用工作量分析模型來評量工作量是否適當,以及對照這個工作量分析模型來有效評量系統行為時所需要的測試

工作量分析模型所包括的資訊,焦點在於下列主要區域的特性和屬性:

  • 測試期間將執行和評估的使用案例情境(或實例,請參閱工作成果:使用案例
  • 測試期間將模擬的參與者(請參閱工作成果:參與者
  • 工作量設定檔 - 代表同時參與者實例的數目和類型、這些參與者實例所執行的使用案例情境,以及每個使用案例情境的相關線上回應或通訊量。
  • 執行或評估測試時所用的測試環境配置(實際或模擬)(請參閱工作成果:測試環境配置。另請參閱應該形成測試環境配置基礎的工作成果:軟體架構文件、部署視圖)

測試應該視為用來測量和評估測試目標在不同工作量之下運作時的特性和行為。順利設計、實作和執行這些測試,需要識別這些工作量設定檔的實際資料和例外資料。

使用案例和使用案例屬性

在選取這類測試的情境時,使用案例有兩個方面需要考量:

關鍵使用案例

測試目標所實作的使用案例情境,對這些測試而言,並非全屬必要。關鍵使用案例包含將成為測試焦點(也就是說,將測量和評估它們的行為)的使用案例情境。

如果要識別關鍵使用案例,請識別符合下列一或多項準則的使用案例情境:

  • 需要以工作量設定檔為基礎的測量和評量
  • 一或多位一般使用者(參與者實例)經常執行
  • 代表高百分比的系統使用情況
  • 耗用大量系統資源

列出要併入測試的關鍵使用案例。識別這些項目之後,就應該檢視使用案例事件流程。請開始識別執行使用案例情境時,在參與者(類型)和系統之間的特定事件順序。

另外,也請識別(或驗證)下列資訊:

  • 使用案例的前置條件,如資料狀態(哪些資料應該存在,哪些資料不應存在)及測試目標的狀態
  • 在先後的使用案例情境之間,可以不變(相同)或必須不同的資料
  • 各使用案例之間的關係,如使用案例必須遵循的執行順序。
  • 使用案例情境的執行頻率,其中包括的性質如使用案例並存的實例數目及每個使用案例放在系統上的總負荷量百分比。

重要使用案例

關鍵使用案例情境是測試的主要焦點,重要使用案例和關鍵使用案例情境不同,它是可能影響關鍵使用案例情境之效能行為的使用案例情境。重要使用案例情境包括符合下列一或多個準則的使用案例情境:

  • 它們必須在執行關鍵使用案例之前或之後執行(相依的前置條件或後置條件)
  • 一或多個參與者實例會經常執行它們
  • 它們代表高百分比的系統使用情況
  • 它們需要重要的系統資源
  • 當執行關鍵使用案例情境時,會在部署的系統上例行地執行它們,例如電子郵件或背景列印

當識別和列出重要使用案例情境時,請檢視以上針對關鍵使用案例情境所完成的使用案例事件流程和其他資訊。

參與者和參與者屬性

成功的效能測試不只需要識別執行關鍵使用案例情境和重要使用案例情境的參與者,另外也必須模擬參與者行為。也就是說,當參與者的實例執行參與者另一個實例的相同使用案例情境時,它可以用不同的方式來與測試目標互動(花比較長的時間來回應提示,輸入不同的資料值等)。請設想下列簡單的使用案例:

標題所說明的圖。

ATM 機器中的參與者和使用案例。

執行使用案例情境的「客戶」參與者第一個實例可能是有經驗的 ATM 使用者,「客戶」參與者的另一個實例則可能沒有使用 ATM 的經驗。有經驗的客戶導覽 ATM 使用者介面的速度很快,不太花時間來閱讀每個提示,而是憑印象來按按鈕。不過,沒有經驗的客戶會閱讀每個提示,且會先花一些時間來解讀資訊,再進行回應。 實際的工作量設計檔會反映這項差異,以確保能夠精確評量測試目標的行為。

首先是識別上面所識別的每個使用案例情境的參與者。之後,再識別可執行每個使用案例情境的不同參與者設定檔。在上述 ATM 範例中,我們有下列參與者模板:

  • 有經驗的 ATM 使用者
  • 沒有經驗的 ATM 使用者
  • ATM 使用者的帳號在 ATM 的銀行網路「之內」(使用者的帳戶隨附在擁有 ATM 的銀行)
  • ATM 使用者的帳號在 ATM 的銀行網路之外(對手銀行)

對於每個參與者設定檔,請識別不同的屬性及其值,例如:

  • 停頓時間 - 參與者用來回應測試目標個別提示的時段
  • 打字速率 - 參與者與介面互動的速率
  • 要求速度 - 參與者要求測試目標的速率
  • 重複因數 - 使用案例或要求在序列中重複的次數
  • 互動方法 - 參與者所用的互動方法,如利用鍵盤來輸入值、按 Tab 鍵來進入欄位、使用快速鍵等,或利用滑鼠來「點按」、「剪下和貼上」等。

另外,請識別每個參與者設定檔的工作量設定檔,指定它們所執行的所有使用案例情境,以及參與者執行這些案例所花時間百分比或工作比例。識別這項資訊是用來識別和建立實際的負荷量(請參閱下面的「負荷量和負荷量屬性」)。

系統屬性和變數到頁面頂端

另外,也必須識別測試環境配置用來唯一識別環境的特定屬性和變數,因為這些屬性也會影響行為的測量和評估。這些屬性包括:

  • 實際的硬體(CPU 速度、記憶體,磁片快取等)
  • 部署架構(伺服器的數目、處理流程的分送等等)
  • 網路屬性
  • 可能與測試目標同時安裝和執行的其他軟體(和使用案例)

識別和列出考慮併入測試的系統屬性和變數。這項資訊可以從幾個來源取得,其中包括:

工作量設定檔 到頁面頂端

如先前所說明,工作量是影響測試目標行為的重要因素。準確識別用來評估目標行為的工作量設定檔很重要。一般而言,涉及工作量的測試會利用不同的工作量設定檔來執行許多次,每項測試都代表以下所說明各屬性的變式:

  • 同時與測試目標互動的參與者實例數目
  • 與測試目標互動之參與者的設定檔
  • 每個參與者實例所執行的使用案例情境
  • 每個關鍵使用案例情境的執行頻率及重複頻率

請針對每個用來評估測試目標效能的工作量設定檔,識別上述每個變數的值。您可以觀察參與者或與參與者面談來衍生不同負荷量所用的每個變數值,如果有商業使用案例模型的話,也可以從中取得這些變數值。它適用於將要定義的一或多個下列工作量設定檔:

  • 最佳 - 反映可能最好的部署條件之工作量設定檔,例如只有最少的參與者實例在與系統互動,只執行關鍵的使用案例情境,且在測試期間只執行了最少的其他軟體和工作量。
  • 平均(AKA 一般) - 反映預期或實際的平均使用條件之工作量設定檔。
  • 瞬時尖峰- 反映在正常作業期間短期發生的預期或實際瞬間繁重使用條件之工作量設定檔。
  • 尖峰 - 反映預期或實際的繁重使用條件之工作量設定檔,例如有最多參與者實例在執行使用案例情境的高容量,且在測試期間執行許多其他軟體和工作量。

當工作量測試包括壓力測試(請參閱概念:效能測試技術:測試類型)時,應該識別若干其他負荷,每一項都在所部署之系統的正常預期容量之外,分別鎖定在異常或非預期狀態中的系統特定方面。

效能測量和準則到頁面頂端

只有在測量過測試且評估過工作量行為之後,工作量測試才可能成功。在識別工作量測量和準則時,應該考慮下列因素:

  • 將測量什麼?
  • 在執行測試目標/使用案例時,關鍵的測量點在哪裡,關鍵的測量點又是什麼。
  • 用來判斷可接受之效能行為的準則是什麼?

效能測量

在測試執行期間,可進行許多不同的測量。請識別要進行的重要測量,證明為什麼它們是最重要的測量。

以下列出經常會監視或擷取的效能行為:

  • 測試 Script 狀態 - 目前的測試執行狀態或進度的圖形描述
  • 回應時間/通訊量 - 測量(或計算)回應時間或通訊量(通常稱為每秒交易數)。
  • 追蹤 - 在執行期間擷取參與者(測試 Script)和測試目標(或資料流程和/或流程)之間的訊息和交談。

請參閱技術:測試的主要測量,以取得其他資訊。

關鍵效能測量點

在上面的「使用案例和使用案例屬性」一節中,提到並不是所有使用案例及其情境都會執行效能測試。同樣地,效能測量也並非全部針對每個執行的使用案例情境。一般而言,只有特定使用案例情境是以測量為目標,另外,也可能會測量特定使用案例情境內的特定事件序列來評量效能行為。在選取最重要的效能行為測量「起點」和「終點」時,應該很小心。最重要的起點和終點,通常都是可見度最好的事件序列,或我們可以利用軟硬體的變更來直接影響的事件序列。

例如,在上面所識別的「ATM - 提款」使用案例中,我們可能測量了整個使用案例實例的效能特性,從參與者開始提款的點直到使用案例終止的點,也就是參與者收回他們的信用卡,ATM 準備接受另一張卡之時,如下圖中黑色的「總經歷時間」一行所示:

圖解說明詳見下文。

不過,請注意,總經歷時間包含許多事件序列,有些序列是可控的(如讀取卡片資訊、驗證卡片類型、起始與銀行系統的通訊等,上述 B、D 和 E 項目),有些是不可控(如參與者輸入他們的 PIN 或在輸入提款金額之前讀取提示,A、C 和 F 項目)。在上述範例中,除了測量總經歷時間,我們還會測量 B、D 和 E 序列的回應時間,因為這些事件是參與者最容易見到的回應時間(我們可以利用部署的軟硬體來影響它們)。

效能測量準則

識別了關鍵的效能測量和測量點之後,請檢視效能準則。效能準則說明於增補規格中(請參閱工作成果:增補規格)。必要的話,請修訂準則。

以下是效能測量常用的準則:

  • 回應時間(又稱為線上回應)
  • 傳輸率
  • 回應百分位

處理的線上回應時間(以秒為單位來測量)或交易傳輸率(以所處理的交易或訊息數為單位來測量)是主要準則。

例如,當使用「提款」使用案例時,準則描述為「B、D 和 E 事件(請參閱上圖)必須分別在 3 秒內發生(總共 9 秒)」。如果在測試期間,我們記下了任何識別為 B、D 或 E 的事件化超出所說明的 3 秒準則,我們會將它記錄為失敗。

百分位測量會結合回應時間和/或傳輸率,用來「在統計上忽略」在所說明之準則外的測量。例如,使用案例的效能準則現在指出「對於第 90 個百分位,B、D 和 E 事件必須每個都在 3 秒內發生...」。在測試執行期間,如果我們測量出所有效能測量的 90% 都在所說明的準則內發生,就不記錄失敗。