This is your client on Cucumber…


We started a project with a new client this week, and we ‘re doing the integration tests in Cucumber. If you’re not familiar with Cucumber, it consists of many long and boring-looking scenarios that you can actually test your code via a story runner:

        Scenario: Uploading an image smaller than 235 x 235
	Given I am logged in as a vendor
	When I visit the vendor page
	And I provide a .jpg file smaller than 235 x 235
	Then I should see an error message

Being good agilists and wanting to follow the “mutual benefit” principle (every activity benefits all concerned), we tried sharing this iteration’s stories with the customer as our acceptance criteria. We waited with bated breath to be told that our 500 lines of Cucumber were too wordy or too technical…

The result? Big win for both sides! Not only did they force us to flesh out the design more thoroughly, they had the same effect on the customer. Here’s some examples (some minor, some huge) of what we caught for this iteration alone:

  • The client decided they want a GUI to crop uploaded images manually, rather than auto-crop. (This one resulted in a whole new story.)
  • Setting up an account with the payment vendor should (ideally) be in an IFrame, not a redirect.
  • Errors in account setup should result in a redirect to the setup page, not just an error message.
  • “Admin” sidebar menu appears even for regular users, it just has different entries.
  • The active page should be highlighted in the sidebar.
  • “I accept the terms of service” checkbox on the account upgrade page.
  • Upgraded accounts are called “Pro” in the interface, not “Premium”.

Some of those would have been a pain to go back and fix later.  This is definite motivation to keep up with the time investment to write the stories. We still need to get faster, but it definitely keeps things from falling through the cracks.

2 thoughts on “This is your client on Cucumber…

Step up to the mic.

Your email address will not be published.