I'm the only software developer and project manager for the technical side of a project we're delivering for one of our clients. We initially agreed to and signed-off on a high-level spec that we would deliver whatever would make them happy.
We delivered the product (code) to them about a month ago. We internally test this product ourselves (~150 unit tests in JUnit, including simulations of end-to-end user-style test.) We asked the customer to test it and sign off.
They identified a small problem. And then another. And a third. More and more issues are emerging. Some of them are simple to diagnose and fix; some of them are due to an incomplete and vague spec delivered to us; some of them are feature requests for new functionality; some of them are technical or architectural holes; some of them are due to holes in the design.
Everybody is getting antsy. Our company needs to get this project done ASAP, because it's holding up other, mission-critical work for us. The customer doesn't understand why testing and resolving issues is taking forever.
What's the best way to resolve this situation?
We asked the customer to identify whatever tests they're running, in as complete detail as possible, so we can see what they're testing and make that work. However, their executive sponsor is getting antsy. This was supposed to be a small, quick project which is now dragging.
Edit: In an attempt to clarify exactly what they want and what we need to deliver, we created a "user acceptance testing" doc with test-cases that they're running. So far, it covers around twelve tests we've added.
The problem is, they add tests that are not tests (eg. "Department X will test the deliverable") or they keep adding more specific requirements (eg. how fields will look) to the testing. It's too open-ended, perhaps, for us to clamp it down to control scope.