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.
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.
We are mainly using the official slides provided by Andreas Zeller.
Here you find three additional slide sets: