16) ElixirConf EU 2019 - A Whirlwind Tour of Testing in Elixir - Daniel Caixinha

@dcaixinha - Software Engineer, author and Meetup co-organiser

A Whirlwind Tour of Testing in Elixir

Talk in three words: Write maintainable tests.

Abstract
Tests are an integral part of any application. They are a safety net to refactor applications and also great living documentation. Beginning with unit tests, we’ll see how to write thorough but also maintainable tests, and how the key to do so is to focus on the message-passing. Moving up the pyramid, we will then go through end-to-end tests, but also component and contract tests. These last two are becoming increasingly important, since it’s hard to maintain end-to-end tests in microservice architectures.

Objectives
The objectives of this talk are three-fold:

  • discuss some best practices for testing Elixir applications;
  • show how to create unit tests that are descriptive and maintainable, while also avoiding redundant coverage;
  • explore service-level and end-to-end tests, and demonstrate how the former helps in the maintainability of the latter.

Audience
This talk should appeal to anyone writing Elixir applications, regardless of the domain. Testing is a cross-cutting concern, and the principles discussed in this talk will apply to pretty much all areas of development, whether it’s a web application or an embedded system.
Read the full abstract:

The speaker
Daniel Caixinha is a software engineer at Onfido, where he is using Elixir to build resilient systems that can handle the high growth of the business. After graduating from Instituto Superior Técnico, he joined the startup world, mainly using Ruby, but he also got the chance to play around with Elixir. Upon joining Onfido, he got the chance to take Elixir more seriously, which made him fall in love with functional programming in general, and Elixir in particular. Besides building Elixir applications, he is fostering the use of Elixir, and being a co-organiser of the Lisbon Elixir meetup.

All will be added to the ElixirConf EU 2019 Talks List or via the #elixirConfEU2019 tag.

3 Likes

What an interesting talk!
And I think he may even be Portuguese (orly?) !!

I have so many questions:

  1. what is his stance on behavioral testing?
  2. does he start inside out or outside-in?
  3. what is his take on DDD?
  4. what type of layered architecture does he use in his apps?
  5. When doing unit tests, does he create a behaviour for every unit he is testing? (because th SUTs are supposed to communicate with the collaborators via interfaces so Mox can take advantage of them)
  6. Why doesn’t he mention constructor dependency injection of the witness pattern?

Really wish I could have a talk with him. Also, really wish I could have a calendar for the next events, he did mention they occur monthly iirc.

1 Like