Gregory Petrosyan

Results 84 comments of Gregory Petrosyan

FWIW, I've implemented a property testing library for Go called [rapid](https://github.com/flyingmutant/rapid), which supports both automatic shrinking and stateful state machine based tests (which look like [this](https://github.com/flyingmutant/rapid/blob/master/example_statemachine_test.go)). Like popular [Hypothesis](https://github.com/HypothesisWorks/hypothesis) library,...

By "stateful state machine based tests" I mean calling a sequence of methods on an object, where set of valid methods and arguments can depend on the current state of...

> And all ranges, min/max, ascii, etc are mostly not necessary with good guided fuzzing. There are several counter-arguments to this. 1. A lot of properties worth testing are non-total...

> But otherwise just giving up absolute efficiency in the name of simplicity. A CI can generally do 100B or 200B inputs, we don't need to fit all testing in...

> ```go > func FuzzQueue(f *testing.F, size int, ops []int) { > var state []int > q := NewQueue(size) > for _, v := range ops { > if v...

So the idea is to simply have something like `[]MethodAndArgsUnion` as input, and rely only on random generation + mutation with feedback to get valid sequences? With invalid inputs calling...

From a property-based testing standpoint, we start from *properties*, with different ones holding for inputs satisfying the preconditions and arbitrary inputs. So we should have 2 tests with different strict...

[Here](https://skillsmatter.com/skillscasts/6475-testing-django-applications-using-hypothesis) is a small but realistic example (in Python) of fuzz-based (or property-based) approach being introduced as an upgrade of the usual example-based test. Notice that the software being tested...

Good overview of structure aware fuzzing approaches (on top of libFuzzer): https://github.com/google/fuzzer-test-suite/blob/master/tutorial/structure-aware-fuzzing.md