Module 6: Statistical Debugging Flashcards
1
Q
why do bugs still escape in-house testing and analysis tools?
A
- dynamic analysis is unsound
- static analysis is incomplete
- there are limited resources (time, money, people)
2
Q
monitor deployed code:
A
online: collect info from user runs
offline: company analyzes it
3
Q
two key questions
A
how do we get it?
what do we do with it?
4
Q
practical challenges
A
- complex systems - millions of lines of code / mix of controlled and uncontrolled code
- remote monitoring constraints
- incomplete information (limits of performance overhead & private and security)
5
Q
approach to statistical debugging
A
- guess which behaviors are “potentially interesting”
- -> compile time instrumentation of program - collect sparse, fair subset of these behaviors
- -> generic sampling framework
- -> feedback profile + outcome label for each run - Analyze behavioral changes in successful versus failing runs to find bugs
- -> statistical debugging
6
Q
how do we decide to examine or ignore each instrumented site?
A
randomly
independently
dynamically
for fairness and accurate picture or rare events
7
Q
finding causes of bugs
A
8
Q
tracking context
A
9
Q
a useful measure: increase()
A