This is a huge issue, and while it is not entirely solvable, we can definitely do *better*. Part of the problem is conflicting expectations, which we can't automate out of existence, but part of the problem is regression, plain and simple. One of the lowest impact ways to reduce regression is automated regression testing, which we can do, for example, with WWW::Mechanize. The tests are dead simple to write, and fantastically useful. There's even a wiki page about interface testing using WWW::Mechanize:
http://wiki.koha-community.org/wiki/Interface_testing_with_WWW::Mechanize