Try to keep units small, use appropriate tools, and pair-up programmers and tester; these are suggestions from Adrian Bolboacă for writing good unit tests. Unit testing is a mixture of programming and ...
you've broken your program down into functions but now maybe you have hundreds of functions and a team of programmers is in there every day making changes to the code with all of these moving pieces ...