Debugging, in computer programming and engineering, is a multi-step process that involves identifying a problem, isolating its source, and then either correcting the problem or determining a way to work around it. The final step of debugging is to test the correction and make sure that it works. In software development, debugging involves locating and correcting code errors in a computer program. The debugging process starts as soon as a code is written and continues in successive stages as the code is combined with other units of programming to form a software product. The debugging process can be made easier by using strategies such as unit tests, code reviews, and pair programming.
Source code analyzers, which include security, common code errors, and complexity analyzers, can be helpful in debugging. A complexity analyzer can find modules that are so intricate as to be hard to understand and test. Some tools can actually analyze a test run to see what lines of code were not executed, which can aid in debugging. Other debugging tools include advanced logging and simulators that allow the programmer to model how an app on a mobile device will display and behave.