Boundary Value Analysis is a black-box technique that tests the values at the EDGES of input ranges — because defects cluster at boundaries. For a range, you test the minimum, just below/above it, the maximum, and just below/above it.
Off-by-one errors and wrong comparison operators (< vs <=) most often occur at boundaries, so BVA targets them. For a valid range 1–100, test: 0 (below min), 1 (min), 2 (just above min), 99 (just below max), 100 (max), 101 (above max). The 'two-value' BVA uses boundary and boundary±1; the 'three-value' adds the value just inside. BVA is almost always used WITH Equivalence Partitioning — partitions find the classes, boundaries test their edges. It's one of the most-asked test-design techniques.
A password length rule of 8–16 characters is boundary-tested with 7 (invalid), 8 (valid min), 9, 15, 16 (valid max), and 17 (invalid) — catching an off-by-one where the code allowed 7 or rejected 16.
A quantity field accepts 1 to 10. Which specific values does Boundary Value Analysis say to test, and why?