Debugging versus Scenario Testing

Recently someone in a class asked about the difference between debugging and scenario testing given the fact that many errors that need to be fixed must be completed in the code.

If we make the assumption that we are doing a calculation of some sort or running an algorithm then the following applies.

During User Acceptance Testing – the test should work end-to-end without an error in actual execution. The appearance, formatting or placement of the result may be incorrect but there should be no problems in running the actual process. This applies to normal cases. Clearly there is a possibility of issues with the unique cases that may have been identified late in the process. If the algorithm or test case does not run or cannot be completed then we are probably debugging rather than scenario testing.

During System Testing – the calculation should complete although the result may be wrong and one or more steps along the way may provide incorrect results. So the results should be available and the algorithm complete although the results may be wrong. System Testing is aimed at Requirements so this is where we should whether the results agree with the requirements. If the individual test cases do not run or cannot be completed then we are probably debugging rather than scenario testing.

During Integration Testing – each individual piece (validation of a piece of the overall algorithm) should run but they may not be able to work together. If the individual pieces do not work, then we are debugging. If they cannot be run as an integrated whole, then we are testing.

During Unit Testing – we are debugging each individual piece of the algorithm. This is code debugging and is not expected to be anything else.