Program Overview: Two Day Training and Coaching – Hands-on workshop
Acceptance tests prove your solution actually works, and using them to implement executable specifications proves your solution does what it should do. In this course we look at capturing requirements as executable specifications and implementing them as end-to-end tests with Behat.
Format of Workshop:
Participants get to understand behavior driven development in the form of sessions and hands-on exercises and discussions.
Learning Outcomes:
Behat is an absolute favorite library to use. First, it let’s you think about the behavior of the features first, before you start developing. In this tutorial, we’ll do that, and it’ll change the way you develop. Second, Behat turns that written behavior into functional tests against your application. Does your feature behave correctly? Just run the automated robots to find out!
Along the way, we’ll master Mink – the partner library to Behat. Here are the learning outcomes of this workshop:
- That BDD is primarily a communication tool, to be used by the whole team
- Understand other disciplines, perspectives on communication issues within the team
- Understand the importance of developing a ubiquitous language within the team
- Experience of the BDD process: breaking down user stories into scenarios
- Understand the distinction between features, user stories. acceptance criteria and scenarios, and how those artifacts can be used by each discipline
- Understand the difference between unit testing and acceptance testing, and the
importance of each - See what Behat is, and how it can be used to automate BDD scenarios
- Learn the syntax of Behat and implement the same for acceptance scenarios
Following topics in detail will be addressed in 2 days:
- What is BDD?
- Practical exercise: breaking down user stories into scenarios
- Writing acceptance criteria for user stories
- Feature acceptance tests
- Technical acceptance tests
- Negative acceptance tests
- Writing BDD scenarios for acceptance criteria
- Splitting user stories that are too big
- Behat demo
- Behat syntax
- Writing readable specifications
- Demo (part 1): Given steps
- Demo (part 2): When steps
- Demo (part 3): Running the test
- Practical exercise: imperative vs declarative style
- Working with Behat and Mink
- Step Definitions
- BEHAT History
- Context Class
- PHP Versions
- Assertions
- Installation
- Command Line
- Quick Usage Reference
- Gherkin Language
- Features
- Mink Web Testing
- What you will learn?
- Behaviour Driven Development
- Context Class and Assertions
- BEHAT Overview and Configuration
- Command Line Usage
- End to End BEHAT Examples
- Syntax – Givens, Whens, Thens, And, But
- Understand Features, Scenarios, Step Definition
- Test Data
- Mink for Web Testing
- Traps, pitfalls, hints and tips
- Facilitating specification workshops
- Choosing what to automate
- How Scrum, Kanban and BDD fit together
- How to track progress and predict velocity with Kanban
- Collecting metrics to measure the success of your BDD adoption
When conducting these workshops, we focus on an organization’s specific needs, challenges and expertise level in Agile as BDD implementation has lot to do with Agile maturity of a team/organization.
Facilitator will address all the questions from participants about applying BDD practices on real life projects.
Prerequisites:
- Object oriented PHP knowledge
- Drupal 7 experience
- Some familiarity with Linux and Command Line tools.
- A laptop with VirtualBox, Vagrant, and your favorite IDE or code editor installed.
Infrastructure requirements:
- Participants will be divided to pairs. Each pair will be sharing a laptop
- 1-2 whiteboards at least and markers of different colors
- Laptops or desktop for a pair