Module 6: Statistical Debugging Flashcards

1
Q

why do bugs still escape in-house testing and analysis tools?

A
  1. dynamic analysis is unsound
  2. static analysis is incomplete
  3. there are limited resources (time, money, people)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

monitor deployed code:

A

online: collect info from user runs
offline: company analyzes it

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

two key questions

A

how do we get it?

what do we do with it?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

practical challenges

A
  1. complex systems - millions of lines of code / mix of controlled and uncontrolled code
  2. remote monitoring constraints
  3. incomplete information (limits of performance overhead & private and security)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

approach to statistical debugging

A
  1. guess which behaviors are “potentially interesting”
    - -> compile time instrumentation of program
  2. collect sparse, fair subset of these behaviors
    - -> generic sampling framework
    - -> feedback profile + outcome label for each run
  3. Analyze behavioral changes in successful versus failing runs to find bugs
    - -> statistical debugging
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

finding causes of bugs

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

tracking context

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

a useful measure: increase()

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly