The debugging process will usually have one of two outcomes: (1) the cause will
be found and corrected or (2) the cause will not be found. In the latter case, the person
performing debugging may suspect a cause, design a test case to help validate
that suspicion, and work toward error correction in an iterative fashion.