Behavior-Driven Development (BDD) is a well-known practice for collaboration, and teams use it to bridge the gap between product management and the software development team. It is also very popular among quality engineers to develop test automation frameworks. BDD helps in describing requirements in the form of feature files and scenarios; scenarios further get described in the format of Given, When, and Then.
Gherkin language can be used to write feature files in more than 40 languages. Some of the important keywords of Gherkin mentioned below that help in describing features and scenarios:- Feature, Scenario, Given, When, Then, And, But, Background, Scenario Outline, and Examples
Here is a brief about this session, as described in the glossary on Agile Alliance. Three amigos refer to the primary perspectives to examine an increment of work before, during, and after development. Those perspectives are:
Business — What problem are we trying to solve?
Development — How might we build a solution to solve that problem?
Testing — What about this? What could possibly happen?
People holding these different perspectives should collaborate to define what to do and agree on how they know when it is done correctly. The end result of such a collaboration results in a clearer description of an increment of work, often in the form of examples, leading to a shared understanding for the team.
If you are developing software using Scrum then you may like to host these sessions during Product Backlog Refinement or Sprint Planning. It is because The Product Owner and The Development Team participate during both where The Product Owner provides business prospective, and The Development Team (consisting of developers and testers along with other members) provides development and testing prospectives.
Scenario: Search all available flight based on date, origin, and destination Given flyer enter travel date as “12/12/2020” and origin as “Bangalore and Destination as “Chennai” When Click on the Search button Then Search page should show all available flight And Provide option to book flight What is a complex story/requirement? Take the above example of flight search, this looks very simple but can it be delivered in 2 weeks of the sprint? Do we have an answer to the below questions?
Yes, it is. So how to slice this feature to have a releasable product increment by meeting DoD at the end of the sprint? Use the BDD scenario like below to slice it and then prioritize based on the value that you see in each slice. Develop stories incrementally and ensure you get feedback to maximize user experience and optimize the value of the work.
Scenario: Search only Indigo flight based on date, origin, and destination Given flyer enter travel date as “12/12/2020” and origin as “Bangalore and Destination as “Chennai” When Click on the Search button Then Search page should show all available flights And Provide option to book flight.
Scenario: Search only Spicejet flight based on date, origin, and destination Given flyer enter travel date as “12/12/2020” and origin as “Bangalore and Destination as “Chennai” When Click on the Search button Then Search page should show all available flight And Provide option to book flight.
Scenario: Search only Jet Airways flight based on date, origin, and destination Given flyer enter travel date as “12/12/2020” and origin as “Bangalore and Destination as “Chennai” When Click on the Search button Then Search page should show all available flight And Provide option to book flight Now the team can decide to build only those scenarios that can be delivered within one sprint and rest scenarios in upcoming sprints (if it makes sense).
The above scenarios can also be further sliced like below if needed.
Hope it is useful and if you have further queries then reach out to me on naveen@agilemania.com. We at Agilemania provides Scrum and Agile Training including TDD, BDD, and Extreme Programming, if you are interested in learning these.