Module 4: Random Testing Flashcards

1
Q

random testing (fuzzing)

A

idea: feed random inputs to a program
observe whether it behaves correctly
special case of mutation analysis

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

infinite monkey theorem

A

a monkey hitting keys at random on a typewriter will produce any given text…with probability increasing 1 as time increases

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

what kind of bugs can fuzzing find?

A
memory errors
other undefined behavior
assertion violations
infinite loops
concurrency bugs (data races, deadlocks, etc)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

random testing pros and cons

A

pros:
easy to implement
provably good coverage given enough tests
can work with programs in any format
appealing for finding security vulnerabilities

cons:
inefficient test suite
might find unimportant bugs
poor code coverage

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

afl core ideas:

A
  • genetic algorithm
  • efficient source-code instrumentation
  • effective heuristics for input mutation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

fuzz targets

A

enable to fuzz libraries (i.e. program components) instead of whole programs

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

cuzz: fuzzing thread schedules

A

introduces Sleep() calls

  • automatically
  • systematically before each statement
  • gives worst case
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

bug depth

A

the number of ordering constraints a schedule has to satisfy to find the bug

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