C. Boundary value tests select two or more members of each equivalence class, checking for proper handling of the class at the extreme ends:
Boundary value analysis (BVA) focuses on the edges of equivalence classes. It ensures that the software handles the extreme values at the boundaries correctly, which is where many errors often occur. For example, if an input field accepts values between 1 and 100, BVA would test values like 1, 100, as well as values just outside the boundaries like 0 and 101.
Why the other options are incorrect:
A. Boundary value tests select extreme members of an equivalence class, while equivalence class partitioning alone selects central members:
While it is true that boundary value tests focus on extremes, equivalence class partitioning does not necessarily focus only on central members. It divides the input data into classes of equivalent behavior, and typically tests one representative from each class.
B. Boundary value tests are not related to equivalence class partitions, since equivalence partitions are only defined on sets which do not have ordering of their members:
This is incorrect. Equivalence class partitioning can be applied to ordered sets as well, and boundary value analysis extends this by focusing on the boundaries of these partitions.
D. Boundary value tests select both valid and invalid representatives of each equivalence class, which equivalence class partitioning alone might miss:
Equivalence class partitioning already includes testing both valid and invalid classes. Boundary value analysis extends this by specifically targeting the edges or boundaries of these classes, not just any representatives.
Example for clarification:
· Equivalence class partitioning example: For an input range of 1 to 100, you might choose representative values like 10, 50, and 90.
· Boundary value analysis example: For the same input range, you would test the boundary values like 1, 2, 99, and 100, as well as values just outside the boundary like 0 and 101.
By combining these approaches, you can ensure thorough testing of the input space, focusing on both typical values and edge cases.