Software testing :
Software testing is a process used to identify the correctness, completeness, and quality of developed computer software. It includes a set of activities conducted with the intent of finding errors in software so that it could be corrected before the product is released to the end users. Software testing does not fix, repair or solve the problems. The intention of software testing is to find faults in the program. It involves unit, integration and system level testing comprises of software verification and validation.
In simple words, software testing is an activity to check whether the actual results match the expected results and to ensure that the software system is defect free. Software testing unhides, uncover or make efforts to find defects from any software system. It is one of the most important phases of software development life cycle. During the process of software development, a defect can occur at any phase.
Debugging is a necessary process in almost any new software or hardware development process, whether a commercial product or an enterprise or personal application program. Debugging tools called debuggers help identify coding errors at various development stages. Some programming language packages include a facility for checking the code for errors as it is being written.
It is the art of diagnosing errors in programs and determining how to correct them. "Bugs" come in a variety of forms, including: coding errors, design errors, complex interactions, poor user interface designs, and system failures. Learning how to debug a program effectively, then, requires that you learn how to identify which sort of problem you're looking at, and apply the appropriate techniques to eliminate the problem.