Natural language as code

A domain-specific language (DSL) is a computer language specialised to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains, and lacks specialised features for a particular domain.

Developing a test framework

  • June 3, 2015
  • Agile

should be approached like any application framework, and the true value of building a framework, is only really apparent when you reuse it.

UI test: the last resort

You can make your life hard doing all test automation using UI tests, or play it smarter, using API services, when the focus of testing is not concerned with actual UI. UI checks are of course always a test requirement, but that does not mean all tests need to be UI, or even the largest percentage. One of strengths of BDD approach to test automation, is in it’s use of a natural specification language (Domain Specifc Language) used to define the test scenarios. These mask underlying test code that can be executed at UI, API or Unit level (or combinations within a test script/scenario).

Utilising API services is useful for background data creation (though also possible to do database unit-level coding to achieve same results). It can also be used when you want to bundle functional steps into one. For example, instead of following verbose Gherkin lines when filling a form, it could be a simpler one liner:

Given I create new valid registered user

Behat meets Travis

  • May 30, 2015
  • Agile

This is a simple Travis config file to get Behat test applications builds running through Travis CI. It’s is based on several assumptions:-

The Behat github repo is not part of the application(s) it is testing (which would require more environment config).
You have a Travis account with the Behat github repo set up (the one we are going to add the Travis config file to)


  • May 29, 2015
  • Agile

I had a long think on what common questions I have when walking into a new project.  The process was more difficult than I thought, but I came up with ten important questions.  I am assuming these questions are in fact, automatic these days.  II am not going to divide them up by any methodology, but I feel they are all valid,  regardless.  I not assuming all these questions will be answerable, CI (continuous integration) is a case in point – not as common as perceived.  But once I have responses to all these, then I can understand the state of the project, and know better where I can contribute, and also possible improvements.