I wrote a post a long time ago against unit testing, but I can't find it now. Anyway, my thinking has changed and I understand now why modern scum love unit testing. It appeals to all of their worst values. They love complexity and reductionism. I haven't talked much about reductionism, but it is one of the major sins of modern culture. Good religion encourages holistic thinking, and I think that a program should be viewed holistically.
I used to support functional testing, but now I don't even bother with that. A good simple program will fail quickly if there is a bug. So I just fix all bugs quickly, no matter how small. When I release new code, I just watch the logs for errors for a short time. That is good enough.