../
Fault Isolation
Questions
- Why would you want to reduce the size of the inputs causing a fault?
- Shorter running times
- Can localize the fault
- Easier to communicate
- Easier to find duplicates
- Give the algorithm to reduce input size?
- Start with a fault causing input
- Divide it into two. Check which half causes the failure.
- Repeat from step 1
- What happens when both halves of the input pass individually but as a whole fail?
- Reduce granularity by half
- Use quarters of input rather than half
- What are effects of granularity size?
- probability of finding the fault
- execution times
- Challenges in delta debugging
- Some input cannot be split neatly
- Other factors such as execution time
- Non-determinism
- High execution costs
- What is the key insight behind spectrum based localization ?
- To cause a fault a statement must be executed
- by calculating the fraction of times a statement being executed coincided with a fault can give us estimates on how risky that statement is
- To cause a fault a statement must be executed
- Give the simplest statement risk formula
number of executions with faults / total number of executions
- What makes spectrum based localization so cheap?
- We are already collecting coverage and running tests
- Why not use it for this?
- What is invariant diff-based localization
- Collect invariants during the run
- Difference between invariants in passing runs vs faults