// Free testing tool

Boundary Value Analysis &
Equivalence Partitioning Generator

Enter the lowest and highest values a field should accept, and get the partitions, boundary values and expected results, ready to test.

// Generator

Generate your test values

Enter the rule for a field, and get the partitions, boundary values and expected results.

Partitions
Test values

Things to know

  • The generator treats the lowest and highest values as allowed. If the rule says "under 18", work out the highest value that's allowed first. For whole numbers, "under 18" means a highest value of 17.
  • Expected results assume the field rejects anything outside the range. Check the requirements for exactly what should happen, such as which error message appears.
  • A blank field is listed as rejected. If the field is optional, a blank should be accepted, so change the expected result for that test.
// FAQs

Frequently asked questions

2-value is quicker and is often enough for simple ranges. 3-value is worth the extra tests when a defect at the boundary would cause real problems, such as with payments, age checks or anything that affects who can use a service.

It works for anything with a lowest and highest value, including text length. For a password that must be 8 to 64 characters, the values are lengths, so you'd test passwords of 7, 8, 64 and 65 characters. The same idea works for dates: the day before, the first day, the last day and the day after.

Testing a few more middle values can feel safer, but they all go through the same part of the code. If 41 is accepted, 30 and 50 will almost certainly behave the same way. Extra tests are better spent at the boundaries, where defects are more likely.

A partition is a group of values, such as every age from 18 to 65. A boundary is the edge of that group, such as 18 and 65. Equivalence partitioning makes sure every group is tested, and boundary value analysis makes sure every edge is tested.

No. Both techniques work from the requirements, the rules a field should follow, not from the code. That's why they're among the first test design techniques new testers learn.