Behave#

July 28th, 2007

I have watched the evolution of Joe Ocampo‘s requirements testing framework with eager anticipation.  As most who have tried to use it know, Fitnesse just doesn’t quite hit the mark for expressing requirements into tests and Joe’s work is a promising bridge for that gap.

This post gives the best intro into the basic idea behind Joe’s framework. 

Now that Joe is moving his project into CodePlex as open source, we have the promise of even wider adoption.  A natural evolution of this idea may go like this.

  1. Developers love it and begin expressing their stories this way in their unit tests.
  2. Someone creates an Excel->XML->Code generator and gets their product owner to generate classes from specification criteria.
  3. Someone builds a requirements editor that is almost good, but cludgey.
  4. Steel Trace sees the potential and builds requirements to Behave# adapters into their product.
  5. A new Scrum for Team System template is released with Orcas with support for story definition the way it should have been the first time.
  6. The stories entered in TFS by product owners can now dynamically generate Behave# assemblies (of course, this wont be supported by MS, but we’ll figure it out).

The end game here is that requirements are compiled into code resulting in instant automated acceptance and regression testing. I can practically hear angels singing.

Technorati tags: , , , , ,

  • http://grabbagoft.blogspot.com/ Jimmy Bogard

    Well, I don’t know about angels singing, but we’ll try to get there :). I really like your codegen idea. On the other hand, if you can sit down and write Behave# tests with your business owner, and they can still read and understand the test, that’s when I think you’ve succeeded in your design.

  • http://elegantcode.com David Starr

    In my experience, technical design has little impact on the ability of a product owner to express desirements. I do hope that my product owners are able to express their desirements before sitting down with me.

    My mom is a reasonable product owner, I may be making a recipe box program for her or something. Is it reasonable to ask my mom to sit and look at code? Not in a million years. Can I teach her how to write a user story in a pre-formatted spreadsheet? Well… ok, I bet she could do that one. Maybe.