[erlang-questions] Quickcheck'ing a protocol
Pierre Fenoll
pierrefenoll@REDACTED
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 <rexxe98@REDACTED> 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 <pierrefenoll@REDACTED> 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 <josh.rubyist@REDACTED> 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@REDACTED
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> 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.htm>
More information about the erlang-questions
mailing list