Skip to content

Latest commit

 

History

History
78 lines (64 loc) · 3.15 KB

TODOS.md

File metadata and controls

78 lines (64 loc) · 3.15 KB
  • Arbitrary.filter()

  • Reporting

    • run time in result section
    • Report differences between sample values and regenerated values
  • Make afterFailure attribute multi value, e.g List.of(SAMPLES, REPLAY | RANDOMIZED)

  • PropertyAnalyzer: Find as many failing samples as possible and analyze their commonalities

  • Auto Test-Driving

    • Stop growing when configurable maxDepth is reached
    • Generate test cases beyond just growing, e.g. edge cases, random values, provided ones
    • Adapt next-gen-pbt.md#Automated-Test-Driven-Development to actual behaviour of jqwik2
  • Additional generators and arbitraries

    • StringArbitrary: withChar(char... chars), withChar(CharSet chars), withCharRange(from, to)
    • Empty / Null Arbitrary -> When used in combinations, nothing is generated
  • Target-based generation and shrinking

  • Allow JqwikDefaults to be changed programmatically

    • Maybe Introduce Jqwik class and then Jqwik.defaults() and Jqwik.defaults( new JqwikDefaults())
  • Add descriptions to generators

    • Can target type of map / flatMap be inferred for description? E.g. by generating a single sample and using its type?
  • PropertyRun Execution

    • Fail if ratio checks/tries is too low
  • Stateful generators

    • Model-based testing: Pre-create model chain on model, then compare to behaviour in real system
    • Concurrent execution of Chains:
      1. Create n (small n) chains of length l. Make key collisions likely!
      2. Run chains concurrently. Collect final result.
      3. Expectations:
        • No invariant of single transaction should be violated.
        • One of all combinatorically possible interleaving results should be found. For this the system can be its own sequential model. According to https://www.youtube.com/watch?v=r5i_OiZw6Sw only 10 repetitions (also during shrinking) are needed to detect most bugs.
      4. Insert sleep operations to simulate real-world timing issues.
      5. Also see https://www.youtube.com/watch?v=zi0rHwfiX1Q (John Hughes "Testing the hard stuff and staying sane")
    • ActionChain?
  • Statistics

    • Collect and report statistics
  • Shrinking (https://www.drmaciver.com/2019/01/notes-on-test-case-reduction/)

  • Jupiter Extension

  • Misc

    • Loading samples that provide wrong number of gen sources -> IllegalArgumentException Should be ignored and sample be deleted