Fizz Buzz Calculator

From AgileMe
Jump to navigation Jump to search

Introduction

This workshop provides a practical implementation of Behaviour Driven Development (BDD) with the aim of providing some initial exposure to the ideas and the mechanics behind BDD and TDD techniques.

Learning Objectives

  • A practical understanding of the mechanics of BDD techniques
  • Experience using BDD techniques

Timings

  • The workshop is intended for a duration of 90 mins

Materials

  • Clone the Agile Tools repo
  • Have a working implementation of Eclipse (Java) + Cucumber Eclipse Feature + Axis2 Tools + Maven plugins
  • Alternatively use cyber-dojo.org as a browser based environment from which to conduct the workshop
  • Open the FizzBuzzCalculator2 Eclipse project
  • User Stories relating to the FizzBuzz calculator
  • Illustration to indicate the BDD flow and the responsibilities of the teams

Behaviour Driven Development (BDD)

Workshop Flow

Connections

Connections part of the activity are intended to enable the attendees to connect with the subject and with each other, and should have more context than “ice breakers” that would otherwise not have any relevance to the subject or context of the workshop.

Activities Description
FizzBuzz Game - 10 mins Ask the attendees to play the FizzBuss game by taking turns to count up from 1 to n and saying "Fizz" if the number is divisible by three and "Buzz" if the number is divisible by five. This is intended to provide attendees an understanding of the customer experience expected from the calculator.

Concepts & Concrete Practice

For a majority of the activities, they will include introducing new concepts and ideas to attendees, and also provide interactive opportunities to practice them and apply the new found knowledge.

Activities Description
BDD Practical - 60 mins Work through the user stories to create:
  • feature definitions
  • step definitions
  • code to satisfy the step definitions
  • refactoring of the tests and the code

Conclusions

Conclusion activities enable the attendees to take stock of what they have learnt and how these new ideas can be applied in practice to real world projects.

Activities Description
Debrief - 20 mins
  1. What did the group observe?
  2. Why did the activity work?
  3. How can the attendees apply this to their regular work?

References

https://cucumber.io/ https://eclipse.org/downloads/ https://cucumber.io/cucumber-eclipse/ http://www.eclipse.org/m2e/