It's easy to write tests that check that your code does what it should and shouldn't do when its given sensible data. Testing that code handles rubbish is also needed. ''Does this mean that the recommendation is to test both positively and negatively? Or does "positively" mean checking both expected data and unexpected data?''