tl;dr Everyone involved is responsible for the outcome, including quality.
Create true teams, not simply groups of people ordered to create the same thing. The best solutions come from truly collaborative, cross-functional, self-organizing teams comprised of paint drip or T-shaped professionals. Instead of focusing on individual responsibilities, promote collective ownership of product development including quality.
Promote a test first mentality starting with planning. Discussing the applicable scenarios (happy path, errors, boundaries, ranges, integration, performance, etc.) when beginning the effort on a slice of work then designers, developers, testers, etc. have a better understanding of the needed functionality and are thinking about quality as the effort is undertaken.
Various techniques and practices such as Test Driven Development, Behavior Driven Development, and Acceptance Test Driven Development can be used to combine planning, design, and development. The result is a safety net of automated tests to help ensure quality from the beginning and against regression.
Pair and mob programming are additional tools that help promote collaboration, shared ownership, and improving paint drip or T-shaped professionals.
Well written tests become a part of documentation. They show how the product should behave, validation that it does, and indication when that changes. It is a helpful starting point for new team members or when another team member has to visit, or revisit, existing code.
Everyone involved is responsible for the outcome, including quality. The divisiveness between roles is a problem that impedes individuals, teams, and organizations from efficiently and effectively creating and delivering valuable solutions. Collective ownership through collaboration is one way to address the issue.