Friday, May 30, 2008

.NET Test Driven Development

csUnit - open source testing framework
NUnit - open source testing framework
mbUnit - open source testing framework - lots of interesting features!
ZaneBug - unit testing which includes interesting enhancements for performance metrics, etc.

.TEST - commercial automated unit testing software
HarnessIt - commercial testing framework
Unite.NET - commercial unit and integration test software
X-Unity - commercial testing framework

NUnitAddin - Visual Studio add-in, currently has command-line interface (I hear Jamie Cansdale is working on a GUI with red/green bars)
NUnitASP - test web sites by interacting programmatically with the controls on the web page. Now supports authentication as well as several other new features! Also see my NUnitAsp Tips and Best Practices.
NUnitForms - allows you to test Windows Forms in a manner similar to NUnitAsp (you get to interact with the form elements programmatically). It even includes a recorder application!
RUnit - runs NUnit test harnesses in ASP.NET.
TestRunner for NUnit - an NUnit add-in for Visual Studio .NET. See blog post.
VSNUnit - an NUnit add-in for Visual Studio .NET. See blog post.

Mock Objects


Web sites / columns

Applying Patterns to Software Testing - Brian Marick
Bret Pettichord's Publications on testing
Brian Marick's writings on software testing
Cem Kaner's articles on testing
James Bach's articles
ObjectMentor's Test Driven Development articles web site, general purpose portal that includes various languages, testing tools, and articles.
testingReflections - a hub for Software Testing knowledge and information

Test Driven Development Column Dave Astels
Test Driven Development Yahoo! group
Pages on the c2 wiki:


UnitTest - check out all the links at bottom


Antony Marcano has a software testing focused blog.
Benjamin Mitchell has an excellent XP and Agile category including lots of TDD
Brian Marick's blog is all about testing
James Newkirk, lead developer on NUnit and now Microsoft employee, has an excellent TDD blog.
Jamie Cansdale, creator of the TestDriven.NET addin for Visual Studio, has a blog.
Jay Kimble has a TDD category
Jens Winter has a TDD category
Jonathan Cogley has a TDD category
Jonathan de Halleux - the creator of mbUnit
Roy Osherove has a Test Driven category
Siva Rama Krishna has a blog devoted to software testing
Steve Eichert has a TDD category
See my Test Driven Development category

Unit Testing articles

Adventures in C#: Using NUnit - Ron Jeffries
Advanced Unit Testing: Parts 1, 2, 3, 4, 5 - Marc Clifton
An Initial Investigation of Test Driven Development in Industry - Laurie Williams and Boby George
Best Practices: Test Driven Development
Charles' Six Rules of Unit Testing - Charles Miller
Contractual Test Driven Development: Combining Test Driven Development and Design By Contract - Dave Chaplin
csUnit Tutorials - a group of related tutorials on csUnit, including one on how to port from NUnit
Developing Automated Tests using NUnit2 with VB.NET - Dave Chaplin
Effective Unit Testing - Tim Burns
Endo-Testing: Unit Testing with Mock Objects - Tim Mackinnon, Steve Freeman, Philip Craig
Debugging .NET with NUnit - Paul Kimmel
Fun with Unit Tests-Testing Abstract Classes - Roy Osherove
Interview: XP Pioneer Stumps for Test-Driven Development - Jon Udell on InfoWorld
Introduction to Test-driven Development with NUnit and the NUnit Add-in - Roy Osherove
An Introduction to Test-Driven Development (TDD) – code examples are in C# and Delphi using csUnit.

An Introduction to Test-Driven Development (TDD) using Visual – code examples in VB.NET using csUnit.
NUnitAsp article - Melwyn D'Souza and Sarvesh Damle
NUnit V.2 For People Who Can't Cook - Markus Kalina, not the latest version of NUnit
Perform Code Coverage Analysis with .NET to Ensure Thorough Application Testing - James McCaffrey
Putting Test Driven Development into Practice - Jimmy Nilsson
TDD with NUnit and C# - PowerPoint presentation by Jonathan Cogley
Test Driven Analysis and Design - Jason Gorman
Test Before You Leap Into Development - Jon Udell on InfoWorld
Test-Driven C# : Improve the Design and Flexibility of Your Project with Extreme Programming Techniques - Will Stott and James W. Newkirk
Test Driven Development - ObjectMentor's write-up on TDD
Test Driven Development - Scott Ambler, chap 11 of his Agile Database Techniques book
Test Driven Development and Acceptance Testing - James Grenning
Test-Driven Development, A Conversation with Martin Fowler, Part V - Bill Venners on
Test Driven Development and Web Services - Peter Provost, uses NUnit
Test Driven Development in .NET - Peter Provost, uses NUnit
Test Driven Development in Enterprise Integration Projects - Gregor Hohpe and Wendy Istvanick
Test Driven Development using NUnit - Jason Gorman
Test First Guidelines - Sean Shubin
Testing ASP.NET Applications with NUnitASP and NUnit - Justin Gehtland
Testing for Programmers - Brian Marick, very very good!
Unit Testing and Test-First Development - on MSDN
Unit Testing Database Code - Richard Dallaway
Unit Testing in .NET - Charlie Poole, 79 PowerPoint slides
Unit Testing in .NET - Justin Gehtland
When Do You Stop Unit Testing? - Gordon Weakliem
Work Guidelines: Test Driven Development
Working backwards - James Newkirk, Robert C. Martin
Write Unit Tests - Nick Smith in Visual Studio Magazine
Writing Automated Browser Tests using NUnit and IE - Dave Chaplin
Refactoring Books

Refactoring: Improving the Design of Existing Code by Martin Fowler – excellent
Refactoring Workbook by William Wake – very good
Refactoring to Patterns by Joshua Kerievesky – forthcoming book, see the web site


C# Refactoring Tool – $110 for 1-9 licenses, $99 for 10 or more
C# Refactory – $99 first license, $50 each additional, 30 for $549
dotEasy – currently free
FlyWheel – $449
Resharper – use a username and password of eapuser, pricing not set
Visual Studio – will include refactoring in the Whidbey release, due in 2005

Web Sites

Agile .NET Development – Refactoring - by Jason Gorman, C# tutorial on refactoring
Fowler Refactoring Example - by Dave Veeneman, a C# translation of the 'Starting Point' example in Chapter 1 of Fowler's Refactoring book
Refactoring Home page – a portal on refactoring maintained by Martin Fowler
Refactoring Yahoo! group
Refactoring with Martin Fowler – Artima interview by Bill Venners
The Process of Database Refactoring – by Scott Ambler
Refactoring Refactoring – article by Robert X. Cringely that questions refactoring