Debugging is the removal of errors. The complier will detect syntax errors and program inconsistencies i.e. use of unassigned variables.
The remaining errors fall into one of two categories;
- Run time errors: Caused by things such as divide by zero, eccessing a file which does not exist.
- Logical errors: The program executes but does not produce the required result. Logical errors should not exist if the design is correct.
With this the programmer plays the part of the computer, executing each instruction, documenting the values of all vaiables during execution. This is very time consuming and is generally used only as a last resort to debugging.
Testing aims to confirm that a program that has no obvious bugs work according to specification.
Functinal testing (black box testing)
Funcional testing involves using the program to process a large amount of data. This is based on the idea that if it gives the correct answers it…