9 / 71 · 11 Manual Testing Fundamentals · Test Design Techniques← prev⊞ allnext →☰ Read as one page
2.2Boundary Value Analysis (BVA)
Test at the edges of input ranges, where bugs cluster. Off-by-one errors are the most common numerical bug in software, and BVA is specifically designed to catch them.
The Principle
For any input with a valid range, test:
- The value just below the lower boundary (invalid)
- The lower boundary itself (valid)
- The value just above the lower boundary (valid)
- The value just below the upper boundary (valid)
- The upper boundary itself (valid)
- The value just above the upper boundary (invalid)
Example: Age Field (accepts 18-65)
| Test Value | Expected | Rationale |
|---|---|---|
| 17 | Rejected | Just below minimum |
| 18 | Accepted | Lower boundary |
| 19 | Accepted | Just above minimum |
| 64 | Accepted | Just below maximum |
| 65 | Accepted | Upper boundary |
| 66 | Rejected | Just above maximum |
Additional Boundaries to Consider
- Zero: Does the field accept 0? What about negative numbers?
- Empty string vs null: Different things in most systems
- Maximum length: For text fields, what happens at max length, max + 1?
- Data type limits: Integer overflow (2,147,483,647 for 32-bit signed int)
- Date boundaries: End of month (28/29/30/31), year boundaries, leap years
BVA in Practice
GIVEN a registration form with age field (valid range: 18-65)
WHEN the user enters age = 17 and submits
THEN the form shows validation error "Age must be between 18 and 65"
GIVEN a registration form with age field (valid range: 18-65)
WHEN the user enters age = 18 and submits
THEN the form accepts the input and proceeds to the next step