News

Help us tailoring automated debugging to your needs

Written 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 Grades

Written 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 3

Written 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 Proposal

Written on 19.02.21 by Johannes Lampel

Dear all,

We send out feedback to all students who uploaded their revised proposals.
If you have any questions regarding our feedback, please send us an email.

-- Your course team

Proposal Feedback & Revision

Written 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).
However, you can now only choose one of the project ideas already mentioned in the project description.
Note, that you need to submit a proposal in order to work on the project.

If you have any questions regarding our feedback, please send us an email.

-- Your course team

Installing debuggingbook as a Python module

Written 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:

$ pip install -i https://test.pypi.org/simple/ debuggingbook==0.8.0rc2

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:

$ pip install -i https://test.pypi.org/simple/ debuggingbook==0.8.0rc2

After installing debuggingbook, you can use all of its features within your Python code:

from debuggingbook.Debugger import Debugger
with Debugger():
    some_function(...)

But you can also run the scripts right away:

$ cd PYTHON_DIR/site-packages/debuggingbook; python Debugger.py

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 3

Written 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.
Please note, that this will not change the deadlines for the fourth project.

Best, -- Your course team

Fourth (and Final) Project now Available

Written 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 available

Written on 02.02.21 by Andreas Zeller

Hello everyone,

The video for Lecture #12 (Generalizing Failure Circumstances) is now available:

https://youtu.be/cGgRjncZiDA

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:

https://youtu.be/cGgRjncZiDA

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 Updated

Written 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.
You can find the updated version here: https://www.debuggingbook.org/beta/html/Repairing_Code.html.

Furthermore, we have published the grading for the second project.

Your course team

Video and material for Lecture #11 (Debugging in the Large) now available

Written on 26.01.21 by Andreas Zeller

Hello everyone,

The video for Lecture #11 (Debugging in the Large) is now available:

https://youtu.be/wu4GNUIDwiw

Your reading assignment are the two (short) chapters on these topics:

https://www.debuggingbook.org/beta/html/Tracking.html

Read more

Hello everyone,

The video for Lecture #11 (Debugging in the Large) is now available:

https://youtu.be/wu4GNUIDwiw

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 now

Written 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 available

Written 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 available

Written 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:

https://youtu.be/vXGBlTr4-4s

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 evaluation

Written 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

https://youtu.be/UJTf7cW0idI

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 available

Written on 05.01.21 by Andreas Zeller

Happy new year everyone!

The video for Lecture #8 (Tracking Origins) is now available:

https://youtu.be/tl8KPbTJtx4

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 available

Written on 15.12.20 by Andreas Zeller

Hello everyone,

The video for Lecture #7 (Isolating Failure-Inducing Changes) is now available:

https://youtu.be/MOWrgS4Mgxg

Your reading assignment is the chapter on the same topic:

https://www.debuggingbook.org/beta/html/ChangeDebugger.html

Enjoy! -- Your course team

Project Deadlines

Written 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 available

Written 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 available

Written on 08.12.20 by Andreas Zeller

Hello everyone,

The video for Lecture #6 (Reducing Failure-Inducing Inputs) is now available:

https://youtu.be/xwr5PexkaQE

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 available

Written 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:

https://youtu.be/qXuzrJBe32Q

Your reading assignment is the chapter on statistical debugging:

https://www.debuggingbook.org/beta/html/StatisticalDebugger.html

Enjoy! -- Your course team

LSF/HISPOS Registration Deadline

Written 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 description

Written 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 available

Written on 24.11.20 by Andreas Zeller

Hello everyone,

The video for Lecture #4 (Asserting Expectations) is now available:

https://youtu.be/uxlAegTkv_Y

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 available

Written 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:

https://www.debuggingbook.org/beta/html/Debugger.html

Read more

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 available

Written 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 available

Written 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:

Read more

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 lecture

Written 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

https://youtu.be/rE6uxIRZT3k

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

https://youtu.be/rE6uxIRZT3k

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 lecture

Written 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

Show all

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:

  1. An Interactive Debugger for Python
  2. Automatically Simplifying Python Programs (like CReduce)
  3. Automatically Repairing Python Programs
  4. 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

Privacy Policy | Legal Notice
If you encounter technical problems, please contact the administrators.