but not like xUnit Write abstract properties, not specific examples Generates data to test over, with increasing entropy Shrinks failing cases to the smallest similar example
should equal the original list. Reversing and sorting a list should preserve its length. Popping an element from a queue should reduce its size by one.
& eqc_fsm Generate a sequence of commands Compute an abstract model Run the commands and compare results Driving other systems eqc_c: automagic binding of C code eqc_socket: send commands over sockets Testing parsers: eqc_grammar Create token generators Test roundtrips: AST -> pretty print -> lex/parse -> AST
sending/delivery process birth/death Finds race conditions automatically! Reorderings of messages Receiver died while sender waits Timeouts, DOWN, EXIT arrive sooner/later