in reply to when do you stop writing test?
Heh. I've generally decided that I've tested enough when I've run out of time for a project. :)
Seriously, I think the question of 'enough' testing (particularly with respect to the idea of diminishing returns) has a lot to do with the extent to which your code is mission critical. In my current position, I do a lot of internal web applications for low numbers of internal customers, and the bar is pretty low for some of that stuff. I find it is often easier to fix a problem afterward than spend the time being ultra-rigorous up front. In a previous job, there was a high need for quality and so, in that context, I was a lot more careful about building a complete test suite, several times arriving at that happy point of not being able to conceive of any further way to test my code.
I know that chromatic has an interest in this area, and you may want to listen carefully to any suggestions from monks who have a similar level of testing experience.