Comment by spion

3 years ago

It can also be unit tests. You can take any function that has contracts defined and run a fuzzer (or a property testing generator) on its inputs, and its an isolated unit test.

Or you could generate input actions for the entire system to exercise all contracts, and get e2e tests.

Or you could run your code in production and exercise contracts (maybe at a certain sampling rate) to get observability and "testing in production".

Its the most powerful and flexible concept I know of, but it requires thinking in properties (pre/postconditions) which can be a bit tricky.