Abstract

Debugging is a critical part of the design, production, and installation phases. Debugging becomes more difficult as systems become more complex and therefore less deterministic. The super wild ass guess (SWAG) method of debugging works best on bugs occurring in relatively small systems or programs. Therefore, in complex systems and programs, the SWAG method may be most useful when other methods have reduced the possibilities to a reasonably small subset of the whole. The divide-and-conquer method is more methodical than the SWAG method and is generally much superior. In the divide-and-conquer method, the system is divided into big chunks and the pieces are tested separately. When the piece containing the defect is determined, then subdivisions within that part may be performed and so forth until the bug is cornered in such a small area that it can no longer hide. In the presence of multiple faults, the divide-and-conquer method may not find the problems because it never fixes all of the bugs at one time. The component-verification method is a last resort for such cases. This method uses a working system as a test set by replacing its working modules with ones whose state is not known. The risk in using the component-verification method is that defects may damage the good system. Defects (or bugs) can be loosely classified according to the characteristics that they depend on for defense against detection. Different types of bugs—the assumption bug, the misdirection bug, and the symbiotic multibug—are discussed in the chapter.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call