# Boundary Value Testing - Difference between three point and two point values [ISTQB - Adanced Test Analyst]

This question appeared in one of the sample questions in a web site:

Q. 105: What is the difference between designing tests with three boundary values per boundary and designing boundary value tests with two boundary values per boundary?

The correct answer, as chosen by the site was - C

• A. Use of three boundary values per boundary results in one valid value and two invalid values per boundary, while with two boundary values per boundary, there is one valid value and one invalid value

• B. Use of three boundary values per boundary results in two valid values and one invalid values per boundary, while with two boundary values per boundary, there is one valid value and one invalid value

• C. With three boundary values per boundary, the boundary itself is considered a possible value, while with two boundary values per boundary, the boundary lies between two adjacent possible values

• D. With three boundary values per boundary, you are guaranteed to test the two equivalence partitions on each side of the boundary, while with two boundary values per boundary you might not test the two equivalence partitions on each side of the boundary

However, I have a problem with that answer.

For example, let us take the field to enter a date to a field. Imagine the month has 31 days and that no decimal values are accepted by the system.So,

• Any value from 1-31 would be valid
• Values below 1 and values above 31 would be invalid

Based on the above, we can derive the values for Boundaries like this :

• 3 point boundary value method -> the boundary values 0,1,2 & 30,31,32
• 2 point boundary value method -> the boundary values 0,1 & 31,32

The above values make the following statement true:

Use of three boundary values per boundary results in two valid values and one invalid values per boundary, while with two boundary values per boundary, there is one valid value and one invalid value

However, the given answer to the question was C

## My questions:

1. The BVA values that I have calculated are incorrect/correct?
2. According to you, what is the correct answer to the above problem?
3. If you think C is the answer, can you explain what is meant by "with two boundary values per boundary, the boundary lies between two adjacent possible values"

Thanks

PS: If you are interested, you can see the question here: http://www.softwaretestinggenius.com/istqb-advanced-level-test-analyst-and-technical-test-analyst-exam-sample-paper-q-101-to-110

Here is a quote from "ISTQB - Advanced Level Syllabus - Test Analyst" (Version 2012, it is the earliest version; text marked with bold style by me):

3.2.2 Boundary Value Analysis

Boundary value analysis (BVA) is used to test the values that exist on the boundaries of ordered equivalence partitions. There are two ways to approach BVA: two value or three value testing. With two value testing, the boundary value (on the boundary) and the value that is just over the boundary (by the smallest possible increment) are used. For example, if the partition included the values 1 to 10 in increments of 0.5, the two value test values for the upper boundary would be 10 and 10.5. The lower boundary test values would be 1 and 0.5. The boundaries are defined by the maximum and minimum values in the defined equivalence partition.

For three value boundary testing, the values before, on and over the boundary are used. In the previous example, the upper boundary tests would include 9.5, 10 and 10.5. The lower boundary tests would include 1.5, 1 and 0.5. The decision regarding whether to use two or three boundary values should be based on the risk associated with the item being tested, with the three boundary approach being used for the higher risk items

1. You are right
2. C is not correct. The reason: C states the boundary lies between two adjacent possible values while ISTQB states two value testing, the boundary value (on the boundary) and the value that is just over the boundary (by the smallest possible increment). So correct one is B
3. There is nothing in ISTQB quote about the boundary lies between two adjacent possible values. One value should be on the boundary, another one is just over the boundary with the smallest increment.

And there is a reason to the 3rd: the boundary is connected to the smallest possible increment. E.g. in your case the smallest possible increment is one day, so there is no possibility for the boundary to be 31.5 days and that is why boundary can not lie between two adjacent possible values.

• Yup I agree with Ivan. correct answer should be B – Neeru Gupta Sep 25 '18 at 14:36

Let me answer this old question by stating that C is correct.

• B is wrong because you don't necessarily have an invalid value when testing a boundary if the adjacent partition is also valid.
• C is correct if you look at it this way. I'm quoting from Foundations of Software Testing (written by Rex Black et al, for the ISTQB certification). My bold.

With boundary value analysis, we think of the boundary as a dividing line between two things. Hence we have a value on each side of the boundary (but the boundary itself is not a value).

Looking at the values for our printer example, 0 is in an invalid partition, 1 and 99 are in the valid partition and 100 is in the other invalid partition. So the boundary is between the values of 0 and 1, and between the values of 99 and 100. There is a school of thought that regards an actual value as a boundary value. By tradition, these are the values in the valid partition (i.e. the values specified). This approach then requires three values for every boundary, so you would have 0,1 and 2 for the left boundary, and 98, 99 and 100 for the right boundary in this example. The boundary values are said to be 'on and either side of the boundary' and the value that is 'on' the boundary is generally taken to be in the valid partition.