Property-Based Testing with PropEr

Most of the development that takes place for stateless properties follows that iterative pattern: write a property you feel makes sense, then throw it against your code. Whenever there’s a failure, figure out if the property itself is wrong (as when we added the non_empty() generator), or if the program itself is wrong. Modify either according to your needs.