I was reading a book that explain unit testing in C# using NUnit. It gives a good pointers on testing:
Properties of good test:
A – automatic
T – through
R – repeatable
I – independent
P – profesional
What to test:
Right – is the result right?
B – boundary condition
I – inverse relation
C – cross check result
E – error condition
P – performance