El problema https://fsharpforfunandprofit.com/posts/property-based-testing/ http://hypothesis.works/articles/what-is-hypothesis/#how-to-use-it TDD: hacer lo mínimo para que pase vs Generalización vs Edge cases
Definición (I) Property-based tests make statements about the output of your code based on the input, and these statements are verified for many different possible inputs. Rather than writing a test that tests just a single scenario, you write tests that describe a range of scenarios and then let the computer explore the possibilities for you rather than having to hand-write every one yourself.
A single test is run hundreds of times with randomly generated inputs (fuzzing). A property-based testing framework runs the same test over and over with generated input. Definición (II)
Example-based testing Property-based tests are best combined with example-based tests. Examples help you start organizing your thoughts, and they're easier for future-you to read and understand when you come back to this code later. Humans think in examples. Programs don't extrapolate. Property-based thinking and property-based testing can bridge between us and the computer. Math, it's a tool.
El origen Haskell Quickcheck: http://hackage.haskell.org/package/QuickCheck The programmer provides a specification of the program, in the form of properties which functions should satisfy, and QuickCheck then tests that the properties hold in a large number of randomly generated cases.