Ken, I and many many other developers out there have arrived at the same conclusion as you several times throughout our careers.
The truth that I believe you'll find (as have many others) is that the initial investment of writing tests for your application may seem daunting, but if written well and targetted at the correct parts of your code, they can really save a ton of time.
My big problem was with the testing frameworks available. I never really felt like they were what I was looking for, so I just rolled my own very simple solution. It really helped to bring me around to the "dark side" of regression testing. I'll share a basic pseudo snippet of what I did here, and hopefully you can find a solution that works for you.
public interface ITest { public string Name { get; } public string Description { get; } public List<ITest> SubTests { get; } public TestResult Execute(); } public class TestResult { public bool Succesful { get; set; } public string ResultMessage { get; set; } private Dictionary<ITest, TestResult> subTestResults = new Dictionary<ITest, TestResult>(); public Dictionary<ITest, TestResult> SubTestResults { get { return subTestResults; } set { subTestResults = value; } } } The only tricky part after that is figuring out what granularity level you think is the best "bang for the buck" for whatever project you're doing.
Building an address book will obviuosly require way less testing than an enterprise search engine, but the fundamentals don't really change.
Good luck!
Adam Carstensen www.mobiusbay.comGood luck!