These two parties should collaborate heavily in the development process.
In some organizations, developers and the QA department are separate entities that don’t collaborate very well. In some cases, the QA team is in a different building, or even in a foreign country. Developers do their best to write code, and then they “throw it over the wall” to the QA team for review. Bug reports stream back to the development as they find defects.
This suboptimal approach leads to an “us against them” attitude, which is counterproductive. A proper collaborative environment has these two teams working with each other, not against each other.
Testers can help developers anticipate unexpected use cases. Their experience of trying random things and looking at the application from different perspectives can be hugely beneficial.
Developers can help improve automated tests. Automation is often tricky for the QA team to develop into their tests, and if they gain the assistance of the development team, it can be beneficial. Also, if the QA team gets insight into upcoming features before they arrive as finished code, they will be better able to prepare their new test cases.
When the two groups work hand-in-hand as a team, the overall result is much more efficient.