I’m tired of hearing how “Cucumber is misunderstood.” If that’s the case then it’s terribly ironic that a tool that is supposedly all about revealing intent did such a bad job of doing this for itself such that it’s become completely “misunderstood.”
The only misunderstanding seems to be among its most active proponents who seem to want to limit tools like this rather than letting how the tools are used emerge as people learn the solution those tools can provide.
The most common refrain you’ll hear is “Cucumber is not a testing tool!” The creator of the tool even says this. As if that somehow removes some impediment to Cucumber and all the sudden makes it relevant. I would argue that if you remove the notion of Cucumber as a testing tool then it does in fact become entirely irrelevant.
But why do I say that? Well, I already talked about this a bit in a Google groups post, but I guess I’ll pontificate a bit more.
When people, like the creator of Cucumber, say it’s not a testing tool they usually quickly follow that up with something like “Cucumber was designed to be collaboration tool.” However, that’s not helpful. A tool like TestLink could be said to be designed as a collaboration tool. So could Bugzilla, Jira, Confluence, or anything else whereby people use artifacts as the basis for communications and decisions.
Calling Cucumber a “collaboration tool” is limiting. It is partly that, yes. But so are the other tools just mentioned. Heck, so is Wikipedia. They all allow us to collaborate regarding various artifacts or information. Tools like Cucumber are more than that and those who promote it as a “collaboration tool, not a testing tool” are guilty of three things in my view:
- Setting up a false dichotomy.
- Showing a very limited, and out-dated, view of testing.
- Selling the tool short by not allowing it to be flexible and adaptive for a variety of needs that come up during the process of turning working ideas into software.
Given that list, which I stand by, these are not people I would be listening to, quite frankly. The stewardship of tools like Cucumber are clearly in the wrong hands, as far as I’m concerned.
I think it should be obvious that any tool that helps you determine what the business intent of an application is by allowing you to understand how that intent will be manifested as value is a tool with a focus on testing.
I think it’s also obvious that anyone who doesn’t understand that should not be in the business of talking about what is and is not a testing tool.
The fact is that testing is a design activity that has collaboration components, execution components, and analysis components.
Tools like Cucumber can help you with all of those … in spite of what some of its most vocal proponents have to say.
The Cucumber community has proven itself (to me, at least) to be very short-sighted. Don’t let that be a stopping point for you in determining whether such tools can be useful to you.