Automated bug isolation via program chipping

Chad D. Sterling, Ronald A. Olsson
2007 Software, Practice & Experience  
This paper introduces program chipping, a simple yet effective technique to isolate bugs. This technique automatically removes or chips away parts of a program so that the part that contributes to some symptomatic output becomes more apparent to the user. Program chipping is similar in spirit to traditional program slicing and debugging techniques and tools, but chipping uses very simple techniques based on the syntactic structure of the program. We have developed a chipping tool for Java
more » ... ms, called ChipperJ, and have run it on a variety of small to large programs, including a Java compiler, looking for various symptoms. The results are promising. The reduced program is generally about 20-35% of the size of the original. ChipperJ takes less than an hour on large programs to perform this reduction; even if it took overnight, that would be reasonable if it saves the developer time. "A fool-proof method for sculpting an elephant: first, get a huge block of marble; then you chip away everything that doesn't look like an elephant." -Unknown
doi:10.1002/spe.798 fatcat:f4ju3weenrgmzgqhjsvuxbyecm