Test Case Design Techniques — BVA and Equivalence Partitioning
Without systematic design techniques, test case creation devolves into random or experience-based guessing — some scenarios get over-tested while critical edge cases are missed entirely. Equivalence Partitioning (EP) and Boundary Value Analysis (BVA) are the two most foundational test design techniques, taught in every ISTQB curriculum and expected from any professional QA engineer. Together they dramatically improve defect detection while reducing the number of test cases needed.
Equivalence Partitioning (EP)
EP divides the input domain into partitions where all values in a partition are expected to be treated identically by the system. If the system behaves the same for all values in a partition, testing one representative value is sufficient — we don't need to test every possible value. Steps: Identify the input field and its valid range/constraints. Divide inputs into valid partitions (values the system should accept) and invalid partitions (values the system should reject). Select one representative from each partition. Example: An age field that accepts 18-65. Valid partition: 18-65 (test with 35). Invalid partition 1: less than 18 (test with 10). Invalid partition 2: greater than 65 (test with 80). Invalid partition 3: non-numeric (test with 'abc'). Four test cases cover all behavior patterns instead of testing every age from 1-100.
Boundary = most bugs found. Equivalence reduces test count. Decision tables for complex logic.
Boundary Value Analysis (BVA)
- BVA extends EP by recognizing that defects cluster at partition BOUNDARIES — the edges are where developers most often make off-by-one errors, incorrect comparisons (>= vs >), and fence-post mistakes
- For the same age field (18-65), BVA tests: 17 (just below lower boundary), 18 (lower boundary), 19 (just above lower boundary), 64 (just below upper boundary), 65 (upper boundary), 66 (just above upper boundary)
- Combined EP+BVA approach: Use EP to identify partitions, BVA to test boundaries of each partition. This combination provides maximum defect detection efficiency
- Real-world example: Amazon's quantity field accepts 1-999 items. EP: test 500 (valid), 0 (below min invalid), 1000 (above max invalid). BVA: test 0, 1, 2, 998, 999, 1000. This catches the common off-by-one bug where a developer writes qty > 999 instead of qty >= 999, accepting 1000 when 999 is the limit
- When to use BVA: Always for numeric ranges, string length limits, date ranges, array sizes, and any input with explicit upper/lower bounds. BVA detects off-by-one errors that EP alone misses
Tip
Tip
Practice Test Case Design Techniques BVA and Equivalence Partitioning in small, isolated examples before integrating into larger projects. Breaking concepts into small experiments builds genuine understanding faster than reading alone.
Practice Task
Note
Practice Task — (1) Write a working example of Test Case Design Techniques BVA and Equivalence Partitioning from scratch without looking at notes. (2) Modify it to handle an edge case (empty input, null value, or error state). (3) Share your solution in the Priygop community for feedback.
Quick Quiz
Common Mistake
Warning
A common mistake with Test Case Design Techniques BVA and Equivalence Partitioning is skipping edge case testing — empty inputs, null values, and unexpected data types. Always validate boundary conditions to write robust, production-ready qa engineering code.
Key Takeaways
- Without systematic design techniques, test case creation devolves into random or experience-based guessing — some scenarios get over-tested while critical edge cases are missed entirely.
- BVA extends EP by recognizing that defects cluster at partition BOUNDARIES — the edges are where developers most often make off-by-one errors, incorrect comparisons (>= vs >), and fence-post mistakes
- For the same age field (18-65), BVA tests: 17 (just below lower boundary), 18 (lower boundary), 19 (just above lower boundary), 64 (just below upper boundary), 65 (upper boundary), 66 (just above upper boundary)
- Combined EP+BVA approach: Use EP to identify partitions, BVA to test boundaries of each partition. This combination provides maximum defect detection efficiency