Software Debugging



Informazione importanti

  • Corso
  • Online
  • Quando:

In this course you will learn how to debug programs systematically using scientific methods and build several automated debugging tools in Python.

Informazione importanti

Dove e quando

Inizio Luogo

Cosa impari in questo corso?

Asserting Expectations
Simplifying Failures
Tracking Origins
Reproducing Failures


Lesson 1: How Debuggers work

Theory: Scientific method and its application to debugging.
Fun fact: First bug in the history of computer science.
Practice: Building a simple tracer.

Lesson 2: Asserting Expectations

Theory: Assertions in testing and in debugging.
Fun fact: The most expensive bug in history.
Practice: Improving the tracer.

Lesson 3: Simplifying Failures

Theory: Strategy of simplifying failures. Binary search. Delta debugging principle.
Fun fact: Mozilla bugathon.
Practice: Building a delta debugger.

Lesson 4: Tracking Origins

Theory: Cause-effect chain. Deduction. Dependencies. Slices.
Fun fact: Sherlock Holmes and Doctor Watson.
Practice: Improving the delta debugger.

Lesson 5: Reproducing Failures

Theory: Types of bugs (Bohr bug, Heisenbug, Mandelbug, Schrodinbug). Systematic reproduction process.
Fun fact: Mad laptop bug.
Practice: Building a statistic debugging tool.

Lesson 6: Learning from Mistakes

Theory: Bug database management. Classifying bugs. Bug maps. Learning from mistakes.
Fun fact: Programmer with the most buggy code.
Practice: Improving your tools and practicing on a real world bug database.