Dear BDD Addicts,
The beginning of the year is usually a low season for training. This is the time when I can better focus on my coding tasks and when I have more time to think about new conference tasks. This year the topic is the tool called SpecSync that I have been working on for some years.
It started as a small thing, but it has grown up through the years and has survived two major updates, one of them was almost a complete rewrite. Both of these updates were done in a way that the BDD scenarios remained as they were, so they provided enough protection for making them without any major regression issues. Of course the scenarios do not only help with the big refactorings. They serve as my memory and also help on a daily basis to discover the side effects of the new features. But probably the most important is that they help me to keep working on the product even after four years with a lot of excitement. And this may matter the most. If you are interested, you can peek into some of the details at my upcoming free webinar (see details in the green box below).
But now… the monthly dose…
[BDD] The one, where you have many feature files
Most of the BDD demos and tutorials use one or maybe two feature files to introduce the BDD automation concept. These might be valuable to introduce you to the core pieces of automation, but they don’t answer the question that all BDD projects have to answer: How to organize feature files? This question has been taken for the #GivenWhenThenWithStyle challenge by Gojko Adzic recently. Is there a clear answer? Find it out from the challenge summary by Seb Rose.
Solving: “How to organise feature files?” (#GivenWhenThenWithStyle – Challenge 16) (Seb Rose, @sebrose)
[Agile] When 2 + 2 equals more than 4
In an agile setup the whole team is responsible for the success of the project. This also means that on a daily basis we have to make decisions. Sometimes unconsciously. Making decisions is a tricky thing, especially if you need to combine multiple decisions to maximize the outcome (for example selecting the features for a release, or selecting stories for a sprint): ideas that sound logical are not necessary “better”. This article by Kent Beck may not be not the easiest to read, but for me it was pretty interesting. I hope you find it useful too.
Decisions, Decisions or Why Baskets of Options Dominate (Kent Beck, @KentBeck)
[Testing] Unit Testing – TDD – BDD: What’s your balance?
Recently I have stumbled across many articles that focus on the different test types and particularly on the difference between TDD and BDD. Since neither TDD nor BDD has been really defined exactly, I like to read these articles, because I always find something new. The article by Erik Dietrich has helped me to keep focusing on the purpose of the different test types instead of just blindly applying them. How about you?
Unit Testing, TDD, and BDD, Oh My. Your Guide to Different Unit Testing Techniques (Erik Dietrich, @daedtech)
[BDD] Remote collaboration, still
I think, the things we’ve learned about remote collaboration will be still useful, even after COVID. Some teams have just realized that in this “constrained” environment they can more often and better collaborate with each other. Gojko Adzic wrote a post about remote specification workshops in March 2020. I guess, I don’t have to say that it is still valid.
Specification by Example, remotely (Gojko Adzic, @gojkoadzic)
[SpecFlow] Control your test data
Automating proper BDD scenarios forces you to make proper automated tests. But making a proper automated test solution, especially one that scales, is not that easy. There are plenty of known and hidden practices and patterns that you can and should apply. Controlling test data is one area that can be deal breaker. The post by Rahul Nath gives you some practical advice how AutoFixture can be used to implement Object Mothers.