Debugging Mindset

Debugging is the most expensive task in the SDLC. More
specifically, the fault localization (i.e., locating the root cause of the problem) step is the real bottleneck in the entire process.

There are several attempts in academia to address this problem using automation techniques with relative success in experimental settings and for specific circumstances. 

However, in reality, every bug is a case on its own, and there’s no single automated debugging technique that can be applicable to every situation.

This course introduces useful concepts that help create a
mindset that software developers can use to deal with difficult bugs.

Learning Objectives:

By the end of this course, participants should be able to
  • Recognize the different terms used to describe software problems.
  • Recognize the different activities involved in software debugging.
  • Navigate control and data dependency trees.
  • Use delta debugging technique to minimize the debugging search space.
  • Compare the failing and successful runs to help with debugging.
  • Examine the internal state of a program in order to locate the root cause of a problem.
Write your awesome label here.

Course Contents

Course Lessons

Created with