- Some generators could use better "tuning".
- Ensure common generators hit the corner cases with a high enough frequency.
- Consider more or alternative generators from:
- More convenience functions for
Dict
generatorsFloat
generatorsList
generatorsSet
generators
- Add generators for
bit_array
- State-machine testing as in qcstm
- Handle recursive data types. See:
- Observers. See:
- Observer
- Observable
- The section on Observers from here
- Speed up the
String
generators. (These are currently quite slow!)- (This has gotten better in
v0.0.2
andv0.0.5
.)
- (This has gotten better in
- "Char" generators
- Figure out better defaults for the "char" generators. Right now they are focused on ascii characters mainly.
- Having "char" generators is a little weird in a language without a
Char
type, but they are currently needed for generating and shrinking strings. - Some of the char generators take integers representing codepoints, but this is kind of awkward to work with.
Consider a reorg of the modules.- Finalize which functions are part of the public API.
- Finalize the named arguments.
- Include more info (other than just the shrunk value) in counter-examples.
- (
v0.0.3
) Now includes the original failing example, shrink steps, and any captured error messages or exceptions. - However, the format of the presented data is not very user-friendly.
- (
- The counter-example info looks different on the Erlang and JavaScript targets.
- There are some places that use
let assert
to check for errors, especially checking for bad arguments. These should be addressed.- Also, when appropriate, function arguments should be validated and good errors should be returned.
- Tests counts in the
config
that are too high can cause timeouts in Gleeunit if you aren't using helpers from qcheck_gleeunit_utils - Don't leak the
prng
types. - Some of the tests fail on JS target.