основная идея:
1) программа должна работать так, как нужно;
2) программа не должна работать так, как не нужно
программа - читай "функционал программы"
вот без тестов с (2) , да и с редко используемым функционалом (1) начинаются сюрпризы, а сюрпризы влияют на деньги