This sounds like developers and testers are missing requirements. This doesn't mean you need a huge formal requirements document, but in the very least each product enhancement needs acceptance criteria. Each defect report needs steps to reproduce.
Developers should not be writing acceptance criteria. Someone on the product side needs to do this. If a developer creates a defect report, they better include steps to reproduce. If they don't, as soon as you get assigned the ticket reassign it back to the developer with a comment to add exact steps to reproduce.
If you get an enhancement without acceptance criteria you need to contact a product person to get this information. If you have no "product person" then you have identified your problem. It cannot be just developers and testers. You need someone to gather the information from the users or client and work with developers and testers to ensure everyone understands what needs to be done.
Because if you don't understand what needs to be done, how on Earth is a developer supposed to understand? The problem does not reside with developers. It resides with the overall process of bringing work to the team. I bet developers get just as frustrated as you due to lack of information.