The simplicity thesis

My thoughts on automation engineering

 
  1. I‘ve got in touch with specification by example in 2011 during the first CukeUp! in London where I have met for the first time a guy called Gojko Adzic. Since then, the way I see software development has never been the same. 

  2. After two successful projects at QuestBack using this approach an a lot of positive feedback from team members and management, I‘m determined to push these ideas forward. 
    Here is some real feedback from QuestBack:

    „I think it is a great way of describing the idea of how the implementation should work and the problem it solves“

    „The idea of working around in how the product is to be used by the user and leave the tech stuff to the developers just simplifies the way we understand a feature“

    „..it forces us to focus on the expected behavior and to speak the same domain language and with that bridge the communication gap“

Specification by Example

All that effort, but what is the effect?

  1.   Cucumber

  2.   Gherkin

  3.   LiveDocs (own tool, based on the idea of relishapp)

  4.   WebDriver for automated web integration tests

  1. Specification by example is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements.

  2. Examples are used to provide clarity and precision, so that the same information can be used both as specifications and as a business-oriented functional test.

What is Specification by Example

  1.   Deriving Scope From Goals

  2.   Specifying Collaboratively

  3.   Illustrating using examples

  4.   Refining the specification

  5.   Automating validation without changing specifications

  6.   Validating frequently

  7.   Evolving a documentation system

Key ideas

Since I‘m writing here about automation engineering, as a QA-Manager I‘m off course not only interested in the aspects of collaboration and communication, which are aimed to be improved by implementing Specification by Example. In the meanings of automation, Specification by Example opens a new world of possibilities. Since every specification becomes a document explaining existing behavior, it can be easily used to automatically validate the business functionality through automated tests.


Here are some tools I‘m using for doing that:

Automation

  1. When working on a software development project, it is easy to me to observe that the product management works on their own documents, programmers on their own documentation and testers on they own test specifications. 

  2. With Specification by Example, all these different roles collaborate to specify a single source of truth that captures everyone‘s understanding of a feature or improvement. Since there is only one source of truth about the functionality there is no room for different interpretation inside the delivery cycle.