Ashwini Lalit
The 9th edition of the Global Testing Retreat 2024!
About Speaker
Ashwini Lalit
Senior Manager – Test Automation
NimbleWork
More Speakers
BDD (Behavior-Driven Development) is an agile approach comprising three key practices: discovery, formulation, and automation. This methodology aims to improve software development by reducing ambiguities, enhancing collaboration, and creating living documentation.
Discovery is the first practice, involving structured collaboration to uncover potential misunderstandings in software projects through concrete examples. This process helps stakeholders align their understanding of requirements and expectations. Example mapping technique is helpful in this respect.
Formulation, the second practice, transforms the examples from discovery into business-readable scenarios. This creative process documents system behavior, providing a clear reference for all team members. Seb Rose and Gasper Naggy have established best practices in their book dedicated to Formulation.
Automation, while incidental, plays a crucial role in developing living documentation for the formulated scenarios. This practice ensures that the documented behaviors remain up-to-date and verifiable throughout the development process.
Acceptance tests in BDD derive stability from the relative constancy of business rules compared to technical implementations. These tests are designed to be independent of specific user interfaces, allowing them to be written before UI development begins. This approach facilitates early definition of business rules and workflows. Reference – https://gojko.net/2010/04/13/how-to-implement-ui-testing-without-shooting-yourself-in-the-foot-2/
Gojko has explained the pyramid’s layering concept in relation to the automation code. However, I believe the same pyramid can also be applied to organize the information presented by a scenario and its corresponding automation code.
The BDD approach contrasts with traditional testing methods, which often relied solely on highly technical and brittle tools functional test-automation tools. These tools represent the third level of testing, which was previously the only level available.
In BDD, “development” teams can start building core interfaces, service boundaries, and dependencies while “automation” teams establish Page Object Model (POM) files, business keywords, business objects, and interactions. This parallel work allows automation to progress without waiting for screen designs to be finalized.
The scenarios created in BDD provide interactions and business steps that guide development. While initial business objects may lack full recognition, using relevant business names in their creation is informative and helps establish a common language “Business Vocabulary” among team members.
This approach to software development and testing creates a more collaborative, efficient, and aligned process, reducing the risk of misunderstandings and ensuring that the final product meets business requirements more accurately.
The workshop aims to enable participants to embrace BDD for business alignment, dispelling the myth that it’s merely a test automation tool. It emphasizes hands-on exercises using sticky notes, with approximately 80% focus on textual content and 20% on coding for automation to produce a fully working specification version. We will use Generative AI (GenAI) to enhances the efficiency of scenario generation by providing careful context, further streamlining the BDD process. Once we have the BDD background provides us better mechanism to cross check if produces relevant content.
Benefits to participants:
- Understanding of BDD practices and their application
- Hands-on experience with BDD techniques
- Insight into aligning development with business needs
- Exposure to modern tools like GenAI in the BDD context
- Knowledge of how to create living documentation and stable acceptance tests
Target Audience – developers, testers, business analysts