At the end of the topic, you should be able to
Why do we need to know about testing and debugging?
Have you encountered using a software and it hangs or gives you an unexpected output? That may be because the software did not handle some user input correctly. In order to reduce such encounters, the programmer needs to perform unit testing on their software to handle all possible user inputs appropriately. If the software is not behaving correctly, the programmer will need to perform debugging to isolate and eradicate the cause.
What is Exhaustive Testing?
Exhaustive testing is a test approach in which all combinations of inputs and preconditions are used to test a software.
Most of the time, it is not feasible to perform exhaustive testing as the possible permutation of inputs may be too large. It is very time consuming and tedious to test through all the possible inputs. It may also be a challenge to anticipate all possible inputs and preconditions that may occur.
Example Illustration
Given a test which consists of 10 MCQs with a passing mark 0f 50. Each MCQ carries 10 marks. A software is written to determine whether a particular student passed or failed the test. The software accepts the input of the student's MCQ test mark and display whether the student has passed or failed the test.
An example of exhaustive testing would be to test all the possible marks a student may get in the MCQ test. The following video illustrates all the test inputs being fed into the software to evaluate the result.
What is Boundary Testing?
Boundary testing is a test approach in which test inputs are generated using