Module 5: Delta Debugging Flashcards
1
Q
why simplify test cases?
A
- ease of communication
- easier debugging: smaller test cases result in smaller states and shorter executions
- identify duplicates: simplified test cases subsume several duplicates
2
Q
how do we minimize test cases?
A
binary search
- cut the test case in half
- iterate
3
Q
binary search process
A
this is a naive way to minimize input and not always a good solution
4
Q
line granularity
A
only partition the input at line breaks
5
Q
minimizing test cases
A
exponential
bad!
6
Q
one minimality
A
different problem formulation:
find a set of changes that cause the failure, but removing any change causes the failure to go away
7
Q
1 minimality
A
8
Q
delta debugging
A
a technique, not a tool
bad news: probably must be re-implemented for each significant system to exploit knowledge changes
good news: relatively simple algorithm, big payoff; it is worth re-implementing