Is Cucumber Truly Misunderstood?

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:

  1. Setting up a false dichotomy.
  2. Showing a very limited, and out-dated, view of testing.
  3. 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.


This article was written by Jeff Nyman

Anything I put here is an approximation of the truth. You're getting a particular view of myself ... and it's the view I'm choosing to present to you. If you've never met me before in person, please realize I'm not the same in person as I am in writing. That's because I can only put part of myself down into words. If you have met me before in person then I'd ask you to consider that the view you've formed that way and the view you come to by reading what I say here may, in fact, both be true. I'd advise that you not automatically discard either viewpoint when they conflict or accept either as truth when they agree.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.