---
title: "NDemo - Demo Driven Development?"
url: "https://osherove.com/blog/2007/5/16/ndemo-demo-driven-development.md"
canonical: "https://osherove.com/blog/2007/5/16/ndemo-demo-driven-development.html"
published: "2007-05-16T06:05:20"
updated: "2007-05-16T06:05:20"
tags: ["Agile", "Agile Related"]
author: "Roy Osherove"
description: "One of the people I met in DevTeach yesterday was Ben Monro. I'm pretty sure this is his blog . Ben asked me if I've heard of NDemo (same concept as JDemo which I've also never heard of). No I didn't. But it sounded…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# NDemo - Demo Driven Development?

By Roy Osherove May 16, 2007 In [Agile](https://osherove.com/blog/category/agile), [Agile Related](https://osherove.com/blog/category/agile-related)

**Historical article** · Originally published May 16, 2007; technical details may be outdated.

One of the people I met in DevTeach yesterday was Ben Monro. I'm [pretty sure this is his blog](http://www.benmonro.com/Blog/). Ben asked me if I've heard of [NDemo](http://www.ndemo.net/) (same concept as [JDemo](http://www.jdemo.de/) which I've also never heard of). No I didn't. But it sounded cool!

Ben is the creator of [NDemo](http://www.ndemo.net/), and here's what the site has to say about it:

> "NDemo is an open source framework for creating automated testable demonstrations in .NET.  With NDemo, .NET developers can create automated demos in much the same way they create NUnit tests.  With these automated demos, screenshots and walk-thru's can be generated from the real working application.

> At the current moment, NDemo is still in the early stages of development.  Although this project uses [JDemo](http://www.jdemo.de/) as an influence, the framework is being built from the ground up in C#.  This project came in part from my frustration with documentation and always having to keep screenshots up to date.  Why not have a tool that generates them for you, and as a side effect, ends up providing cursory level tests on the GUI.?"

Ben [has an interesting post on how he views a technique he calls Demo Driven Development](http://www.benmonro.com/Blog/PermaLink,guid,fe63b91b-48a3-4dc3-95ab-f43eb40c9518.aspx), and how it fits in with Agile development.

Here's another demo taken seamlessly from that site:

The Following example shows a hello world in NDemo.  The syntax is intended to be similar to NUnit.  Notice how the Demo methods return a Demonstrator object.  This object will be used by the demo runner when it runs the demo.

```
using NDemo.Framework;

namespace NDemo.Sample.Demos
{
    [DemoFixture]
    public class HelloWorldFixture
    {
        [Demo]
        public Demonstrator HelloWorld()
        {
            HelloWorldForm form = new HelloWorldForm();
            FormDemonstrator demo = new FormDemonstrator(form);

            demo.ClickOn("btnHello").Show("First Click on the Hello Button");

            demo.Highlight("lblWorld").Show("World will then appear here.");

            return demo;
        }
    }
}
 
```

The Demo Runner (the GUI Runner) will actually show screenshots of the UI with the objects highlighted and with the specific annotations on top of these images. That way you could, for example, create automatic testing steps for your QA, even if your UI changes, the screenshots change with it (this can be automated as part of a daily build. It's also a good way to create visual use cases of the application for customers.

It's an interesting approach. When I showed this to [Oren(Ayende)](http://www.ayende.com/) he asked whether it only works on winforms.I wasn't sure but I think so. It's built on top of [NUnitForms](http://nunitforms.sourceforge.net/), if I'm not mistaken. Oren was excited to see that the site has a cool "Tested with RhinoMocks" graphic as well :)

Cool work Ben! I'd love to see real life demos (no pun intended!) of this thing.

## More in Agile

[All posts in Agile](https://osherove.com/blog/category/agile)

- Jun 6, 2007

    ### [Scrum - What it looks like in the real world](https://osherove.com/blog/2007/6/6/scrum-what-it-looks-like-in-the-real-world.html)

- May 30, 2007

    ### [Automating web tests with FitNesse and Selenium](https://osherove.com/blog/2007/5/30/automating-web-tests-with-fitnesse-and-selenium.html)

- May 3, 2007

    ### [Tips for a successful team lead](https://osherove.com/blog/2007/5/3/tips-for-a-successful-team-lead.html)

- Apr 30, 2007

    ### [VersionOne is one serious Agile management software](https://osherove.com/blog/2007/4/30/versionone-is-one-serious-agile-management-software.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
