Concordion Tips for Effective Specifications and Tests

I found a well-written set of tips on Concordion's website about how to structure the relationship between specifications, test fixtures, and the domain code being tested.

Concordion - Hints and Tips
http://www.concordion.org/Technique.html

It offers good advice including "smells" and better alternative ways to solve problems. Even if you never use Concordion, it's always good to find a well-articulated treatment of a topic. This definitely qualifies.

Here's a sample of the solid advice:

Tips

  • Write specifications, not scripts
  • Specifications should be stable
  • Evolve a domain-specific language
  • Isolate behaviours
  • Think "Given-When-Then"

Common Smells

  • Existing specifications are often changed
  • Lots of "execute" commands
  • Complicated instrumentation
  • Complicated fixture code
  • Examples all have the same structure

Concordion appears to be a FitNesse-style wiki-test harness combination system. It is implemented in Java, but there is a .NET port called (shocking), "Concordion.NET".

You can learn more about Concordion's main functionality here:
http://www.concordion.org/

Concordion.NET is hosted on Launchpad:
https://launchpad.net/concordion-net

Jeffrey Cameron maintains the .NET port and offers several blog posts about how to get started.

Your First Concordion.Net Project by Jeffrey Cameron

Further Research

I plan to read more about Concordion and similar tools (including FitNesse's .NET-based spin-offs like fitSharp in hopes of finding a system that can allow collaborative editing of test cases and help me collect metrics about changes in test results over time (correlated with code changes and business decisions). If you know of any good options, please comment.

Trackback URL for this post:

http://www.jmill.net/trackback/873

Comments

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
By submitting this form, you accept the Mollom privacy policy.