Testing
Course ID: CS 390I
Credit Hours: 4
Instructor: Dr. Jody Paul

Definition of Debugging

Debugging consists of determining the exact nature and location of a suspected error and fixing the error

 

Debugging is that activity which is performed after executing a successful test case (one that exhibits the presence of an error).

 

Perspectives on Debugging

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. —Brian Kernighan

What are typical attitudes towards debugging?

What are psychological implications of debugging?

What is the practice of anti-bugging?

 

Types of Debugging

  • Brute Force
  • Induction
  • Deduction
  • Backtracking
  • Testing

 

Debugging Guidelines

  • Error Locating guidelines
  • Error Repairing guidelines

 

Tools for Debugging

  • Cognitive Tools
  • Automated Tools