Yesterday, my Program Worked. Today, it Does Not. Why?

  • Andreas Zeller
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1687)


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.

Unable to display preview. Download preview PDF.


  1. 1.
    Binkley, D. Semantics guided regression test cost reduction. IEEE Transactions on Software Engineering 23, 8 (Aug. 1997), 498–516.CrossRefGoogle Scholar
  2. 2.
    Binkley, D., Horwitz, S., and Reps, T. Program integration for languages with procedure calls. ACM Transactions on Software Engineering and Methodology 4, 1 (Jan. 1995), 3–35.CrossRefGoogle Scholar
  3. 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. 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. 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. 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. 7.
    Tichy, W. F. Smart recompilation. ACM Transactions on Software Engineering and Methodology 8, 3 (July 1986), 273–291.Google Scholar
  8. 8.
    Zeller, A. Versioning system models through description logic. In Proc. 8th Symposium on System Configuration Management (Brussels, Belgium, July 1998), B. Magnusson, Ed., vol. 1349 of Lecture Notes in Computer Science, Springer-Verlag, pp. 127–132.CrossRefGoogle Scholar
  9. 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
  10. 10.
    Zeller, A., and Lütkehaus, D. DDD—A free graphical front-end for UNIX debuggers. ACM SIGPLAN Notices 31, 1 (Jan. 1996), 22–27.CrossRefGoogle Scholar
  11. 11.
    Zeller, A., and Snelting, G. Unified versioning through feature logic. ACM Transactions on Software Engineering and Methodology 6, 4 (Oct. 1997), 398–441.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Andreas Zeller
    • 1
  1. 1.Lehrstuhl für Software-SystemeUniversität PassauPassauGermany

Personalised recommendations