I wouldn't write any tests just for the sake of having tests. I would only write tests when a bug is discovered or you are adding new functionality. Then write tests to box the code that you need to change/implement to define what it currently does. In the case of a bug, write the test to prove the bug has been fixed. In the case of new code, what it is supposed to do. Now go and implement the fix/new feature. If you find that you're tempted to touch code outside your test "box" -- write some more tests to box that area (or reconsider the changes you want to make). Introduce new tests gradually as needed to maximize the investment you are making in the tests. Writing tests to prove that working code works seems pointless until it's shown to be broken.