[erlang-questions] Quickcheck'ing a protocol
Fri Sep 23 09:33:30 CEST 2016
There are a bunch of papers / thesis on this topic.
I recommend the statem doc link I posted earlier.
There's a talk from Quviq at latest SF Erlang Factory: https://m.youtube.com/watch?v=iW2J7Of8jsE
Note that Quviq provides a paid CI service. My bet is a service that quickchecks a project's APIs would be worth good money.
Here's a simple example of a PropEr statem: https://bitbucket.org/fenollp/kzp/src/7e6518dd33e1461cdecba22bc9e767aeb372d4d9/test/prop__user_auth.erl?at=master&fileviewer=file-view-default
Please share your troubles / findings :)
> On 22 Sep 2016, at 19:53, Andrew Berman <> wrote:
> Hey Pierre,
> How do you QuickCheck RESTful APIs? I'm a noobie with QuickCheck and using it with RESTful APIs would be really useful to me. Do you have any sample code or is there a tutorial anywhere?
>> On Wed, Sep 21, 2016 at 10:58 PM Pierre Fenoll <> wrote:
>> Have you tried using PropEr / Quickcheck statem? http://proper.softlab.ntua.gr/Tutorials/PropEr_testing_of_finite_state_machines.html
>> PropEr is free & open source & I use it to quickcheck RESTfull APIs.
>> Pierre Fenoll
>>> On 22 September 2016 at 05:45, Josh Adams <> wrote:
>>> So I've been frustrated lately by the fact that Slack's IRC gateway isn't RFC 2812 compliant (https://github.com/bitwalker/exirc/issues/51)
>>> In dealing with this I wondered why the crap they needed an engineer to go through the spec as a result of their server's response to figure out that this was an issue (they've added it to their bug tracker, so I have some amount of faith it might get fixed eventually - for now I'll paper over the issue in the client which reduces the stress on them to actually fix it though).
>>> Should RFCs / protocols of this nature just come with something like a quickcheck model for their spec? Is anyone aware of prior art around this sort of thing aside from Quvic/Volvo that I could draw from if I wanted to fiddle in this arena?
>>> I'd think that the ideal situation involves an open source quickcheck implementation to test a given protocol implementation against at least some of the RFC, and a means to run the tests against potential servers/clients, with badges potentially showing the percentage of the test that passes. This would allow economics to drive spec implementers towards correctness, which would save countless engineer-hours spent figuring out why the damn clients can't talk to the damn servers for a given spec.
>>> Thoughts? Pipe dream? "Silly child, see A, B, and C for the many people who are already doing this?"
>>> Josh Adams
>>> erlang-questions mailing list
>> erlang-questions mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions