The monthly dose for BDD addicts… In September #bdd, #specflow and #cucumber stories by Jonathan Acker, Abdulkader Benchi, Kevin Cui, Eugen Paraschiv & Thomas Sundberg.
Subscribe to the monthly newsletter at http://bddaddict.com so that you never miss it! (Did you get the August issue?)
Dear BDD Addicts,
September has gone so quickly that I almost forgot to make the monthly compilation of interesting news, articles related to Behavior Driven Development, test automation, Cucumber, SpecFlow, and co. But don’t worry, it is here.
In September, the test automation pyramid got into my focus, somewhat unexpectedly. I have been invited to Singapore to talk at a 2-day Xamarin community conference (MonkeyFest). Xamarin is a cross-platform native mobile app development platform using .NET and C#. So my talk was about testing mobile apps. Testing mobile apps is always a challenge because there are so many things that can go wrong in the UI (just think of the specialties of different devices), so you cannot have a sustainable release process without automating the user interface. But if you have considered Web UI automation as slow, then you will get really a hard time to find a good word for mobile UI automation, because it is at least 10 times slower. So you should think twice which tests you automate through the UI. So we are at the test automation pyramid. My session was filmed and I will share the link with you once it will be available (check out the slides here).
A week ago I also had a wow moment, that drove my attention to the testing pyramid. It has turned out that my tool that can synchronize scenarios with TFS/VSTS test cases does not work on Mac, due to the outdated TFS API I use. Upgrading the app to the (completely different) new API seemed like a mission impossible first, but thanks to the scenarios that described the behavior not the solution and the driver layers in my automation, the change was really joyful and easy. I will share the details in a blog post next month.
I hope you are still with me… so let’s find more pyramids in the monthly dose.
Photo by Jimmy Baum
[Why-BDD] Let the business drive
Those who have been following the newsletter for a longer time know that from time to time I include articles about how to convince our business about the benefits of BDD. There is no one way of doing that, because every company, every project and every business person is different. In our book we describe 11 situations where BDD can be useful, but there are surely many more. Jonathan Acker helps us with a clear summary of the topic. Why is it hard to “sell” BDD to the business and how BDD can fill the gap between the business and the implementation team using the power of examples.
BDD – Business Driven Development (Jonathan Acker, @__jacker__)
[Test Automation] How to fail with automation…
Mobile test automation can be really challenging, as I have mentioned in the intro. And sometimes we fail. But fortunately there are a few people who share the story of their failures. So I am really thankful for Kevin Cui to his honest and thought through post. He describes the steps that led to the failure but does not stop there. What would I do differently next time? This is a very important question if you analyze any issue. His conclusion is not to stop doing UI testing, also not to to use another tool… you will be surprised!
Why I Failed to Use Calabash for Mobile Testing (Kevin Cui, @KevCui)
[Test Automation] Dock your cukes!
The automated tests are the most beneficial when they provide quick feedback. Therefore it is useful to have tests with sub-second execution time, but it is also important that your end-to-end tests are completed within a reasonable time frame. (We are back to the testing pyramid, you see?) Usually there is no one single solution that boosts the end-to-end tests (no, penalization is just one of the many), but you have to measure and analyze your own situation to find what is the next bottleneck. In many cases the availability and the resources of the test environment slowing down your test execution. Virtualization, or even containerization is a useful technique to improve this. Abdulkader Benchi provides the steps necessary to run your tests in Docker containers with JavaScript and Cucumber.js.
End-to-end tests Isolation with Docker (Abdulkader Benchi, @kader_benchi)
[BDD] BDD inside the testing pyramid
When people think about BDD they associate it with the end-to-end tests first. There is nothing wrong with this, because if you would like to ensure that the application works as expected (by the users), it is logical to test what the users use. However, the picture is not that clear if you also consider fast feedback. I have already shared my post about the testing iceberg, which describes this through a concrete example. In this newsletter I included a post by Thomas Sundberg, who is explaining the full picture. Where should you use BDD? Keep on reading about it!
Where should you use Behaviour-Driven Development? (Thomas Sundberg, @thomassundberg)
[Learn:Cucumber-JVM] Automate REST API
This guide from Eugen Paraschiv shows how to get started with REST API testing using Cucumber-JVM in Java. It shows how to setup the project and dependencies and also how to automate a business readable scenario.