Presenters: Marc Evers & Willem van den Ende

Objectives: To show how RSpec can be used to specify stories.

Intended audience:

Developers and QA people who know do TDD and are interested in improving their practice.

Contents

If you enjoy the benefits of unit testing (e.g. faster development, less debugging, happy customers), you might also enjoy automated acceptance testing.  Even if you're not doing unit testing but are interested in the benefits anyway, come to this session! We will introduce Rspec story testing (formerly known as rbehave). Story testing allows developers/qa people and customers to collaborate on writing automated specifications at the user story level. Story testing helps you to write out your user stories a bit, and think of various scenarios your software needs to support for each story. We will show how Rspec makes it easy to incrementally collect stories, flesh out scenarios and implement the corresponding program in small steps.

Rspec is a budding ruby framework that supports behaviour driven development at the unit level (specifying desired behaviour of code much like unit tests do, but using a domain specific language to expect certain behaviour) as well as executable specifications at the story level., it provides a way to describe stories in a domain specific language that is both readable and executable. In that sense It is similar to FIT (http://fit.c2.com). The main difference with FIT is that scenario's are text-based instead of story based. In our experience this leads to less adapter code, and it is easier to work in small steps. A potential disadvantage is that it might look less fancy/friendly to end customers (FIT can use documents from a word processor and makes it easy to blend tests with more informal documentation, rspec has yet to develop in that direction).

Since Rspec is written in Ruby, it is fairly easy to apply it to applications written in other languages - Ruby has wrappers for C (SWIG), can run on top of Java (JRuby) and .NET (microsofts' Ruby implementation), and Rspec seems to run on all of them.

In this session we present rspec and demonstrate its story testing capabilities by working on a realistic example - we'll add a few scenarios to a project we have been working on, so you can also see some of our existing scenarios before we start.

Format and length: 60 minutes presentation, demo and discussion with the audience.