|
|
|
|
|
by SAI_Peregrinus
2016 days ago
|
|
Testing code via semi-random inputs[1]. The most common fuzzers, AFL-Fuzz[2] and libFuzzer[3] are coverage-guided: they compile the program with special instrumentation to determine code coverage, then call the program repeatedly, changing the inputs via genetic algorithm to try to maximize the code paths executed. When unexpected behavior is observed (typically the test harness crashing) the fuzzer saves the test's input for future use. Basically automatic generation of test case inputs. It's non-deterministic, so it won't always find problems, but it can save a lot of manual effort. [1] https://en.wikipedia.org/wiki/Fuzzing
[2] https://lcamtuf.coredump.cx/afl/
[3] https://www.llvm.org/docs/LibFuzzer.html |
|
https://en.wikipedia.org/wiki/QuickCheck