Overview
BDD, or Behavior Driven Development, is an Agile software development technique that encourages collaboration among developers, quality assurance teams and non-technical business people throughout the planning, development and testing cycle of a software project.
This instructor-led, live workshop begins with an introduction to BDD, what it is and how it is used by companies to promote good software design, development and testing. We do this from a non-engineering point-of-view, with an eye on the end-users, their requirements, language, and way of thinking. We also address the communication challenges that business stakeholders are likely to encounter as they work closer with their technical-minded peers.
By the end of this training, participants will know how to:
- Write succinct user stories that capture the usage patterns of real users of the software.
- Translate their user stories into the behavioral language of BDD (Given, When, Then.)
- Derive test cases from these stories, for use by engineers to implement and test.
- Understand the relationship between product requirements, acceptance criteria, and test cases.
- Demystify the technical jargon that impedes communication and understanding.
- Install and use great tools for writing BDD feature files.
- Understand and appreciate what happens once the work is handed to engineers.
- Play a more active role in the iterative development cycle.
Format of the course
- A interactive, instructor-led workshop with lots of activities and hands-on practice.
Notes
- The workshop includes case studies and software samples. To customize the materials to your company’s product and situation, please contact us to arrange.
Requirements
- An understanding of user requirements concepts
- A discerning eye for software goodness and software inadequacies, from an end-user perspective
- Programming and testing experience are not required
Audience
- Product owners and managers
- Business analysts
- Manual testers
- End-users of a software product or system
- Non-engineers and non-coders involved in product design
Course Outline
============== Day 01 =====================
Introduction
- Why BDD?
- BDD as an extension of Agile
- Agenda for Day 01
Applying BDD at Different Stages in the Software Development Cycle
- Before development
- During development
- After development
One Language to Rule Them All
- Engineers and non-engineers speak different languages
- Bridging the gap through BDD
- A preview of the BDD language: Gherkin
The Different Roles of BDD
- BDD as product requirements (for product owner)
- BDD as acceptance criteria (for developers)
- BDD as test cases (for testers)
- BDD as a description of the product (for other stake holders)
Back to Agile: It All Starts with User Stories
- Overview of the Agile development cycle
- The role of User Stories in Agile development
Q&A Session and Discussion
Quiz
Creating a Good User Story
- Using the right language
- Role, Action, Outcome
- A sample User Story
Activity – Writing a User Story
- Writing your first User Story – individual activity
- Tightening your User Stories – team activity
- Delivering your User Story – team activity
User Stories in Real Projects
- Team dynamics
- Tools and techniques
- User Stories in the software development cycle
On to BDD
- Extending the User Story
- Introducing the Feature File
- Capturing the expected behavior of software
- Imagining what “unexpected” behavior looks like
Creating a Good Feature File
- Using the right language (Gherkin)
- Given, When, Then
- A sample Feature File
Activity – Writing a Feature File – PART 01
- Writing your first Feature File – individual activity
- Feature section
- Scenario section
- Tightening your Feature File – team activity
- Delivering your Feature File – team activity
Feature Files in Real Projects
- Team dynamics
- Tools and techniques
- User Stories in the software development cycle
Q&A Session and Discussion
Quiz
Setting up Your Environment
- Making Gherkin pretty
- The joy of productivity
Activity – Writing a Feature File – PART 02
- Writing your Feature File – individual activity
- Passing multiple arguments to your Scenario
- Scenario Outline section
- Tightening your Feature File – team activity
- Delivering your Feature File – team activity
Q&A Session and Discussion
Quiz
Closing Remarks
============== Day 02 =====================
Introduction
- Recap of previous day
- Agenda for Day 02
Your Own Product – An Introspection
- Describing your product
- Drawing a picture of your product
Extending Test Coverage
- Usability of the system
- Business requirements
- Business processes
Activity – Writing a Feature File – PART 03
- Writing your Feature File – individual activity
- Examples section
- Reusing data and scenarios
- Organizing features and scenarios with tags
- Tightening your Feature File – team activity
- Delivering your Feature File – team activity
Q&A Session and Discussion
Quiz
The Feature File – What to Leave Out
- What to leave to the engineers
- Low-level functionality (unit tests)
- Exhaustive cross-component functionality (integration and API testing)
Q&A Session and Discussion
Quiz
Your Own Product – An Introspection
- How usable is your product?
- How usable is your product to outside users?
Communication with People outside Your Team
Closing Remarks