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 SpecFlow.
Format of Workshop:
Participants get to understand behavior driven development in the form of sessions and hands-on exercises and discussions.
Learning Outcomes:
- 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 SpecFlow is, and how it can be used to automate BDD scenarios
- Learn the syntax of SpecFlow 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
- SpecFlow demo
- SpecFlow 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 SpecFlow
- Automating WPF
- Demo (part 1): Then steps
- Demo (part 2): Finishing the test
- Automating the browser
- Demo (part 1): Technical steps
- Demo (part 2): Resetting state
- Checking the database
- The discontinue and reorder features
- Reorder by email
- Demo (part 1): Papercut
- Demo (part 2): SMTP stub
- Demo (part 3): Verifying emails
- Reorder by web service
- Demo (part 1): WCF stub
- Demo (part 2): Verifying web service calls
- Reorder by message queue
- Demo (part 1): message handler stub
- Demo (part 2): Verifying messages
- Technical acceptance tests
- Get product AIP feature
- Demo (part 1): The GET feature
- Demo (part 2): Automating the GET
- Demo (part 2): Negative testing
- PUT product API feature
- Demo (part 1): Discontinue with PUT
- Demo (part 2): Reorder with PUT
- PUT product acceptance tests
- API performance feature
- Demo (part 1): Load testing with loader.io
- Demo (part 2): Message handler stub
- Demo (part 3): Verifying messages
- Performance testing in the cloud
- 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:
Basic .NET knowledge is recommended so the participants can actively contribute with questions and shared experiences.
Infrastructure requirements:
- Participants will be divided to multiple teams of 3-4 people. Each team will be sitting around round table
- 2-3 whiteboards at least and markers of different colors
- Laptops or desktop for each participant