How small programming faults led to overflowing an entire system

It is 10 in the morning. Approaching at 2 o'clock, a feature demo. We are supposed to show some of last developments on one of the newest micro-service of the platform. The code worked nice before. We did not touch the implementation of the service since the last tests. There is no reason why it... Continue Reading →

Answering r/haskell: How to unit test code that uses polymorphic interfaces?

This short post is an answer to the following question asked on r/haskell. The original question is about how to test code that lives in a Monad class with polymorphic functions. I highly encourage you to read the post. Its different answers are full of technical gems which we are not going to explore here... Continue Reading →

QuickCheck is fun, deal with it

In our previous post, we played with QuickCheck on an arithmetic DSL and used it to check and discover properties on its associated interpreters. Through these experiments, we explored some of the classic usage of QuickCheck and demonstrated through some examples: Its ability to reveal some design defects Its ability to test high level relations... Continue Reading →

QuickCheck experiments on a DSL

After having spent the last three posts exploring how to implement our own QuickCheck, the goal of the next two posts will be to play with it, to test and discover properties on our code and have fun as well. The target of these experiments will be the Arithmetic DSL we built several posts back... Continue Reading →

Code your own QuickCheck (Shrink)

In the previous posts, we started to implement our own QuickCheck in Haskell, which we named RapidCheck, based on the original publication on QuickCheck. The first post went over the basic concepts needed to build such a module, while our last post focused on how we can write generator for arbitrary functions. You might want... Continue Reading →

Code your own QuickCheck (HOF)

In the previous post, we started to build our own QuickCheck implementation in Haskell, which we named RapidCheck. We went over the basic concepts needed to build such a module, based on the original publication on QuickCheck. In particular, we explained in details and implemented the following concepts from QuickCheck: Gen a: a generator of... Continue Reading →

Create a website or blog at WordPress.com

Up ↑