Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

軟體測試中的等價分區是一種 黑盒 測試技術,可説明您構建高效的測試用例,而不會影響測試覆蓋率。

在本文中,我們將了解什麼是等價類分區,為什麼它很有用,並探討一些可用於釋放此技術優勢的過程和方法。

 

什麼是等價類分區

在軟體測試中?

QA 測試 - 它是什麼,類型、流程、方法、工具等等!

所有軟體都有特定的輸入條件。 在軟體測試的上下文中,這些輸入條件描述了測試人員必須用於驗證其軟體的品質和功能的值或數據。 這些輸入可以像按兩下滑鼠一樣簡單,一直到文字和數位。

軟體測試中的等效分區探索使用軟體所需的不同輸入,並將它們分組為等價類,即將對軟體行為產生等效影響的輸入集。

如果您知道每組輸入的行為方式,則無需測試該組的每個代表。 因此,等價類分區是幫助測試人員減少冗餘測試頻率的好方法。 在競爭激烈、期限日益緊迫的軟體開發世界中,在軟體測試生命週期 (STLC) 中節省時間和精力至關重要。

最後,值得注意的是,等價測試是一種黑盒測試技術。 簡而言之,這意味著測試人員不需要瞭解程式的內部代碼或內部工作原理。 測試基於輸入、輸出和外部行為。 因此,這些測試高度關注使用者在使用程序時的行為。

 

1. 軟體測試等效分區簡述

等價分區將軟體測試輸入數據分為兩個陣營:有效輸入和無效輸入。 每個分區中的值必須使軟體表現出相同的行為。 例如:

  • 如果分區 A 中一個值的條件為 true,則分區 A 中的其他值也必須為 true。
  • 同樣,如果分區 A 中一個值的條件為 false,則分區 A 中的其他值也必須為 false。

在測試上下文中,每個分區必須至少覆蓋一次。 從邏輯上講,這意味著如果分區 A 中的一個條目失敗,那麼所有其他輸入也將失敗。 此過程應節省時間,因為測試人員可以只測試一個輸入並根據其共性推斷結果,而不是測試位於分區 A 中的每個輸入。

 

2. 為什麼軟體測試中的等價類測試很重要

在我們討論軟體測試中等價類測試的直接好處之前,我們必須定義為什麼這種方法很重要。

所有測試人員都明白,軟體測試需要妥協。 時間和預算是有限的,這意味著測試人員需要充分利用他們的資源。 軟體測試等效分區通過減少輸入數量,幫助團隊在測試中的效率和可靠性之間找到平衡。

 

等價分區的好處

在軟體測試中

機器人流程自動化在保險和會計中的用例

出於各種原因,軟體測試中的等效分區受到測試團隊的青睞。 以下是一些最引人注目的。

1. 效率

等價分區測試的一大優勢在於其效率。 當測試人員使用等效分區時,他們可以減少所需的測試用例數量,而不會影響測試覆蓋率。 通過從每個等價類中選擇一個輸入案例,測試人員可以確信他們了解他們的軟體如何處理各種輸入。

2.簡單

軟體測試等效分區的另一大優點是簡單。 分解有效和無效數據中的各種輸入意味著測試計劃要簡單得多。 單獨測試每個輸入需要大量的文檔和協調。 將其簡化為一個具有代表性的範例可以簡化測試過程。

擴大覆蓋範圍

在測試中使用等價類還可以讓您更有效地利用測試時間。 將測試輸入減少到類中意味著可以更徹底地測試每個類。 坦率地說,如果您單獨測試每個輸入,這種全面的方法是不可能的。 等效分區使團隊能夠全面測試有效和無效數據、邊緣情況、邊界值等。

3. 可重用性

如果您在將來的輸入測試中重用這些類,那麼在軟體測試中建立每個等價類的初始時間將得到回報。 雖然並非所有分區都與將來的測試相關,但那些分區將為您節省大量時間,無論是未來的專案,甚至是 回歸測試 情況。

 

等價分區的缺點

在軟體測試中

挑戰-負載-測試

雖然等效分區提供了一些主要好處,但它並不是每個方案的理想解決方案。 讓我們探討一下它的一些局限性。

1. 輸入訂單

在某些情況下,輸入順序是測試應用程式功能的關鍵部分。 這不是使用等價分區可以真正減少的。 測試人員必須注意這些情況,並使用替代技術來提供良好的覆蓋範圍。

2. 複雜的輸入依賴關係

具有複雜輸入依賴關係的複雜軟體是等價分區局限性暴露的另一個領域。 例如,根據各種輸入輸出計算的軟體。 在這種情況下,測試人員需要使用各種技術來減少組合爆炸並增加隔離缺陷的可能性。

 

補充

等價檢驗的局限性

阿爾法測試與貝塔測試

雖然等效分區測試適用於許多測試方案,但輸入值之間具有複雜依賴關係的高度複雜的軟體可能需要額外的補充方法。

在為複雜軟體編寫測試用例時,結合使用這些方法是一個不錯的主意。

1. 成對測試

成對測試是一種軟體測試技術,用於測試每對輸入參數的所有可能組合。 這種方法可確保每對參數至少一起測試一次。

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

2. 決策表測試

決策表可幫助測試人員有條不紊地繪製出不同的輸入組合。 這是在存在複雜依賴關係時確保系統覆蓋的好方法。

3. 狀態轉換測試

此測試類型測量軟體如何回應各種輸入組合在不同狀態之間轉換。

4. 基於模型的測試

這種方法需要根據軟體的內部邏輯創建模型,並使用自動化工具基於該模型創建測試用例。 這種技術擅長處理複雜性並確保足夠的覆蓋範圍。

 

等效類分區測試範例

Beta測試 - 它是什麼,類型,流程,方法,工具,與Alpha測試等等!

理解等價分區的最好方法是查看在軟體測試中如何以及在何處使用等價類。 下面是一些示例,可説明您進一步可視化該概念。

 

1. 等價類分區測試示例 #1

在線訂單是軟體測試中一個很好的等價類示例。

假設您正在為一家在線固定設備零售商構建一個應用程式。 A4紙保釋金有一份典型的訂購表格。 下面介紹如何使用等價類來測試此表單。

等價類:

A4 紙的數量在特定範圍內,例如 1 到 100。 因此,這三個類是:

  • 1 到 100
  • 低於 1 的數位
  • 大於100的數位。

 

測試案例:

應運行三個測試用例,預期結果如下

  • 介於 1 和 100 之間的任何數位 = 已處理的訂單
  • 低於 1 的數位 = 錯誤訊息
  • 超過 100 的數位 = 錯誤訊息

 

2. 等效分區測試示例 #2

軟體測試中的等價類可以處理的不僅僅是數位。 在此示例中,我們將探討如何使用相同的原則來驗證文件上傳門戶。 假設您需要測試一個要求用戶上傳身份證件的網站,但您只能接受特定格式。

等價類:

  • 支援的文件為 PDF 和 JPEG。
  • 不支援的文件是所有其他文檔格式
  • 無檔

 

測試案例:

  • 通過上傳 PDF 或 JPEG 進行測試 = 上傳成功
  • 通過上傳不支援的格式進行測試 = 錯誤訊息
  • 無檔案上傳測試 = 錯誤訊息

 

如何實現等效分區

軟體測試方法

敏捷DevOps測試自動化:解釋基於ZAPTEST模型的自動化方法

如果要在測試中使用等價類,則需要採取策略性方法。 這是在軟體測試中實現等價分區的有用分步指南。

 

步驟#1:識別輸入變數

 

每個軟體都回應各種輸入變數。 對於複雜的軟體,這些變數可能很大。 因此,仔細閱讀軟體要求和規範,並找出影響軟體行為的所有變數。

一些最明顯的輸入將包括使用者輸入表單。 但是,您需要為清單考慮更廣泛的輸入。 您還可以考慮環境變數、API 調用、內部計算等。

接下來,您應該瞭解不同類型的變數數據。 您可以將這些變數分類為整數、布爾值、字串等,以定義相應的分區。

最後,您需要探索輸入約束。 這將是允許的字元、定義的格式和最小/最大值等內容。

 

步驟#2。 確定有效和無效的分區

查看每個輸入變數,並開始根據有效和無效結果對它們進行分區。 這些將是測試中的等價類。

1. 有效分區

有效的分區可以拆分為兩個類。

正等價類:

您希望軟體能夠成功處理的值。 例如,對於記錄百分比成績的軟體,0 到 100 之間的任何值都是有效的。

負等價類:

此類別將用於超出預期輸入邊界的值,但您的軟體應通過錯誤消息進行處理。 例如,百分比等級的輸入為110,這會提示軟體返回一條錯誤消息,指出“所有值都必須為0到100”。

 

2. 無效的分區

這些等效類將包括將觸發錯誤或意外行為的輸入。 在上面的示例中,這可能包括嘗試將 A+ 或 B 或類似輸入輸入到百分比等級中。 雖然這些輸入在技術上可能是正確的,但它們超出了數字預期。

 

#3. 編寫有效的測試用例

接下來,您需要設計至少一次涵蓋每個等效分區的測試用例。 如本文前面所述,這確保了適當的測試覆蓋率。

首先,您必須在每個等價分區中選擇可以涵蓋有效和無效數據的代表性值。

編寫可靠測試用例的技巧

  • 考慮邊界值:確保測試分區的邊界。 最小值、最大值、非獨佔值、獨佔性等,因為這些區域是 bug 的有力候選者。 例如,如果輸入期望值介於 0 和 100 之間,則測試負值以及 101 等數位。
  • 考慮有效和無效測試用例的正面和負面測試方案。
  • 組合測試是個好主意。 使用我們的替代方法中概述的幾種不同方法來補充上述等效性測試部分的局限性。
  • 記錄輸入值劃分為特定分區的原因,並清楚地概述每個測試的預期行為
  • 在可能的情況下,使用可視化工具,通過使用圖表或表格來映射分區,從而為測試用例帶來清晰和客觀的感覺。

 

#4. 計劃和執行測試用例

根據以下因素確定任務的優先順序:

  • 哪些區域最有可能有缺陷
  • 哪些方案最有可能導致嚴重方案,例如崩潰或凍結

然後,執行測試並記錄輸出和發生的任何錯誤。 對於具有大量輸入的複雜程式,您可以使用 RPA 工具來模擬使用者操作。

 

#5. 分析結果

彙集收集的測試數據並分析結果。 您需要使用的一些方法是:

  • 查看每個測試用例,並將實際輸出與預期輸出進行比較
  • 查找任何差異,並調查並報告任何錯誤和缺陷。

 

#6 其他提示

雖然這些技巧並不適用於所有場景,但它們將被證明對複雜的軟體測試很有用。

  • 決策表是可視化等價分區和您可能想要使用的不同輸入組合的絕佳方式
  • 如果等價類表現出幾乎相同的行為,則可以合併它們,從而進一步優化測試過程
  • 使用邊界值測試來改進缺陷檢測
  • 在可能的情況下,自動執行等效分區測試用例

 

等價劃分和邊界值分析

消除軟體測試自動化中的一些困惑

等效性分區基於以下假設:分區中的每個測試將產生相同的結果。 雖然這在許多情況下是正確的,但它並不總是有效。 例如,任何被錯誤地添加到分區的輸入都可能未被選中,從而導致覆蓋範圍降低和潛在的軟體不穩定。

這個問題的解決方案是邊界值測試。 它允許軟體測試團隊專注於最有可能包含風險的領域,並在此基礎上測試軟體。 簡而言之,它建議風險最有可能發生在輸入分區的邊緣或邊界。 因此,除了其他等價類測試用例外,測試人員還可以在輸入的上限和下限編寫測試用例。

 

使用 ZAPTEST 進行等效分區和自動化

最佳免費和企業軟體測試 + RPA 自動化工具

軟體測試自動化工具(如 ZAPTEST)可以幫助團隊在測試創建和執行期間自動執行等效分區。

讓我們來探討一下ZAPTEST如何説明您釋放這種有用的黑盒測試方法的好處。

 

1.工具選擇

為工作選擇合適的工具很重要。 大多數測試 自動化工具 都專注於 Web、移動或桌面測試。 ZAPTEST能夠處理跨不同平臺和應用程式的測試,使其成為一個可靠的選擇。

 

2. 編寫和執行測試案例

ZAPTEST 1Script 允許您掃描使用者介面以構建測試自動化。 此外,如果您處於開發的早期階段,您還可以掃描應用程式模型。 使用掃描 GUI 功能,ZAPTEST 將掃描所有測試物件並將它們添加到物件清單中。

從這裡,您可以向關係圖添加物件並構建測試步驟。

ZAPTEST 允許您透過簡單的拖放介面自動編寫案例。 您不需要編碼專業知識即可使用 ZAPTEST 構建測試用例。 因此,從這裡,您可以從下拉方法中選擇相關操作,並根據介面所需的輸入值構建測試用例。 然後,您可以為每個等效項構建測試用例並執行測試用例。 您甚至可以重用測試用例並在步驟編輯器中對其進行編輯,從而節省大量時間。

 

3. 報告和測試用例管理

ZAPTEST允許您並行運行測試用例,從而節省大量時間。 這可以説明您一次運行大量不同的等效分區或運行特定的測試組。

由於詳細的失敗/通過報告、螢幕截圖、執行日誌以及與每個測試用例相關的性能指標,因此很容易收集結果。

 

4. 測試用例維護

借助品質版本控制功能,您還可以簡單地跟蹤和維護測試用例。 更重要的是,ZAPTEST使用者可以克隆和重用測試,以實現新的效率水準。

除了測試用例自動化之外,ZAPTEST 還提供了更多功能。 借助一套 RPA 工具,ZAPTEST 提供二合一功能,在以超自動化為標誌的未來彌合 DevOps 和 BizOps 之間的差距,所有可以自動化的事情都將實現自動化。

 

結語

等效分區是一種優雅的解決方案,適用於測試人員必須在效率和準確性之間取得平衡的情況。 由於一些軟體允許幾乎無窮無盡的輸入範圍,等價類分區可幫助團隊將測試數據分解為可管理的、一口大小的塊,每個塊都可以進行徹底測試。

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post