Normal, Boundary & Erroneous Tests
Categories of tests
- There are three main categories of tests a programmer or test-user would carry out whilst performing both iterative or final testing on a program
- Normal tests
- Boundary tests
- Erroneous tests
- There is an additional test that users would always carry out to test the robustness of their program, this is known as an invalid test
- To explain the types of tests, some example code will be used
Example code
# Ask for user's name
name = input("What is your name? ")
# Ask for user's age
age = int(input("How old are you? "))
# Check if age is between 12 and 18
if age >= 12 and age <= 18:
print("Welcome, " + name + "! Your age is accepted.")
else:
print("Sorry, " + name + ". Your age is not accepted.")
Normal tests
- A normal test is when a user enters data that should be accepted in the program
- An example would be a user entering their age as 16 into the age field of the program
Boundary tests
- A boundary test is when a user enters data that is on the edge of what is acceptable
- An example would be a user entering their age as 12 or 18 into the age field of the program
Erroneous tests
- An erroneous test is when a user enters data that is the wrong data type
- An example would be a user entering their age as "F" into the age field of the program
Invalid tests
- An invalid test is when a user enters data that is the right data type but it is outside of what is accepted
- An example would be a user entering their age as 67 into the age field of the program
Selecting suitable test data
Type of Test |
Input |
Expected Output |
Normal | 14 | Accepted |
Normal | 16 | Accepted |
Boundary | 12 | Accepted |
Boundary | 19 | Rejected |
Erroneous | H | Rejected |
Erroneous | @ | Rejected |
Invalid | 36 | Rejected |
Invalid | 2 | Rejected |
Worked example
SME Electronics is an online shop which sells electronic items.
The following flowchart shows an algorithm used to calculate the price of an item when they have a sale.
- Complete the following test plan for the algorithm [4]
Price Input | Test Type | Expected Price Output |
50 | Normal | |
100 | ||
150 | ||
200 | Boundary | |
FFF |
Answer
- Marked in pairs
- 1 mark per two correct cells
Price Input | Test Type | Expected Price Output |
50 | Normal | 50 |
100 | Boundary | 100 |
150 | Normal | 130 |
200 | Boundary | 180 |
FFF | Erroneous | Error |