News
Help us tailoring automated debugging to your needsWritten on 16.09.21 by Andreas Zeller Dear former course participants, Thank you for your interest in software testing and debugging! We're developing Alhazen, a tool that automatically finds out when and why your program fails. We are heavily relying on your opinion as professional developers. Please take part in our user study to… Read more Dear former course participants, Thank you for your interest in software testing and debugging! We're developing Alhazen, a tool that automatically finds out when and why your program fails. We are heavily relying on your opinion as professional developers. Please take part in our user study to help us tie our approach to your needs: https://tinyurl.com/debuggingstudy Thanks a lot! Andreas Zeller + Team |
Grading Project 4 + Overall GradesWritten on 08.04.21 by Johannes Lampel Hello everyone, We have published the grading for the fourth project, as well as your overall grade. You can see the results on your personal status page. Your course team |
Grading Project 3Written on 04.03.21 by Johannes Lampel Hello everyone, We have published the grading for the third project. You can see the results on your personal status page. Your course team |
Feedback - Revised ProposalWritten on 19.02.21 by Johannes Lampel Dear all, We send out feedback to all students who uploaded their revised proposals. -- Your course team |
Proposal Feedback & RevisionWritten on 12.02.21 (last change on 17.02.21) by Johannes Lampel Dear all, We send out feedback to all students who uploaded their proposals on time. All students whose proposal was not approved should provide a response to our feedback using the Contribution of Your Choice - Proposal Revision submission until Tuesday, February 16th, 11:59 pm. Students who… Read more Dear all, We send out feedback to all students who uploaded their proposals on time. All students whose proposal was not approved should provide a response to our feedback using the Contribution of Your Choice - Proposal Revision submission until Tuesday, February 16th, 11:59 pm. Students who did not yet submit a proposal can still do so using the aforementioned submission (also until Tuesday, February 16th, 11:59 pm). If you have any questions regarding our feedback, please send us an email. -- Your course team |
Installing debuggingbook as a Python moduleWritten on 08.02.21 by Andreas Zeller Dear all, We have created a beta debuggingbook package that you can install as a Python module, using pip:
After installing debuggingbook, you can use all of its features within your Python code: from… Read more Dear all, We have created a beta debuggingbook package that you can install as a Python module, using pip:
After installing debuggingbook, you can use all of its features within your Python code: from debuggingbook.Debugger import Debugger But you can also run the scripts right away:
We have made a couple of adjustments such that both importing and running should work smoothly. Please let us know if you encounter any problems. If things run smoothly, we will make debuggingbook an official Python package which will then be updated at regular intervals. Enjoy! -- Your course team |
Deadline Extension - Project 3Written on 05.02.21 by Johannes Lampel Hello everyone, We have decided to grant you a deadline extension for project 3. Instead of today, the new deadline will be February 12, 11:59pm CET. Best, -- Your course team |
Fourth (and Final) Project now AvailableWritten on 03.02.21 by Johannes Lampel Dear all, The description of the fourth (and final) project "Contribution of Your Choice" is now available at: https://www.debuggingbook.org/beta/html/Project_of_your_choice.html The deadline is on March 12, 11:59pm CET. Enjoy! -- Your course team |
Video and material for Lecture #12 (Generalizing Failure Circumstances) now availableWritten on 02.02.21 by Andreas Zeller Hello everyone, The video for Lecture #12 (Generalizing Failure Circumstances) is now available: Your reading assignment is the chapter on the same topic: https://www.debuggingbook.org/beta/html/DDSetDebugger.html This is the last lecture (and last chapter)… Read more Hello everyone, The video for Lecture #12 (Generalizing Failure Circumstances) is now available: Your reading assignment is the chapter on the same topic: https://www.debuggingbook.org/beta/html/DDSetDebugger.html This is the last lecture (and last chapter) of this course. Enjoy! -- Your course team |
Grades + Project 3 UpdatedWritten on 27.01.21 by Johannes Lampel Hello everyone, We have updated the current project to use pow() instead of math.pow for the tests. Your course team |
Video and material for Lecture #11 (Debugging in the Large) now availableWritten on 26.01.21 by Andreas Zeller Hello everyone, The video for Lecture #11 (Debugging in the Large) is now available: Your reading assignment are the two (short) chapters on these topics: Hello everyone, The video for Lecture #11 (Debugging in the Large) is now available: Your reading assignment are the two (short) chapters on these topics: https://www.debuggingbook.org/beta/html/Tracking.html https://www.debuggingbook.org/beta/html/ChangeCounter.html Enjoy! -- Your course team |
Grades for the first project are available nowWritten on 19.01.21 by Konstantin Kuznetsov The results of the first project evaluation have been sent out via e-mail. They are also available online. If you think there are errors or if you have questions, please contact us. |
Third project "Automated Repair" now availableWritten on 19.01.21 (last change on 26.01.21) by Konstantin Kuznetsov Dear all, The description of the third project "Automated Repair" is now available at: https://www.debuggingbook.org/beta/html/Repairing_Code.html The deadline is on February 5 at 11:59pm CET. Enjoy! -- Your course team |
Video and material for Lecture #10 (Mining Function Specifications) now availableWritten on 19.01.21 (last change on 26.01.21) by Andreas Zeller Hello everyone, The video for Lecture #10 (Mining Function Specifications) is now available: Your reading assignment is the chapter on the same topic: https://www.debuggingbook.org/beta/html/DynamicInvariants.html Enjoy! – Your course team |
No lecture today, but video + material already available; ongoing student evaluationWritten on 12.01.21 by Andreas Zeller Hello everyone, I have an unplanned doctoral appointment this afternoon, and thus cannot present the lecture as planned. This is particularly sad, as today's topic is one of the absolute highlights of automated debugging (and this code), namely automatically repairing code. This will also be the… Read more Hello everyone, I have an unplanned doctoral appointment this afternoon, and thus cannot present the lecture as planned. This is particularly sad, as today's topic is one of the absolute highlights of automated debugging (and this code), namely automatically repairing code. This will also be the base for your third project. Fortunately, all the material is ready for you to read and try out. You can find the chapter at https://www.debuggingbook.org/beta/html/Repairer.html And I also have pre-recorded a short intro video for today's topic, which you can find at Finally, we have a student evaluation ongoing on this week, and you are welcome to leave comments on the course.
Please take five minutes to fill out these forms; any feedback is highly appreciated. We will monitor the forum for any questions you might have. Hope to see you in person again next week, Andreas Zeller |
Video and material for Lecture #8 (Tracking Origins) is now availableWritten on 05.01.21 by Andreas Zeller Happy new year everyone! The video for Lecture #8 (Tracking Origins) is now available: Your reading assignment is the chapter on the same topic: https://www.debuggingbook.org/beta/html/Slicer.html Enjoy! -- Your course team |
Video and material for Lecture #7 (Isolating Failure-Inducing Changes) now availableWritten on 15.12.20 by Andreas Zeller Hello everyone, The video for Lecture #7 (Isolating Failure-Inducing Changes) is now available: Your reading assignment is the chapter on the same topic: https://www.debuggingbook.org/beta/html/ChangeDebugger.html Enjoy! -- Your course team |
Project DeadlinesWritten on 15.12.20 by Johannes Lampel Dear all, We have updated the Timetable to include the project deadlines. -- Your course team |
Second project "Reducing Code" now availableWritten on 11.12.20 by Andreas Zeller Dear all, The description of the second project "Reducing Code" is now available at: https://www.debuggingbook.org/beta/html/Reducing_Code.html Enjoy the read! The deadline is on the January 15 at 11:59pm CET. |
Video and material for Lecture #6 (Reducing Failure-Inducing Inputs) now availableWritten on 08.12.20 by Andreas Zeller Hello everyone, The video for Lecture #6 (Reducing Failure-Inducing Inputs) is now available: Your reading assignment is the chapter on the same topic: https://www.debuggingbook.org/beta/html/DeltaDebugger.html Enjoy! -- Your course team |
Video and material for Lecture #5 (Statistical Debugging) now availableWritten on 03.12.20 (last change on 08.12.20) by Andreas Zeller Hello everyone, The video for Lecture #5 (Statistical Debugging) is now available: Your reading assignment is the chapter on statistical debugging: https://www.debuggingbook.org/beta/html/StatisticalDebugger.html Enjoy! -- Your course team |
LSF/HISPOS Registration DeadlineWritten on 01.12.20 by Johannes Lampel Dear all, By popular demand, we have extended the registration period for the course. If you haven't registered in LSF/HISPOS for the course yet, you can still do so until today, December 1. Be aware that you are not only registered in the cms but also in LSF/HISPOS. -- Your course team |
HISPOS registration extended to December 1; updated project descriptionWritten on 30.11.20 by Andreas Zeller Dear all, By popular demand, we have extended the registration period for the course. If you haven't registered in HISPOS for the course yet, you can still do so until and including December 1 (Tuesday). Do not miss this deadline! Also, we have updated the description for Project 1 in a number… Read more Dear all, By popular demand, we have extended the registration period for the course. If you haven't registered in HISPOS for the course yet, you can still do so until and including December 1 (Tuesday). Do not miss this deadline! Also, we have updated the description for Project 1 in a number of points. Clarifications are highlighted with blue color. Changes/additions are highlighted with red color. Enjoy! All the best, and see you on Tuesday for a colorful introduction to statistical debugging, Andreas Zeller |
Video and material for lecture #4 now availableWritten on 24.11.20 by Andreas Zeller Hello everyone, The video for Lecture #4 (Asserting Expectations) is now available: Your reading assignment is the chapter on assertions: https://www.debuggingbook.org/beta/html/Assertions.html Enjoy! -- Your course team |
Video for Lecture 3 now availableWritten on 20.11.20 by Andreas Zeller Hello everyone, The video for Lecture #3 (with discussion of Project 1) is now available: https://www.youtube.com/watch?v=tmGyOxQECLA Your reading assignment (and the base for Project 1) is the chapter on interactive debuggers: Hello everyone, The video for Lecture #3 (with discussion of Project 1) is now available: https://www.youtube.com/watch?v=tmGyOxQECLA Your reading assignment (and the base for Project 1) is the chapter on interactive debuggers: https://www.debuggingbook.org/beta/html/Debugger.html Enjoy! -- Your course team |
First Project Description is availableWritten on 17.11.20 (last change on 17.11.20) by Konstantin Kuznetsov Dear all, The description of the first project: Time Travel Debugger, is now available at: https://www.debuggingbook.org/beta/html/Time_Travel_Debugger.html The deadline is on the 18th of December, 2020 at 11:59pm CET |
Video and Material for Lecture 2 now availableWritten on 10.11.20 by Andreas Zeller Dear all, for those who missed the live event, the full video of the second lecture is now available at https://www.youtube.com/watch?v=2NydDNbWlSA Your work assignment for the upcoming week is the chapter "Tracing Executions" from the book: Dear all, for those who missed the live event, the full video of the second lecture is now available at https://www.youtube.com/watch?v=2NydDNbWlSA Your work assignment for the upcoming week is the chapter "Tracing Executions" from the book: https://www.debuggingbook.org/beta/html/Tracer.html Please focus on experimenting with the Python tracing functions and our custom classes; a good way to do this is to do the quizzes and implement Exercise 1. The second exercise is more ambitious, but prepares you for code manipulations and rewrites we will see later. If you have any questions, use our forum or see you in the next lecture! Enjoy, Andreas |
Video and material of first lectureWritten on 05.11.20 (last change on 05.11.20) by Andreas Zeller Dear all, for those who missed the live event, the full video of the first lecture is now available at We apologize for the late upload; for future lectures, we aim to post them on the day after the lecture. Your work assignment for the first week is the… Read more Dear all, for those who missed the live event, the full video of the first lecture is now available at We apologize for the late upload; for future lectures, we aim to post them on the day after the lecture. Your work assignment for the first week is the chapter "Introduction to Debugging" from the book: https://www.debuggingbook.org/beta/html/Intro_Debugging.html Please focus on setting up Python and Jupyter, as set forth in the Exercises. If you have any questions, use our forum or see you in the next lecture! Enjoy! Andreas |
Your first lectureWritten on 03.11.20 by Andreas Zeller Dear all, welcome to "Automated Debugging"! We have updated the course page with up-to-date infornation on projects, grading, attending, and more. Please have a look at https://cms.cispa.saarland/debug/ Most important, today is the day of your first lecture! We are looking forward seeing you… Read more Dear all, welcome to "Automated Debugging"! We have updated the course page with up-to-date infornation on projects, grading, attending, and more. Please have a look at https://cms.cispa.saarland/debug/ Most important, today is the day of your first lecture! We are looking forward seeing you at 16:15 at https://cispa-de.zoom.us/s/99577468631 See you soon, Andreas + Johannes + Konstantin |
Automated Debugging
The Course. Ask yourself: How many hours have you spent chasing bugs? So, wouldn't it be cool if the computer could take care of debugging your program? In this course, we discuss automated debugging and testing techniques such as
- The Debugging Process
- Observing Executions
- Asserting Expectations
- Correlating Failures
- Simplifying Failures
- Abstracting Failures
- Tracking Origins
- Reproducing Failures
- Repairing Failures (automatically!)
- Learning From Mistakes
Course Material. The course material comes as a collection of Jupyter Notebooks, in which you can study how the individual techniques work – and even make your own experiments and create new combinations. Every week, you will be getting 1–2 new chapters (notebooks) on a new topic, which we will then discuss the next week in the classroom. All chapters will be made available at
https://beta.debuggingbook.org/
The menu in the top left shows the individual chapters (as they are being written); the "Resources" menu allows you to work with the examples or download code or notebooks. Under "Help", you will find tutorials for Python and Jupyter.
Attending. The lectures for this course take place as a Zoom webinar, in which our lecturer (Andreas Zeller) will introduce you to the chapters to be read in the upcoming week and answer questions as posed in the chat. The Webinar runs every Tuesday from 16:15–17:45 at
https://cispa-de.zoom.us/j/99577468631
Zoom webinars require you to register using an email address, but you can use any nickname email address for this. The webinar will be recorded, and we will make recordings available publicly. Typing questions in the chat is preferred; voice questions will be recorded and published.
The Projects. Your grade will be determined from a series of projects in which you will build your own automated debugging tools. Planned project topics include:
- An Interactive Debugger for Python
- Automatically Simplifying Python Programs (like CReduce)
- Automatically Repairing Python Programs
- A Tool of your Design
You will implement projects using Jupyter Notebooks, using text and examples to document design choices and introduce your readers to the included Python code. Some of the projects can also be conducted in groups; individual contributions have to be clearly marked.
Grading. Each project will be graded with up to 30 points. If you total more than 60 points, you will pass. If you total more than 100 points, you will get a 1,0 (the best possible grade).
The Prerequisites. We expect programming skills at the level of "Programming 2". Python knowledge and knowledge on program analysis and instrumentation can be acquired on the go. We use some statistics, logic, and machine learning, but nothing too exotic.
Questions and Answers. Use our Forum to ask questions and participate in discussions:
https://cms.cispa.saarland/debug/forum
Or ask questions in the chat during the lecture and get immediate answers.
Date and Time. Every Tuesday 16:15–17:45, starting November 3.
Enjoy! – Andreas + Konstantin + Johannes