I'll second what Tim says. When you are writing a class (often a bean in the case of JSF),
you should be thinking "How can I unit test this?" If you are thinking that way, you will accomplish two things:
1) You'll be able to write and run unit tests!
2) Your code will often be less brittle and easier to change/upgrade in the future as you are forced to think about abstraction etc.
You don't have to test every single path through every single method (although that would be the ideal), but getting over 80% code coverage should give you confidence that things are working before you release into Testing.
If you use Apache
Ant (or something similar), you could even set things up to take the latest code out of source control and run the unit tests every night. that way you get to find out about problems as early as possible.
Unit Testing might seem to be a pain, and it can take a long time to get going if you have already written a lot of code, but it will more than pay for itself in terms of a lower defect rate and application stability. It's often said that a bug found during development costs one tenth as much if the same bug being discovered in a deployed product. That's some saving!
(Another useful thing to do is Static Code Analysis, I think "FindBugs" is a great little tool for this; I've caught an awful lot of stupid mistakes with it! Not my code of course, cough, cough. Ahem.)