"As Marsha said, you do want your tests to "fail" when there are program changes"
No. Marsha said it was a good thing if a test CRASHED due to a change! I said it was a good thing if it FAILED. Big difference.
I'm with Ryan. Use much the same methodology as him. Framework. Small test units/functions. Super-robust error handling and recovery.
I know Ryan uses helper functions to dynamically find and return objects during a run rather than name maps. I use a mixture of both - depending how dynamic a site/application is or isn't. Even if using mapped objects, new ones, changed ones or missing ones should still not cause a crash. Doesn't in my tests. Due to robust error handling and recovery ...