Testing is a process of finding bugs or errors in a software product that is done manually or automated by tester.
Testing is a process that can be systematically planned and specified. Testing can be done at all stages of module development: requirements analysis, interface design, algorithm design, implementation, and integration with other modules.
Debugging is a consequence of a successful testing.
Debugging is a process of fixing the bugs found in testing phase. Programmer or developer is responsible for debugging and it can be done by only manually.
The debugging process begins with the execution of the test case. The debugging process will always have one of the two outcomes:
- The cause will be found and corrected.
- The cause will not be found.
Methods of debugging
- Simple method of debugging is to place print statements throughout the program to display the values of the variables. Once the location of an error is identified and the error is corrected, the debugging statements may be removed.
- Second process is deduction. The location of error is arrived at using the process of elimination and refinement.
Difference between Testing and Debugging
|1. The purpose of testing is to find bugs and errors.||1. The purpose of debugging is to correct those bugs found during testing.|
|2. Performed by testers||2. Performed by developer or development team|
|3. Can be done manually or automatically||3. Can only be done manually|
|4. Most of the testing can be done without design knowledge.||4. Debugging can’t be done without proper design knowledge.|
|5. Can be predefined when starting testing. The test result could be predicted||5. Start with unknown conditions and it is hard to predict the result|
|6. Find the programming failure||6. Demonstrate that it’s only an unattended small mistake|