Yesterday, my Program Worked. Today, it Does Not. Why?
Imagine some program and a number of changes. If none of these changes is applied (“yesterday”), the program works. If all changes are applied (“today”), the program does not work. Which change is responsible for the failure? We present an efficient algorithm that determines the minimal set of failure-inducing changes. Our delta debugging prototype tracked down a single failure-inducing change from 178,000 changed GDB lines within a few hours.
Unable to display preview. Download preview PDF.
- 3.IEEE. Test Methods for Measuring Conformance to POSIX. New York, 1991. ANSI/IEEE Standard 1003.3-1991. ISO/IEC Standard 13210-1994.Google Scholar
- 4.Leblang, D. B. The CM challenge: Configuration management that works. In Configuration Management, W. F. Tichy, Ed., vol. 2 of Trends in Software. John Wiley & Sons, Chichester, UK, 1994, ch. 1, pp. 1–37.Google Scholar
- 5.Ness, B., and Ngo, V. Regression containment through source code isolation. In Proceedings of the 21st Annual International Computer Software & Applications Conference (COMPSAC’ 97) (Washington, D.C., Aug. 1997), IEEE Computer Society Press, pp. 616–621.Google Scholar
- 6.Stallman, R. M., and Pesch, R. H.Debugging with GDB, 5th ed. Free Software Foundation, Inc., Apr. 1998. Distributed with GDB 4.17.Google Scholar
- 7.Tichy, W. F. Smart recompilation. ACM Transactions on Software Engineering and Methodology 8, 3 (July 1986), 273–291.Google Scholar
- 9.Zeller, A. Yesterday, my program worked. Today, it does not. Why? Computer Science Report 99-01, Technical University of Braunschweig, Germany, Feb. 1999.Google Scholar