Acceptance Test “Lifecycle”





In my last post I introduced my favorite way to put a “TODO” in code.  Several commenter’s mentioned checking in unfinished integration tests as kind of a marker to measure the progress of outstanding work.  My team does something like this with our StoryTeller infrastructure.  In StoryTeller, each test has a “lifecycle” attribute of either “Acceptance” or “Regression.”

<?xml version=1.0?>

<Test name=Add an Installable Part to the Case lifecycle=Acceptance>






















In the big regression build, all StoryTeller tests are executed and the results are written off and tabulated for all tests, but only tests marked as “Regression” can cause a true build failure by the command line StoryTellerRunner tool.  This way you can have the acceptance tests specified early or even (in a perfect world) before any development happens for a feature, then change the lifecycle to “Regression” later to turn the test into a mandatory regression test.

It’s working pretty well for us so far.  I got this from a parallel ThoughtWorks team about 5 years ago that was using this technique with Fit tests.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at
This entry was posted in StoryTeller. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Paul Batum

    It looks like something went wrong with the formatting of this post Jeremy. Where did all those empty paragraph tags come from?