The monthly dose for BDD addicts… In November #bdd, #specflow and #cucumber stories by Graham Cox, Aslak Hellesøy, Blazej Kosmowski, Dirk Rombauts & Samir Talwar…
Dear BDD Addicts,
We all need some rest. I know it is only the beginning of December, but I am already thinking of the holiday season. Probably because for me November was very busy. I hope reading this newsletter helps you to get out from the rush for a few minutes.
Next year, I will move on with the newsletter, so if you see or write an interesting blog post, article or a session recording that is related to BDD, Cucumber, SpecFlow, agile testing or test automation in general, please send me the link to email@example.com.
Let’s see the monthly dose and with this, I wish you happy holidays and an exciting new year!
[Cucumber] Aslak’s Cucumber Story
The first post I would like to list here is a podcast with Aslak Hellesøy, the creator of Cucumber. The interview was done by Joe Colantonio on the 10th anniversary of Cucumber. Aslak is not a sentimental person though. So instead of a dusty historical retrospect, he is talking more about how he sees BDD and Cucumber today and which patterns have worked for him to get the most out of BDD.
Ten Years of Cucumber BDD with Aslak Hellesøy (Aslak Hellesøy – @aslak_hellesoy, Joe Colantonio – @jcolantonio)
[BDD] Practicing BDD internal-DSL style
There are multiple flavors of BDD. There are many frameworks (like the Cucumber-family tools) that use special files and file formats to express the BDD scenarios. These files use a domain specific language (DSL), like the Gherkin language used by Cucumber feature files. The DSL that you use to describe the scenarios does not necessarily have to be in a special format, there are some tools, where the scenarios are written by using the programming language constructs of the automation code itself, e.g. the preconditions have to be highlighted by calling a method named “Given()”. When the domain specific language uses the host programming language, we say it uses an internal-DSL.
RSpec is such an internal-DSL BDD tool and the post by Błażej Kosmowski gives a good introduction to it from the BDD point of view. Although the post uses RSpec and Ruby, the conclusions also work for similar tools on other platforms.
An opinionated guide to readable Rspec (Błażej Kosmowski – @stevo84)
[SpecFlow] Separate driver layer
One of the biggest improvement related to test automation in the projects I have worked on was when we introduced a better separation of concerns in our automation code. We encapsulated the automation aspect of a particular area of the system to some helper classes and with that we separated it from the testing aspect (what to do, what data to use, etc.). There are many names for these kinds of helper classes. If the application area is a visual component, these classes are typically called page objects. Some people call these classes “adapters”, but I like to call them “drivers”.
Dirk Rombauts summarized his thoughts on this topic in the following post.
Organizing Your Automation Layer (Dirk Rombauts – @QuestMasterNET)
[BDD] BDD dialog
Whenever I prepare for a talk or a course, I always think it over as a dialog with my imagined audience. I introduce the topic and if it sounds interesting to them, they ask questions and by answering them I can explain the topic more in detail. I sometimes even keep these imagined questions as section boundaries in my talks. I was quite happy when I’ve found the blog post by Samir Talwar. He is talking about BDD, but in a dialog style. I have found it quite interesting!
Teach Me BDD (Samir Talwar – @SamirTalwar)