BDD done differently
BDD is brilliant, but please don’t look at it too narrowly.
* Using the given-when-then template is good.
* Automating some tests is good.
* Having chats, in order to understand what you are building, before your build it, is just brilliant
But, look, if you’re considering doing BDD, start with a start with the pre-building-stuff chats, hold off on the automating, and as well as asking “what tests?’ add these questions:
- how are we going to execute all this testing? Can we do any of that in parallel, such as setting up environments or test data, while the development is being done?
- what’s going to make it hard to test this stuff?
- who’s going to test? Can we share the test execution?
- is there any duplication of testing effort? Can we get rid of 80% of that duplication, without sacrificing quality?
- are there any tools / scripts /automation the developers use, that others could use?
- is there anything that’s reallllly hard to test? Can we automate that? Can we safely avoid testing it? how else can we make it easier to test?
- do we really need to test everything? Really? Really?
- are we testing enough?
- do we really have to automate this?
- why the hell does a tester even need to look at this? Don’t the developers know how to test their own work?