Collaborate with JBehave & Serenity – part 1 of 3

Back in 2001, Larry Smith coined the phrase “Shift Testing Left; Test early, test often” – the idea of breaking test and development silos and involving more and more upstream teams/functions in the process of ensuring quality earlier in the lifecycle. Yes, the idea is THAT old.

In fact, most of the ‘new’ or ‘Agile’ ways of working you see people talking about on platforms such as LinkedIn have their roots in practices that are at least 20 years old. So what is new? Simply the fact that many more teams are embracing these ideas now.

For too long, product teams have been stuck in inefficient processes and ineffective practices, often simply unaware that better methods are out there. Now though, more and more teams are realising the need to “Shift Testing Left” and increase collaboration.

That’s the key word – ‘collaboration’.

As testers, we sometimes fall into the trap of losing ourselves in writing nifty automation suites. These are alright in-and-of themselves, but it doesn’t serve the collaboration piece. It’s hard to sell the business on the value of even the most well-written automation suite, if they can’t see how it ties in with their need to deliver features to their end-users. It’s even a hard-sell to convince developers to get involved, if they can’t easily see how it ties in with their development lifecycle. So we all just fall back into our little bubbles without realising it – until a defect appears in prod.

As John Ferguson Smart points out to us, we ought to be focused on creating a collaboration framework, rather than an automation framework, and there are already tools out there for this. One such tool is JBehave, created by Dan North, the inventor of BDD.

JBehave is a framework for BDD that shares the same goal as Cucumber. They differ in that Cucumber revolves around features, while JBehave revolves around stories.

In this short 3-part series of articles, I want to talk about JBehave and how it helps us to create a collaboration framework. I’ll be using the following:

  • Java (obviously)
  • Maven
  • JBehave (specifically we’ll be using Serenity-JBehave, the Serenity integration for JBehave)

So, this first part of the series introduces the subject matter. Part 2 will gives us a skeleton project and our first test. Part 3 will be a summary of the subject, plus my thoughts on all of the technologies involved.

If you like this subject, and would like to make sure you don’t miss out on the next 2 parts of this post, please use the form in the footer of this page to subscribe and you will receive alerts when the next parts are published. Many thanks!

© Copyright 2022 Cognito Square Ltd


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s