什麼是狀態轉換測試?(技術、示例)


狀態轉換測試

狀態轉換測試是一種黑盒測試,可用於測試“有限狀態機”。

“有限狀態機 (FSM)”是一個系統,根據輸入或刺激,將處於多個離散狀態(例如“就緒”、“未就緒”、“開啟”、“關閉”等)。

系統達到的離散狀態由系統的轉換規則決定。有限狀態系統是指根據其先前狀態對相同輸入產生不同輸出的系統。

當系統中每個事務都經過測試時,它也稱為“0-開關”覆蓋率。如果測試涵蓋了兩對合法事務,則為“1-開關”覆蓋率,依此類推。

什麼是狀態轉換測試以及它是如何工作的?

當系統以有限數量的狀態來指定,並且狀態之間的轉換由系統的規則引導時,就會應用狀態轉換方法。

換句話說,當系統的某些方面表示為相互轉換的狀態時,就會應用此方法。程式的規則決定了轉換。

舉個例子,考慮以下情況:

“您去自動取款機取款 1000 美元。您將收到您的錢。現在您沒錢了,併發出相同的 1000 美元取款請求。這次,自動取款機因資金不足而拒絕給您錢。因此,之前的取款是觸發狀態變化的轉換。”

狀態轉換測試的定義

在瞭解了狀態轉換是什麼之後,我們現在可以得出狀態轉換測試更相關的定義。因此,它是一種黑盒測試,其中測試人員必須評估 AUT(被測應用程式)響應一系列輸入情況的行為。

對於正負測試結果,都會記錄系統的行為。

何時適合使用狀態轉換測試?

以下場景可以從狀態轉換測試中受益:

  • 當被測應用程式是具有多個狀態和轉換的即時系統時。

  • 當應用程式依賴於先前的事件、值或情況時。

  • 當需要對事件序列進行測試時。

  • 當必須根據一組有限的輸入值來評估程式時。

何時應避免使用狀態轉換測試?

在以下情況下不應使用狀態轉換測試:

  • 當不需要測試連續的輸入組合時。

  • 當需要測試應用程式的多種功能時(更像是探索性測試)。

有狀態功能測試的方法

實施步驟:

  • 執行“有狀態功能測試”的第一步是識別可以分類為 FSM 的應用程式的不同元件/部分。仔細記錄這些 FSM 中的每一個的輸入、狀態和輸出。

  • 下一步是根據這些 FSM 的轉換規則、輸入、輸出和轉換狀態建立測試用例。

  • 最後一步將是將這些元件的測試與其他介面元件的測試相結合,以便從頭到尾驗證應用程式。

這可以透過名為“房屋專案”的應用程式的示例來說明,該應用程式跟蹤房屋的建造,幷包括諸如批准房屋的建築設計、登記地塊和房屋、選擇建築承包商、批准住房貸款等元件。

**示例**:我們將評估“房屋專案”應用程式的一個 FSM 元件“住房貸款批准”。

住房貸款批准 (HLA) 申請

單獨的貸款處理使用者將執行 HLA 應用程式並處理貸款申請。以下是應用程式處理中涉及的步驟:

步驟 1:收集檔案是第一步

第一步是收集申請貸款所需的必要檔案,如下表所示。它們是提交成功申請的要求。申請人收集相關檔案並將其與住房貸款申請一起提交。

貸款處理使用者確認收到檔案並將貸款申請的狀態(即 HLA 應用程式元件的狀態)更改為“已申請”。

步驟 2:貸款評估

貸方此時評估貸款申請,以檢視它是否符合其信貸標準。此時,會檢查支援檔案。

評估檔案,即此步驟必須認證的“條件”,已得到驗證。每個條件都關聯一個關鍵性(在上表中顯示為“Y”)。在滿足所有必需的關鍵條件後,應用程式將進入“已確認”狀態,即 HLA 應用程式元件處於“已確認”狀態。

請注意以下幾點:

  • 此概念為系統的測試條件和“狀態”定義提供了結構和客觀性。此外,並非所有驗證系統的“標準”都需要它才能達到此“已確認”狀態。為了使應用程式達到“已確認”級別,上表中將四個要求突出顯示為“非關鍵”。

  • 根據每個狀態所需的規則的風險或關鍵性,可以理想地減少驗證次數。這將大大減少執行測試所需的時間,同時保持相同的測試質量水平。

  • 這不僅對測試單個元件很有價值,還可以用於測試整個系統。

  • 也可用於建立迴歸測試套件。因此,此時它是一種 0-開關型別的測試。另一方面,審批的後續階段可能具有 1-開關或 2-開關驗證。例如,“結婚證”在此階段可能不太相關,但在審批流程的後期,當考慮申請人償還 EMI 的能力時,“結婚證”可能會變得相關,即如果配偶也受僱,風險降低,否則風險增加。

  • 根據元件當時的要求,可以應用上述技術來增加測試情況。

步驟 3:有條件批准

應用程式的當前狀態為“已確認”。為了使貸款流程進一步進行,貸方將提供“有條件批准”。將 HLA 申請移至“已批准”級別將需要進一步的驗證。

步驟 4:批准

此時,將執行關鍵驗證:

  • 貸款人抵押保險 (LMI) 評估:這將需要對財產的真實性進行兩次或多次驗證。貸款人有權要求在“確認”步驟中未提供的資訊。

  • 滿足上述先決條件後,應用程式將移至“已批准”狀態。負責審批流程的最終許可權可能會要求貸款申請提供更多資訊,或者可能不會詢問申請人的其他檔案是否具有決定性。為了建立正確性,將需要來自主應用程式的其他元件的更多輸入。

換句話說,根據來自應用程式其他元件的元件的輸入情況,可能需要(或減少)其他驗證才能過渡到新狀態。

風險和障礙

  • 對於大型應用程式,需要深入的應用程式知識才能將其分解成邏輯元件,這些元件可以分類為 FSM 或普通元件。這可能需要 SME 投入大量時間。

  • 對於許多應用程式,這種 FSM 分類將不可行。

  • 由於 FSM 元件與其他應用程式元件互動,因此必須仔細規劃和執行來自其他元件到 FSM 的輸入。

狀態轉換測試的好處

  • 使用這種方法,測試人員可以更輕鬆地瞭解應用程式設計,並更有效、更快速地覆蓋和建立測試。該方法涉及使用視覺或表格方式來描述系統行為。

  • 使用此方法,系統未計劃或無效的狀態也會得到覆蓋。

  • 使用狀態轉換圖,可以輕鬆檢查所有需求是否得到滿足。

狀態轉換測試的缺點

  • 此方法無法解決非有限狀態系統。

  • 對於大型和複雜的系統,定義所有可能的狀態是一項艱鉅的任務。

結論

對於有限狀態系統,當需要檢查替代系統轉換時,狀態轉換測試是一種有用的技術。

使用“有狀態功能測試”的概念來測試複雜的系統,可以為測試組織提供一種獨特的測試方法,以提高測試執行效率,同時不犧牲測試覆蓋率。

狀態轉換測試是一種測試複雜系統的新方法,它可以提高測試執行效率,同時保持測試覆蓋率。

該技術的侷限性在於,只有在被測系統狀態有限的情況下才能使用。

更新於:2021年12月20日

819 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告