Thursday, December 1, 2011

What Cucumber Does

Right. Okay. Let's say I bought a toaster, then a week later tried to return it because when I dried my socks in it they caught fire. You would first question my methods of sock drying, then expand your derision to why I took it upon myself to complain that something not designed for

Cucumber is a BDD tool. It is not a testing tool, or a specification tool, or anything else. All it does is parse out human-readable behavioural specifications so that you can generate automated tests, then code software to meet those tests. Based on the quality of the specifications, AND THE INTERPRETATION LAYER OF THE CODE YOU WRITE you will get software that meets those specifications.

It is not magic. It will not make your software better. It is a tool to guide development to build software with behavioural specifications in mind, especially in an environment where there is little technical documentation (agile enviroments) or where people don't read the technical documentation more than once (everywhere else).

Yes, okay, the layer that the development team write will actually add the meaning to the top layer, but that level of code design is part of their job in the first place. Cucumber adds nothing that wasn't already there, but gives us a way of thinking about software solutions, and a framework to guide development with behaviour in mind.

Cucumber does not replace QA. It isn't really even anything to do with QA or testing.

Right. Now I have that out of my brain. Good.