fbpx

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

邊界值分析(通常簡稱為BVA)是一種常見的 黑盒測試 技術。 該方法通過驗證允許範圍邊界上的輸入值來測試軟體缺陷。

本文將探討什麼是邊界分析測試,為什麼它有用,並探討一些不同的方法、技術和各種邊界測試工具。

 

什麼是軟體測試中的邊界值分析?

軟體測試中的靜態測試 - 它是什麼,類型,過程,方法,工具等等!

邊界值分析是一種 功能測試。 這種類型的測試涉及驗證軟體的每個功能是否滿足要求和規範。 在邊界測試的情況下,此功能包括軟體如何處理各種輸入。

BVA 是一種軟體測試技術,用於驗證軟體如何回應輸入邊界邊緣或附近的輸入。 從本質上講,每個輸入都有允許的範圍。 例如,您可能有一個登錄密碼框,該密碼框接受 8 到 12 個字元之間的密碼。 邊界測試將測試字元長度為 7、8、12 和 13 的密碼。

這裡的想法是,極限的邊界,即 7、8、12 和 13,比邊界內的數位(如 9、10 和 11)更容易拋出錯誤。 雖然在接受 8 到 12 個字元的欄位框示例中,這裡的好處可能看起來微不足道,但當您需要為包含 1 到 20 個字元或 1 到 1000 之間的數位等欄位框編寫測試用例時,它們會變得更加明顯。

因此,為了節省時間並減少功能測試中的測試用例數量,邊界值分析著眼於值:

  • 最小值
  • 直接低於最小值
  • 在最大值下
  • 直接高於最大值

 

邊界值分析在測試中的優勢

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

邊界測試對 QA 團隊有幾個令人信服的好處。

#1. 更好的軟體品質

對於測試人員來說,噩夢般的場景是被忽視的錯誤和缺陷。 有這麼多東西需要驗證,一些缺陷可能會從裂縫中溜走。 邊界測試證明瞭軟體中更有可能包含錯誤的區域的功能,從而導致更好的軟體構建,並最終實現更可靠、更穩定的應用程式。

#2. 增加測試覆蓋率

軟體測試中的BVA非常有用,因為它有助於減少全面測試覆蓋所需的測試用例數量。 邊界值分析可確保重要值和每個值可以得到更徹底的測試。

#3. 早期缺陷檢測

邊界值測試是優先考慮早期缺陷檢測的方法的一部分。 在流程的早期發現錯誤意味著開發團隊可以節省時間和金錢,甚至無需提及在開發的早期階段修復錯誤要容易得多的事實。

#4. 效率

邊界值測試非常高效,因為它減少了對大量測試用例的需求。 事實上,將輸入減少到除最有可能引起問題之外的所有輸入,可以大大節省測試團隊編寫和執行測試用例的時間。

 

測試中邊界值分析的缺點

不同的軟體和 QA 方法

當然,沒有一種軟體測試技術是完美的或沒有局限性的。 雖然邊界值分析有很多好處,但使用這種功能測試技術存在一些限制。

#1. 範圍窄

BVA在有效數據輸入的邊界或邊緣上工作。 通常,它忽略了中間輸入,認為如果邊上的有效輸入是,它們就可以了。 但是,其中一些未經測試的值可能存在問題,這並非沒有先例。

#2. 過於簡單化

邊界分析就是讓事情變得簡單。 雖然這適用於減少測試用例,但該方法不太適合具有多個邊界、交互或依賴關係的高度複雜的領域。 事實上,它可能難以處理複雜的場景,這意味著您需要探索其他技術以獲得足夠的覆蓋範圍。

#3. 假設

任何試圖提高效率的過程都有可能錯過特定的錯誤。 BVA側重於範圍邊緣的邊界。 在這樣做時,它必須對落在邊界值兩側的其他輸入做出假設。 測試人員必須在效率和覆蓋率之間取得平衡,如果單獨使用邊界測試,則會帶來輕微的風險。

#4. 依靠準確的規格和要求

高效的BVA取決於規格和需求文檔的質量和準確性。 這些文件中任何未經檢查的錯誤都可能影響到邊界值測試,並導致特定錯誤在開發的關鍵後期階段未被檢查和發現。

#5. 對等價類的依賴

執行徹底的 BVA 需要對等價類有很強的工作知識。 準確設置這些類需要經驗和應用程式的一些背景資訊。

 

邊界值分析的挑戰

在軟體測試中

挑戰-負載-測試

到現在為止,您應該已經相當清楚邊界測試的優缺點了。 但是,如果您想將該方法實施到您自己的軟體測試中,您還必須了解必須克服的各種挑戰。

以下是在軟體測試中實現邊界值測試的一些挑戰。

 

#1. 勾勒邊界

對於稱職的測試人員來說,識別簡單系統內的邊界幾乎沒有挑戰。 但是,還有更複雜的情況,例如:

  • 具有不同輸入變數或複雜關係的複雜輸入域
  • 規範文件中未明確概述的未記錄邊界
  • 根據使用者操作或其他條件而變化的動態邊界

 

#2. 模棱兩可的要求

寫得不好或不清楚的需求文檔會阻礙邊界值的識別。 清晰、完整和對詳盡規範文檔的承諾需要時間,但它們最終會得到回報。

 

#3. 專門知識

邊界值分析可能非常複雜。 事實上,測試團隊需要具有該領域經驗和知識的人員來瞭解該技術的細微差別。 更重要的是,測試人員需要具備一些軟體知識,或者至少需要有可靠的規範文檔可以依靠。

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

#4. 錯誤

邊界分析旨在減少驗證有效和無效輸入所需的測試用例數量。 然而,超出測試範圍的缺陷很容易被忽視。 此外,「差一」錯誤是常見的編碼錯誤,可能發生在邊界處或邊界附近。 測試人員必須意識到這些情況,併為測試做好準備。

 

#5. 測試用例爆炸

由於存在多個輸入邊界,測試用例很快就會變得複雜並失控地成倍增加。 在這些情況下,邊界測試可以節省的時間和金錢會丟失,從而削弱解決方案的優勢。 具有大量組合或排列的複雜軟體構建可以產生類似的效果。

 

#6. 分析工具的局限性

軟體測試自動化工具 可以幫助團隊執行充分的邊界值分析。 但是,即使在最好的情況下,這些工具也需要一些手動干預來測試和測試創建。 對於具有多變數交互的複雜構建,這種情況可能會加劇。

 

不同類型的邊界值

軟體測試中的測試

檢查表軟體測試流程

《Software Testing: A Craftsman’s Approach》一書中,作者 Paul C. Jorgensen 和 Byron DeVries 描述了四種不同類型的邊界值測試,它們是:

 

1. 正態邊界值測試(NBVT)

  • 測試輸入域邊緣的有效輸入值
  • 探索邊界上方和下方的輸入的最小值和最大值
  • 這是典型的邊界值分析類型

 

2. 魯棒邊界值測試(RBVT)

  • 與上面的 NBVT 類似,但也包含無效的輸入
  • 在邊界和邊界之外進行測試,但也考慮了無效輸入
  • 專注於從極端或意外輸出中查找錯誤

 

3. 最壞情況邊界值測試(WBVT)

  • 使用極端有效值和無效值驗證軟體行為
  • 探索輸入域邊緣的值和超出這些邊界的值
  • 試圖瞭解更極端條件下的軟體行為

 

4. 魯棒最壞情況邊界值測試(RWBVT)

  • 使用 RBVT 和 WBVT 的混合物進行最徹底的邊界值測試
  • 在典型邊界和極端邊界處測試有效和無效的輸入值
  • 提供查找邊界相關缺陷的最佳機會

 

這些方法在全面性上有所不同,其中RWBVT是最徹底的。 但是,測試人員必須承認,解鎖這種額外的缺陷發現級別所需的時間和精力都需要額外的投入。

 

等價劃分和邊界值

分析:異同

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

等價劃分和邊界值分析通常相互結合使用。 事實上,這兩種技術是高度互補的。 但是,它們描述了驗證數據輸入的不同方法。 以下是兩者之間的異同。

 

1. 相似之處

等價劃分和邊界值分析是一對很好的組合。 以下是這兩種技術之間的一些相似之處。

  • 它們都是 黑盒 測試技術,這意味著專注於輸入和輸出,可以在不先驗瞭解應用程式原始程式碼的情況下進行測試。
  • 它們都是測試輸入的全面方法的一部分
  • 它們都可以幫助測試人員在全面的測試覆蓋率之間取得平衡,而不會編寫過多的測試用例。

 

2. 差異

為了探索等價劃分和邊界值分析之間的區別,我們需要孤立地看待它們。

等效分區

  • 將輸入數據劃分為等價類,這些類應產生相似的系統輸出
  • 使用每個類中的單個代表值,並使用該值測試系統
  • 它涉及識別有效和無效的等價類

 

邊界值分析

  • 測試等價類的邊界或邊緣處的值
  • 測試多個值,包括邊界兩側的最小值、最大值和值
  • 查找在邊界邊緣發現的錯誤

 

等價劃分和邊界值分析示例

為了幫助您鞏固對等價劃分和邊界值分析的理解,以下是一些示例。

等效分區示例:

假設您有一個用於汽車登記的輸入框。 通常,美國汽車牌照有 6 到 7 個字元。 為簡單起見,我們將對特殊車牌打折。

有效數據 = 板 6 或 7 個字元

無效資料 = 包含 >6 或 >7 個字元的板。

 

邊界值分析範例:

使用與上述相同的車牌示例,邊界分析將進行測試

有效資料 = 包含 6 或 7 個字元的板

無效數據 = 包含 5 或 8 個字元的板,在某些情況下,包含 4 個和 9 個字元

 

邊界值分析示例

Alpha 測試和 RPA 的優勢

也許完全理解這個概念的最好方法是查看另一個或兩個邊界值分析示例。

 

邊界值測試示例 #1

為了更詳細地探討邊界值測試,讓我們看一個年齡驗證域的示例。

我們有一個框,用戶可以在其中輸入他們的年齡。

邊界值為:

  • 最低年齡 = 18 歲
  • 最大年齡 = 120

 

邊界測試用例示例:

共有六個測試用例:

  • 17、18 和 19,分別低於最小值、最小值和高於最小值
  • 119、18 和 19,分別低於最大值、最大值和高於最大值

 

邊界值測試示例 #2。

在下一個邊界測試示例中,我們將探索一個網站,訂單滿 100 美元及以上的訂單最低購買價值為 20%。

在此示例中,購買超過 600 美元可享受 25% 的折扣。 邊界值測試將處理 100 美元到 600 美元之間的輸入。

邊界值為:

最低合格折扣 = $100

最高合格折扣 = $600

 

邊界測試用例示例:

同樣,我們總共生成了六個測試用例,它們是:

  • 99.99 美元、100 美元和 100.01 美元,分別低於最低、最低和高於最低
  • 599.99 美元、600 美元和 600,01 美元,分別低於最大值、最大值和高於最大值

 

軟體測試中的邊界測試是否準確?

阿爾法測試與貝塔測試

在研究論文《使用等價分區和邊界值分析方法進行黑盒測試》中,作者探索了使用 等價分區和邊界值分析來測試印尼馬塔蘭大學的學術信息系統。

作者使用流行的開源測試工具Selenium進行測試,總共運行了322個測試用例。 等效性檢驗和邊界值分析發現了大約 80 個失敗案例,這導致有效與無效測試分數的比例約為 75:25。 總的來說,在軟體測試中使用等價分區和BVA的組合導致了對軟體的徹底和有用的測試。

 

最佳邊界值測試工具

ZAPTEST RPA + 測試自動化套件

雖然專用的邊界測試軟體工具很少見,但有許多值得注意的測試工具能夠完成這項工作。

#3. 測試案例實驗室

TestCaseLab 是一個基於雲的測試管理工具,可以幫助進行 BVA 測試。 該軟體允許團隊從其直觀且有吸引力的使用者介面創建和管理測試用例。 TestCaseLab 靈活且功能豐富,但它有其局限性,包括有限的報告和自定義選項。

 

#2. Micro Focus UFT One

Micro Focus UFT One 是一款軟體測試工具,專注於功能 和回歸測試。 它支援不同的平臺、設備和 API 測試 ,並提供強大的整合選項。 它提供無代碼和關鍵字驅動的測試創建,可以幫助團隊輕鬆構建邊界值分析測試用例。 您需要考慮一些限制,例如與 ZAPTEST 等工具相比,學習曲線陡峭且功能不足。

 

#1. 扎普泰斯特

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

ZAPTEST是一款具有高級 RPA功能的綜合性軟體自動化測試工具。 它旨在為測試人員提供一套使用者友好且強大的測試自動化工具,這些工具可以通過多種方式幫助驗證軟體,包括在軟體測試中使用 BVA。

ZAPTEST 幫助邊界值分析的一些最引人注目的用例包括測試用例生成、測試數據處理、測試執行以及報告和分析。 通過一系列範本和高度定製,結合無代碼測試用例創建,ZAPTEST使用者可以快速輕鬆地為所有類型的邊界分析創建和管理強大的測試用例。

除了測試用例的生成和管理之外, ZAPTEST 的 RPA 功能 還可以幫助測試團隊以其他方式進行邊界值分析測試。 例如,您可以自動執行測試用例、生成測試數據以及構建與其他測試工具的強大集成。

 

邊界值測試技巧

  • 將邊界值分析與等價分區相結合,以確保測試用例涵蓋各種輸入場景
  • 使用無效輸入場景(即負面測試)來確保驗證軟體如何處理錯誤和意外輸入
  • 花時間識別不同數據類型(如文本、數位、布爾值等)的邊界值。
  • 優先對關鍵功能或更容易發生錯誤的區域進行邊界值測試
  • 使用實際數據來表示您的使用者將輸入到您的域中的數據類型。

 

結語

邊界值分析是一種有用的功能測試方法。 當您有一個輸入域時,您需要檢查它是否接受有效數據,並在接收到無效數據時發送錯誤消息。 邊界分析測試通過僅構建全面測試所需的測試用例,説明以有效的方式驗證該功能。

邊界測試著眼於可接受範圍內或附近的值,並驗證系統如何響應這些輸入。 結果是節省了大量時間並減少了工作量,因為您不需要構建冗餘的測試用例。 在快節奏的軟體開發世界中,最後期限似乎來得又快又快,測試團隊需要他們能得到的所有説明。

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

Virtual Expert

ZAPTEST

ZAPTEST Logo