1. WHAT
    1. Property based testing relies on properties. It checks that a function, program or whatever system under test abides by a property
    2. 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- Jessica Kerr (@jessitron)
      1. A property-based testing framework runs the same test over and over with generated input
    3. Property-based testing is generative testing
    4. Property-based tests are designed to test the aspects of a property that should always be true
      1. They allow for a range of inputs to be programmed and tested within a single test, rather than having to write a different test for every value that you want to test
      2. was popularized by the Haskell library QuickCheck
      3. Tests that are similar to property-based tests include fuzz testing, or the use of example tables in ATDD/BDD-style testing
    5. Where a property is a high-level specification of behavior that should hold for a range of data points
    6. A kind of random testing (Eric Normand of PurelyFunctional.tv)
  2. Write test
    1. Define the behaviors you are looking to test
    2. Define the range of data you want to use to check against each outcome
    3. Use a library in your code language to generate data sets (either random or specified) to use in your tests
    4. Write and run tests
  3. Benefits
    1. Cover the scope of all possible inputs
    2. Shrink the input in case of failure
    3. Reproducible and replayable
  4. Sources
    1. https://medium.com/criteo-labs/introduction-to-property-based-testing-f5236229d237#:~:text=Definition,be%20seen%20in%20the%20output.
    2. https://medium.com/@vporoshok/property-based-testing-642cb7f9817f
    3. https://jqwik.net/property-based-testing.html
    4. https://dev.to/jdsteinhauser/intro-to-property-based-testing-2cj8
    5. https://techbeacon.com/app-dev-testing/how-make-your-code-bulletproof-property-testing
    6. https://jessitron.com/2013/04/25/property-based-testing-what-is-it/
    7. https://medium.com/russell-duhon/property-based-testing-from-scratch-in-python-bb1a8b56daf6
    8. https://habr.com/ru/company/mailru/blog/494110/
    9. https://habr.com/ru/post/434008/
    10. https://www.scalatest.org/user_guide/property_based_testing
    11. https://xpirit.com/property-based-testing/
    12. https://increment.com/testing/in-praise-of-property-based-testing/
    13. https://testguild.com/property-based-testing/