Design and implementation techniques for preventing bugs to happen and for ensuring graceful or corrective handling if they nevertheless would occur. Includes defensive designing, defensive coding, automatic error correction, and error recovery strategies. Shall not be used for debugging techniques, which are primarily focused on identifying and catching bugs and provide tools for analyzing their root cause if they happen.
The term antibugging was introduced by the software engineering pioneer Ed Yourdon in his book "Techniques of Program Structure and Design" published in 1975.
Antibugging is an activity that spans the development life cycle with several methods and techniques:
- design that prevents conditions of bugs
- defensive coding to prevent bugs or handle them to avoid error propagation
- graceful handling of unexpected cases
- automatic error correction if possible,
- recovery strategies to resume processing if possible