I am involved in a project where for some time now the project has stuck in an endless testing, UAT, bug fixing cycle.

The issues that caused this are, lack of initial requirements, new requirements creeping up during testing, and just bad coding from the developers' side of things.

So, at the moment, we are stuck in the final cycle in which the developer gives a release, the release is tested (prechecked), business users are called for a UAT, the users find bugs that haven't been discovered before, the problems are sent to the developer for resolution, and the same cycle starts all over again.

How do you get out of this endless cycle?