At my company, we build some pretty complex financial applications. Our general policy is that the developer should ensure that no technical errors arise. Basically, try everything you can to break it, given the resources of the user. When you cannot find a runtime error, send it forward to the BAs for testing. We've had a few developers who got lost in testing business requirements to the point of burn out, but only because all that testing was not their responsibility. Unless there is some glaring error that is clearly visible, we send it forward to the people who get paid to understand the output. Also, users should have a real role in verifying the results. The sales clerk at a retail store doesn't try on the clothes for you, they only help you with the "technical details" like finding clothes of the right size.