[erlang-questions] Quickcheck'ing a protocol

Pierre Fenoll <>
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?
> 
> Thanks!
> 
>> 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.
>> 
>> 
>> 
>> Cheers,
>> -- 
>> 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
>>> 
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>> 
>> 
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160923/bf6923c0/attachment.html>


More information about the erlang-questions mailing list