Hedgehog State Machine Testing & Typescript Sodium (+React)


Details
Property Based State Machine Testing - Andrew McCluskey
Automated testing is key to ensuring the ongoing health and well being of any software project, giving developers and users confidence that their software works as intended. Property based testing is a significant step forward compared to traditional unit tests, exercising code with randomly generated inputs to ensure that key properties hold. However, both of these techniques tend to be used at the level of individual functions. Many important properties of an application only appear at a higher level, and depend on the state of the application under test. The Haskell library hedgehog, a relative newcomer to the property based testing world, includes facilities for property-based state machine testing, giving developers a foundation on which to build these more complicated tests.
In this talk, Andrew will give you an introduction to state machine property testing using hedgehog.He'll start with a quick refresher on property based testing, followed by a brief introduction to state machines and the sorts of applications they can be used to model. From there, he'll take you on a guided tour of hedgehog's state machine testing facilities. Finally, Andrew will present a series of examples to show off what you can do and hopefully give you enough ideas to start applying this tool to your own projects. The application being tested will be a servant web application, and examples will include testing fundamentals such as content creation and deletion, uniqueness constraints, and authentication.
An intermediate knowledge of Haskell and familiarity with property based testing will be beneficial,but not essential. The slides and demo application will be available after the talk for people to study in detail.
Typescript Sodium & React
Typescript has an implementation of Sodium that gives a really nice way of managing time varying state. In this talk, we'll learn a little bit of FRP, how it could be a good replacement the redux side of react and why at this point it can't stand on it's own like reflex does in the GHCJs space. This could be a very good option if you've got a typescript/react/redux front end and would like to make it a little more functional.
We may also even learn something about about a pen and paper RPG called Deadlands along the way. :)

Hedgehog State Machine Testing & Typescript Sodium (+React)