Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Property-based testing 101

Property-based testing 101

Introduction to property-based testing concepts.

Isidro López

August 23, 2017

More Decks by Isidro López

Other Decks in Programming


  1. 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.
  2. 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)
  3. 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.
  4. 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.
  5. Links de interés • http://blog.jessitron.com/2013/04/property-based-testing-what-is-it.html • https://fsharpforfunandprofit.com/posts/property-based-testing/ • https://fsharpforfunandprofit.com/posts/property-based-testing-2/ •

    Property-based testing tools: https://gist.github.com/npryce/4147916 • https://blog.wearewizards.io/using-haskells-quickcheck-for-python • TDD + QuickCheck: http://www.natpryce.com/articles/000795.html • https://www.infoq.com/presentations/hypothesis-afl-property-testing