Slide 1

Slide 1 text

TESTING PROPERTIES WITH QUICKCHECK @steshaw

Slide 2

Slide 2 text

“CHOOSE YOUR OWN ADVENTURE” Lightning talk, Brisbane Software Testers

Slide 3

Slide 3 text

QUICK OVERVIEW Test properties of your programs. Randomised test inputs.  Demo (basics)

Slide 4

Slide 4 text

APPEAL TO AUTHORITY — (2013) Better than unit tests Michael Nygard

Slide 5

Slide 5 text

TESTING UI Choose your own adventure. randomised user actions.  Demo (arbitrary)

Slide 6

Slide 6 text

TESTING CONCURRENT SYSTEMS … or … Concurrent Testing Systems :P

Slide 7

Slide 7 text

CONCURRENT SYSTEMS (2) Google to find reports and talks. Distributed Systems are Concurrency Systems that span multiple nodes. i.e. these ideas apply to Distributed Systems. i.e. web “Erlang QuviQ”

Slide 8

Slide 8 text

REFERENCES (PDF) and —Chapter 11 of Original QuickCheck paper from 2000—Claessen and Hughes QuickCheck homepage manual Testing and quality assurance Real World Haskell Introduction to QuickCheck on Haskell Wiki https://github.com/steshaw/quickcheck-examples

Slide 9

Slide 9 text

REFERENCES (2) TESTING CONCURRENT SYSTEMS (PDF) (PDF) Erlang QuickCheck Testing Erlang Concurrency with QuickCheck Finding Race Conditions in Erlang with QuickCheck and PULSE

Slide 10

Slide 10 text

REFERENCES (3) TESTING DISTRIBUTED SYSTEMS (PDF) (Video), Jon Meredith, Basho. Testing Telecoms Software with Quviq QuickCheck Modeling eventually consistent databases with QuickCheck

Slide 11

Slide 11 text

SEE ALSO for exhaustive checking of your properties (rather than QuickCheck style random samples) SmallCheck Comparison of QuickCheck and SmallCheck