The Cucumber for Java Book – Keeping Your BDD Cucumbers Sweet
There is nothing worse than sour BDD. You know — the kind that is unreliable, unreadable and unmaintainable yet still need to be maintained somehow. Discover a better way with Seb Rose, the author of The Cucumber for Java Book, as he shares some of the best ways to create robust, sweet BDD (Behavior Driven Development) that will leave you satisfied and your customers delighted.
About Seb Rose
Seb wrote his first commercial software in the early eighties on an Apple II. He went on to graduate from the University of Edinburgh with a 1st Class Joint Honors in Computer Science and Electronics in 1987. Since then he has had a varied career working with companies, both large and small, in roles that cover the complete technical spectrum (www.linkedin.com/in/sebrose).
Over the past 6 years, Seb has focused on helping teams adopt and refine their agile practices. He honed his craft at IBM Rational and Amazon, where he became familiar with many of the common agile dysfunctions and realized that what most teams lack is fluency in core technical practices. Without these underpinnings, poor communication becomes the biggest barrier to success, whether it is between the business and the development team or within the development team itself.
Seb wrote internal training courses for IBM's Quality Software Engineering department (QSE) and went on to develop his own courses that he runs for clients throughout Europe (claysnow.co.uk/training). He speaks regularly at international conferences, specializing in topics such as Unit Testing, Test Driven Development (TDD), Behavior Driven Development (BDD) and Acceptance Test Driven Development (ATDD). He is a contributing author to O'Reilly's “97 Things Every Programmer Should Know“, as well as being a popular blogger and a regular contributor to technical journals.
For the past year Seb has been a core member of the open source Cucumber project and is lead author of “The Cucumber for Java Book” for the Pragmatic Programmers. He works closely with other thought leaders in the development community and is a contributor and trainer with Kickstart Academy
Quotes & Insights from this Test Talk
- Behavior-Driven Development has nothing to do with Cucumber, or Jbehave, or FiTNesse, or anything like that. Behavior-Driven Development is an approach where we encourage non-technical and technical member of the team, so the product owner, the customer, and the development, and the QA to get together and start to investigate what a story or a feature should look like by using concrete examples, and those concrete examples allow us to uncover the acceptance criteria for a particular part of the application. That whole conversation empowers deliberate discovery and learning about what the product should do.
- I wouldn't say a BDD feature's scenario is a requirement as such.
- Most commonly seen anti-pattern is when people come and say, “We need to speed up testing. Cucumber BDD will improve our test automation effort.” Both of these lead to scenarios that are quite often overly-technical, quite brittle, slow, and not delivering the value that the whole BDD process can deliver when done in a collaborative way.
- People always love silver bullets, even though we all know there's no silver bullet.
- The nice thing about dependency injection is that you can use contextual objects to share data in a much more compartmentalized way.
- The decision about whether or not a behavior should be specified in the feature files should be based on whether your business stakeholders are interested in it, not on how long it takes to run or how much of the application it exercises
- The Testing Iceberg – The decision about whether or not a behavior should be specified in the feature files should be based on whether your business stakeholders are interested in it, not on how long it takes to run or how much of the application it exercise.
- All Cucumber does is link the English-language, business-language feature files up to a method that's been annotated with a regular expression. Underneath that, you can use any library you like.
- Much, much more!
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- The Cucumber for Java Book: Behaviour-Driven Development for Testers and Developers – by Seb Rose
- The Cucumber Book: Behaviour-Driven Development for Testers and Developers (Pragmatic Programmers) by Matt Wynne
Connect with Seb
- Twitter: @sebrose
- Blog: ClaySnow
- LinkedIn: www.linkedin.com/in/sebrose
Leave a Review!
Thanks again for listening to the show. If it has helped you in any way, shape or form, please share it using the social media buttons you see on the page.
Additionally, reviews for the podcast on iTunes are extremely helpful and greatly appreciated! They do matter in the rankings of the show and I read each and every one of them.
I’m trying to use djgnao-behave!It’s not a vital project, but I like the idea and I’m trying to understand it.It could use a tutorial on how to set it up and test a feature with djgnao, for example with selenium. I’ll think about it!