Clean Code: Behavior Driven Development
37. Elaborating the Requirements
By Robert C. Martin, 1h 33m

Get ready for a deep dive into the acceptance tests and implementation of the Hunt the Wumpus game. In this episode we're going to look at the details of all the FitNesse tests, and the Java code that makes the game work.

We'll also introduce a new contest that you can compete in. The prize is An Autographed Clean Code Coffee Mug. WHOOOO HOOO!

This episode is full of interesting architectural insights and design decisions including things like separating UI from tests, and partitioning high level policy from low level policy.

You'll also see several design patterns and test patterns from previous episodes employed in the implementation.

Finally, once we've looked over all the tests and code, we'll discuss the collaboration that is required between business, QA, and development in order to create a suite of acceptance tests that is compatible with the architecture of the application.

36. Behavior Driven Development Design
By Robert C. Martin, 48m

Have you ever wanted to be a business analyst? Well here's your opportunity to watch a new business analyst learn the ropes. She's new. She's inexperienced. But she'll have some experienced help getting started. In the end, she'll do fine.

In this episode we're going to watch a project get started. From the initial pitch and the mandate from executives, to the conversation between business analysts, programmers, and QA. And we'll learn the dynamics of that conversation.

We'll learn that the qualifications for being a good business analysts, and being a good QA technician, are similar in many ways; and that they require equal measures of technology and business background.

So, watch carefully as the first acceptance tests are written. Notice how the business analyst makes assumptions about those tests that are corrected by the QA technician and the programmers. Watch as the design of the initial tests take form.

And notice how the business analyst learns that the design of those tests is critically important to the success of the project.

35. Behavior Driven Development
By Robert C. Martin, 1h 9m

Programming is one thing. Writing programs that meet the needs of the business is another. How do the business people and the programmers communicate?

Answer: badly.

In this episode we're going to introduce the concept of Acceptance Testing and Behavior Driven Development (BDD) as a means to enhance that communication.

First we'll look at the problem itself; the problem of communication between business people and technical people.

Then we'll discuss some of the more successful solutions to this problem, including the tables developed by David Parnas; and the Fit Framework developed by Ward Cunningham.

In fact, we'll have a surprise visit from Ward, and hear some of that history from the horse's mouth.

Then we'll look at FitNesse, and some of the ways we've used acceptance testing and BDD to specify it.

Then we'll get into the guts of BDD and walk through some examples.

Finally, we'll talk about the Acceptance Test Rule. This is the rule that tells us the best form to present Acceptance tests in; and whether BDD is appropriate for your team.

And that will end part 1 of our series on Acceptance Testing.

Have fun. This one's a hoot. You'll meet a new character in here -- one you'll recognize!