if(trackingNum != 'null'){ } EPIC Experience 2020 Pre-conference Training : Implementing BDD and TDD

Conference archive

Sunday, April 19, 2020 - 8:30am to Monday, April 20, 2020 - 5:00pm

Implementing BDD and TDD

  • Learn Behavior-Driven Development (BDD) and Test-Driven Development (TDD) through hands-on activities
  • Build the right thing through collaboration and shared understanding
  • Improve code coverage and quality in the code base
  • Increase innovation, lower stress, lower risk, and lower bug count
If agile is correctly implemented, adding Behavior-Driven Development (BDD) to the development process will not be difficult. It is an enhancement, based on TDD, that can greatly increase the quality of the final product. With small incremental changes, BDD can give your team that fresh start and a new way of thinking that will take your programming to the next level.
In this hands-on course, you will learn the key concepts of BDD, including business and team effects, participant roles, difficulties and traps, and more. Leave being able to practice and promote BDD at your company with primary and supporting technologies, transitions to using BDD, and more.
Additionally, we will learn and practice Test-Driven Development (TDD), a technique that uses automated tests to drive the design of the code. TDD is a development technique that results in tremendous benefits - higher quality, better rapport with team members, less risk.  Furthermore, it is very easy to get started.
Who Should Attend
This course is appropriate for anyone who is involved in the definition, development and quality assurance of software related products including customers, product owners, business analysts, SMEs, developers and testers. It is recommended that you are familiar with concepts of the agile methodology, as taught in our Fundamentals of Agile class, before taking this course. Please be aware there is significant time spent in developer-oriented technical coding exercises during this class.
Hands-On Exercises
In this workshop you will learn about testing application behavior through hands-on activities, exercises, discussions, and demos. 
  • Demonstrations and exercises using BDD
  • Simulation of sprint planning incorporating BDD
  • Presentations, discussions, and debate of BDD culture and mindset
  • Discussion of transitioning into using BDD
  • Convincing your team and management of its value
Laptop Required
This class involves hands-on activities using sample software to better facilitate learning. Each student should bring a laptop with a remote desktop protocol (RDP) client preinstalled. Connection specifics and credentials will be supplied during class. Please verify permissions with your IT Admin before class. If you or your Admin have questions about the specific applications involved, contact our Client Support team.


Course Outline
Introduction to BDD
General introduction to BDD concept
Show demo of running in Jenkins pipeline
What problems this solve
Building the right thing
A word about communication
Benefits of usage
For testers
For developers
For business
For teams
Contrast of output and outcome
Case studies
Extreme Programming and TDD
Dan North extending TDD
Participation Roles
Business stakeholder
Special advisers
End users
Mindset and Culture
Communication isn’t easy
Maintainability and testability
Planning versus iterative experimentation
Colocation versus remote
Trust and empowerment
Marshmallow challenge
Zen Mindset
Psychological safety
Theory versus practice
Scenario collaboration
Difficulties and Traps
Company culture preventing collaboration and trust
Changing existing precedent and culture is hard
Transitioning to a new technique will cause productivity drop
Poorly written scenarios can increase maintenance and derail progress
Not following Agile tenets
Practical Use
Showing the outside-in illustration
Discovering user stories
Difference between user story and feature / terminology difficulty
Expounding on user stories
Final user story with acceptance criteria
Well-written specifications
Poorly-written specifications
Starting the implementation cycle
More detail on outside-in development
Common anti-patterns while writing scenarios
Avoid fragile scenarios
Developer or tester implements automation
Regex can be a pain
Reduce redundancy, but don’t be pedantic
Follow TDD first before completing feature steps
Clarity of the feature is paramount
The IDE and framework won’t always set up the best stub code
The IDE can be a very powerful tool
Primary and supporting technology
Primary technologies - Cucumber, Fitnesse, Concordion, Hiptest, etc.
Secondary technologies - Jenkins, Jira, Maven, Gradle
Cultural Context
Understanding your cultural context
Westrum’s organizational types
  • Pathological
  • Bureaucratic
  • Generative
Transitioning to BDD
Small incremental changes
Team and management buy-in
Fresh start -  leaving behind the baggage
Simple and small
Comparable techniques


Class Daily Schedule
/Registration 7:30 - 8:30 a.m.
Morning Session 8:30 a.m. - 12:00 p.m.
Lunch 12:00 - 1:00 p.m.
Afternoon Session 1:00 - 5:00 p.m.
Times represent the typical daily schedule. Please confirm your schedule at registration.
Training Course Fee Includes
• Tuition
• Course notebook
• Continental breakfasts and refreshment breaks
• Lunches
• Letter of completion

Byron Katz has been in love with computers since his father bought the family a Commodore 64. A degreed architect, he found his way back to software development in 2010, and his career has included roles as a quality assurance lead, a full-stack developer, consultant, and sales engineer. Byron has experience at software firms ranging from start-ups to large enterprises to government projects. His primary project experience has been as a full-stack developer of multi-tier web projects in Java and .Net, but most recently Byron has had the opportunity to practice DevOps. He enjoys making seemingly-difficult concepts accessible to a larger audience, and his agenda is to persuade others that the costs of quality, simplicity, and beauty pay for themselves in the long run.