The technique of detecting, diagnosing and correcting errors (bugs) which may occur. Bugs can exist both in programs, e.g. failure to understand and describe a process, or in hardware, e.g. in the way a hardwired logic unit has been strapped.
A process of testing a program and figuring out where the problems are to make the program works as intended. Some bugs are like viruses but are removed by the skilled programmer as they realize the errors in their programming statements.
Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge in another.