Announcing "StoryTeller" – A new .Net tool for FIT test management

I’d like to announce a new open source tool that I’ve started called “StoryTeller” that is being hosted on Tigris at http://storyteller.tigris.org.  There isn’t any content, but the code is up in Subversion.

From the website:

StoryTeller is a new tool for efficient creation and management of automated testing of .Net code with the NFit/FitNesse engine. StoryTeller is specifically created to support an Acceptance Test Driven Development strategy. All existing .Net FitNesse and NFit tests will run under StoryTeller. Features will include editing, tagging, and integration with source control, CruiseControl.Net, NAnt and/or MSBuild, and support for application versioning.

The name “StoryTeller” is meant to convey a sense of telling the story of an application by defining the systems requirements (the user stories) in executable FIT tests.  My basic goal is to enable Acceptance Test Driven Development by simplifying the mechanical work of designing FitNesse fixture classes and tests.  I definitely want something that makes it as easy as possible for testers to use the Fixture classes we create and for us developers to run their tests at will.  StoryTeller will consist of a .Net 2.0 WinForms application and class libraries to edit and run FIT style tests.  It’s very early in its development, but I wanted to announce it early to get some feedback about the feature list and gauge the interest level of the community.

Why move beyond FitNesse?

  • It lacks integration with source control
  • Little bit difficult to integrate with CruiseControl.Net
  • The .Net support has never been up to par with Java
  • There’s simply an opportunity to do it better

 

Proposed Feature List

  • Human editable test files
  • Run tests with the FitNesse/NFit/FitLibrary.Net engine (duh)
  • Organize tests into a hierarchy of Suite’s
  • Define “System Under Test’s”.  The definition of a SystemUnderTest would include:
    • Source control persistence for the test and suite files within StoryTeller (I’m going to steal outrageously from CC.Net on this)
    • Being able to deploy the latest, or versioned, build of the System Under Test with a NAnt or MSBuild script on command
    • “Component Analyzers” that can build a report in the tool listing the deployed components and versions of those components
    • “Local” systems for developers to run the tests on their workstations and “Remote” systems for testers to edit and execute tests against a remote installation
  • Categorize and run tests by tags.   Tagging could be used to categorize tests by “Regression” or “Acceptance”, by user story/feature, or by test owner
  • Create “play lists” of tests
  • Setup and Teardown inclusions
  • Sharing test fragments
  • Easy copying of tests
  • Create test templates
  • WinForms tool to edit tests with guided “Intellisense” like forms for BoundFixture’s, FlowFixture’s, and an adhoc mode
    • Run the tests inside an NUnit GUI-like tool
  • Wizard to design Fixture grammars to enable consistent test writing well in advance of coding
  • Create reports of test runs that include the results, the version of the tests, and the versions of the installed components
  • Integration with NAnt or MSBuild and CruiseControl.Net
  • Run the tests from within Visual Studio.Net
  • In the distant, misty future I’d like to include some integration for web application testing with Selenium and/or driving WinForms testing with NUnitForms

 

Questions?

  • Does the world need this?  No, not really, but it’d be awfully nice.  I’ve been wanting something like this for about a year.
  • Why .Net?  I wanted, and started, to do this with a Ruby on Rails backend and AJAX frontend but didn’t get very far.  The choice of technology is completely based on the fact that I’m doing WinForms development for the first time in two years and I could use some significant practice;)
  • When?  I’m planning on being able to use the non-UI pieces soon.  The bare bones UI will follow in a couple months.  Part of the goal behind making this announcement is to goad myself into getting it done.
  • Can I help?  Gladly.  Send me an email.

 

Got suggestions or questions?  I’m all ears.

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 http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://vikasnetdev.blogspot.com/ Vikas Kerni

    I came to know about Fit tables from codebetter blogs and then I bought the FIT book( One of the best books that I have read in recent times).
    http://www.amazon.com/gp/product/0321269349/103-8797617-0646225?v=glance&n=283155

    I do believe that FIT can improve the software development process in the same way as automated unit testing improved the coding practices.
    I did encourage my business analysts to document related business rules and actions in tables and recommended this book to everyone in the team.

    There are two reasons that I have not implemented the FIT into our software process
    1. Given the nature of our application (Business Intelligence tool where data changes every night), I have not able to figure our strategic use of fit tables. I can think of hundreds of tactical situations that I can get from using fit table. May be combining these tactical uses will give me the strategic advantage.
    http://vikasnetdev.blogspot.com/2006/06/fit-framework-of-integrated-tests-my.html
    http://vikasnetdev.blogspot.com/2006/06/applying-fit-requires-different.html

    2. Lack of suitable GUI to run Fit table. I think that Finesse’s wiki interface is too cumbersome to be used by business users.
    http://vikasnetdev.blogspot.com/2006/07/faq-fit.html

    I can wait for this tool to be complete or do my part to help the construction. Right now I am in middle of some fire-fighting; I will get in touch with you after 2-3 weeks.

    I do really believe that Industry will get benefited immensely from this tool.
    Best of luck.

    http://vikasnetdev.blogspot.com/2006/10/jeremy-announces-story-teller-new-net.html

  • Andy

    This looks really sweet :)
    Can’t wait to see how it matures!!!

    I don’t have much time at the moment, but I would love to give feedback from a user that has just started to use fit testing and can already see weaknesses in the fitness style of doing things.

    One of my strongest dislikes of fitness (this may be due to inexperience) is that I can’t use MS AD to authenticate and authorise users for specific projects/tests. For instance I wouldn’t want a customer from one project to even know about a different customer’s project.

  • http://codebetter.com/blogs/jeremy.miller jmiller

    I think I got the last of the source code tree checked in now. I’ll put a CC.Net build on it soon to prevent that from happening again, especially since a couple folks have expressed an interest in helping out.

    More soon.

  • flipdoubt

    I’d love to help. Sending an email now.

  • dru

    “What bothers you about the html files?”

    I don’t know really. When I looked at Fit the first time I just remember seeing the tests being written in HTML tables via Word and I was just “Ugh” but it does make sense for the business users. I probably just need to sit down with someone and see how it easy/not-bad it really is. Have any good links?

  • Tobias

    The project file in StoryTeller.Story is still missing. Have you considered using AnkhSVN (http://ankhsvn.tigris.org/). I’m using it for about 3 weeks now with VS 2005. It still has one or two minor bugs but so far works pretty well.

  • http://codebetter.com/blogs/jeremy.miller jmiller

    P.S. The missing project file is in Subversion now.

  • http://codebetter.com/blogs/jeremy.miller jmiller

    Dru,

    You’re going to be disappointed, because all I meant was that I am going to store the tests in xhtml form so that you can make quick edits in the html editing tool of your choice rather than going for something custom.

    What bothers you about the html files?

    Jeremy

  • http://timhibbard.com/wherestim/ Tim Hibbard

    Nice!! I’ve been looking to spend more time with acceptance testing. It’s something we can use to convey expected application results to our boss.

  • dru

    Human editable test files

    Could you explain this a bit more. This is one of the things that has been holding me back from using Fit. HTML test files are just weird.