Debugging

Winter Semester 2010

Armin Biere

News

2nd Exam: Friday, March 26, 09:00-09:45, HS 12

1st Exam: Wednesday, January 26, 12:00-12:45, HS 9

We switched to three hours slots: first hour in T 038/1 and second and third in BA 9911.

Motivation

Everybody understands that producing working computer systems requires testing. However, testing is only usefull as long bugs are detected. After a bug has been detected its root cause has to be found and fixed. Analysing the root cause of a failure is the task of debugging.

We argue that beside proper testing, mastering the art of debugging can increase productivity considerably. In this lecture we revisit common testing techniques and explain novel debugging techniques.

Resources

We highly recommend the book by Andreas Zeller: Why Programs fail: A guide to systematic debugging. Andreas Zeller. Morgan Kaufmann, second edition 2009.

C. Artho, A. Biere, S. Honiden, V. Schuppan, P. Eugster, M. Baur, B. Zweim├╝ller, P. Farkas. Advanced Unit Testing - How to Scale Up a Unit Test Framework. In Proc. Workshop on Automation of Software Test (AST'06), Shanghai, China, May 2006.

V. Schuppan, M. Baur, A. Biere. VM Independent Replay in Java. In Proc. 4th Intl. Workshop on Runtime Verification (RV'04), Electronic Notes in Theoretical Computer Science (ENTCS), vol. 113, Elsevier 2005.

Some tools and papers from our group on fuzzing and delta debugging.

Slides

We are mainly using the official slides provided by Andreas Zeller.

Here you find two additional slide sets:

profiling

multi-threaded debugging