Programmable Property-Based Testing

(dl.acm.org)

36 points | by matt_d 18 hours ago

3 comments

  • BerislavLopac 7 hours ago
    Python has Hypothesis: https://hypothesis.readthedocs.io
  • skybrian 14 hours ago
    Possibly of interest since it seems vaguely similar: I wrote my own property-testing framework for TypeScript that allows you to write arbitrary code provided that it's deterministic, so you don't need to mess with combinators as much. (Somewhat inspired by how React does it.)

    Example:

       const point = arb.from((pick) => {
          const x = pick(arb.int(0, 100));
          const y = pick(arb.int(0, 100));
          return { x, y };
       });
    
    https://github.com/skybrian/repeat-test/blob/0567a73f07ada6e...

    It also lets you parse objects instead of generating them if you define a Domain instead of an Arbitrary, which I haven't actually needed much, but seems neat.

    It does some shrinking without having to implement anything extra, but I haven't done anything with code coverage-guided generation. I'd like to try that sometime.

  • alpaylan 15 hours ago
    Author here! Let me know if I can contribute to the discussion.