Behaviour-driven development (BDD) started as an improved variation on test-driven development, but has evolved to become a formidable tool that helps teams communicate more effectively about requirements, using conversation and concrete examples to discover what features really matter to the business. BDD helps teams focus not only on building features that work, but on ensuring that the features they deliver are the ones the client actually needs.

Learn what BDD is, and what it is not

Understand that the core of BDD is around conversation and requirements discovery, not around tools.

Understand the difference and similarities between BDD at the requirements level, and BDD at the coding level.
Learn what BDD tools exist for different platforms, and when to use them

Behaviour Driven Development is an increasingly popular Agile development practice that turns testing on its head. It turns automated acceptance testing from a verification activity, done once the development work is done, to a specification activity, with tester involvement starting from the word go.

In this talk, we will look at how Behaviour Driven Development radically changes the traditional tester role in Agile projects, and empowers them to contribute much more to the successful outcomes of the project. We will see how collaboratively written acceptance criteria help reduce assumptions and errors in the early phases of the project, and help ensure that the features being built are both well understood and valuable to the business.

We will look at ways to write more effective, easier to maintain automated acceptance tests. And we will see how automated and manual acceptance test reporting can be combined to provide valuable progress and release preparation reporting.

It's nice to work on Green Fields projects. But most of us aren't that lucky! Most organisations have large legacy code bases to maintain. And the legacy applications, ugly as they are, are often what generates the revenue!

But legacy code bases are not easy to work with. Adding new features, or even fixing bugs, is slow and fraught with danger. Unexpected regressions are commonplace. Long testing cycles is the norm.

In this talk we will look at some strategies that can enable you to add new features to legacy systems faster and more reliably. We will examine where the hold-ups typically are, and what We will learn how to write cost-effective automated regression tests suites, and how to use unit testing as a way to document your legacy code base for future work, and improve its quality along the way!

This week I was lucky enough to be able to speak at the inaugural Scrum Australia conference in Sydney. The topic was 'Behaviour Driven Development and Scrum Team Dynamics':

Behaviour Driven Development (BDD) is an approach than encourages teams and stakeholders in general to reason about requirements in terms of “executable specifications”, and focus on implementing features with demonstrable business value. BDD is more than just a development technique: in fact, it introduces a whole new dynamic to interactions between team members and stakeholders, a dynamic that increases communication, improves productivity and reduces waste. Through ongoing conversations between business stakeholders and team members, a team applying BDD principles will explore the business goals, capabilities and behaviour that the stakeholders need. They then propose features that the system will need to deliver these capabilities, and use concrete examples and counter-examples to explore and understand these features more fully. In this talk, you will learn about the principles and benefits of BDD for the whole team, how BDD works in practice, and how it affects the various team members in a project. Finally, you will discover the relationship between behavior driven development and automated acceptance testing.