Enterprise .net toolkit

January 22nd, 2007

Great read!

Categories: General, OS | Top Of Page | 4 Comments » |

4 Responses to “Enterprise .net toolkit”

goodwill Says:

Something about FitNesse- I honestly dont understand why have to write another set of unit testing here- at first I wonder if Fit would test something more high level (e.g. web interface), but reading thru it seems telling me it is still just another kind of unit testing, probably have easier way to create test, but is that all?

hammett Says:

Yes, Fitness is for acceptance tests. that way different from _unit_ testing.

goodwill Says:

But it still based on a testing class coded, which is similar to a test method coded in a test class runs by NUnit- except the parameters are configurable with the wiki right? If I make my test class reading an external config, wouldn’t that produce similar result? So what is the difference of acceptance test and unit testing?

Martin Jul Says:

Goodwill,

I usually use the following definition of tests: a unit test tests a class in isolation ie. in a synthetic environment. Usually we are able to factor out all its dependencies with mocks etc and test only the class (unit) itself is behaving as expected. These tests are “crutches” for the developers as they are defined by the tests developers find relevant.

Then there are integration tests. These combine more units of the program – often all of it. An integration test could be to fill out a form and click a button on a web page and validate that the information is written to the database.

Acceptance tests are the tests that validate that the customer’s requirements are satisfied. Usually they are written as integration tests – sometimes with some dependencies stubbed/mocked. For example we can test a set of business rules for, say, discount policy, by checking the discount policy calculation with a set of customer-specified inputs to validate that the business rule works. This can be done through the UI, but often we would test only a single class or parts of the application.

The key point is that the acceptance serve as a guarantee that the application still works according to the customer’s wishes.

I have written an article about why they are important http://community.ative.dk/blogs/ative/archive/2006/10/06/Why-Acceptance-Tests-Matter.aspx. In the project mentioned we actually implemented some of the acceptance tests using the data-driven (unit) testing framework in Visual Studio Team system even though this is often thought of as a “unit testing” system.

Cheers,
Martin

Leave a Reply