In computers, debugging is the process of locating and fixing or bypassing
bugs (errors) in computer program code or the engineering of a hardware device. To
debug a program or hardware device is to start with a problem, isolate the source of the problem, and then fix it. A user of a program that does not know how to fix the problem may learn enough about the problem to be able to avoid it until it is permanently fixed. When someone says they've debugged a program or "worked the bugs out" of a program, they imply that they fixed it so that the bugs no longer exist.
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. For complex products, debugging is done as the result of the unit test for the smallest unit of a system, again at component test when parts are brought together, again at system test when the product is used with other
existing products, and again during customer beta test, when users try the product out in a real world situation. Because most computer programs and many programmed hardware devices contain thousands of lines of code, almost any new product is likely to contain a few bugs. Invariably, the bugs in the functions that get most use are found and fixed first. An early version of a program that has lots of bugs is referred to as "buggy."
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.
 | Getting started with debugging |
| To explore how debugging is used in the enterprise, here are some additional resources for getting started: |
Better software through debugging and unit testing
Bugs plague software project big and small, and today's complicated software makes debugging more difficult than ever. Let these tips, tutorials, podcasts and articles help you debug your software.
|
| Book excerpt: Why Programs Fail -- A Guide to Systematic Debugging: Debugging software is a crucial and complex process. This free chapter explains how to use testing, such as functional and unit testing, in your debugging program.
|
Contributor(s): Tom Davis
This was last updated in August 1998
Dig Deeper
-
Software consultant Nari Kannan describes how agile practices and work can be scaled appropriately for success in large organizations. Using lean thinking, reduction of waste, and appropriately organizing work and people, agile can be successfully adapted, regardless of the size of the organization.
-
Undiscovered software glitches in complex systems are common, and one of the primary drivers is the loss of mainframe knowledge of a retiring workforce. Software glitches are lurking in many large systems, particularly mainframe systems, and the COBOL programmers that understand the code best are retiring, according to Jeff Papows, author of the new book, "Glitch - The hidden impact of faulty software." Papows describes how faulty software caused a huge charge to debit card holder's account and why such mistakes are on the rise in this interview. Papows notes the three most pressing drivers for software glitches: loss of intellectual knowledge, market consolidation and the ubiquity of technology
-
Karen Johnson explains the situations in which SQL skills are important for a software tester as well as times when the expertise is not required.
-
People who read this also read...