Who should be responsible for testing?
Ultimately, testing is everyone's responsibility.
In the real world, there are basically three team structures within modern software companies.
1. Dedicated development and QA teams.
Companies with dedicated development and QA teams typically leave the software development up to the developers and testing to the QA team.
2. Designer, Developer, QA, etc.
Some companies will have small teams comprised of a developer, designer, QA engineer, etc., all working together on a single project or feature. In this scenario, the developer is typically responsible for the code, and QA is usually responsible for testing.
3. Fullstack Solo Developer
Some companies, like early-stage startups, do not have dedicated QA teams and put all of the testing responsibility on the developers. The developers are responsible for writing the code and ensuring that it works as expected.
While many companies and teams have dedicated QA engineers, everyone is responsible for ensuring that an application is working as intended.
In order to ship reliable, high quality software, testing should be everyone's responsibility and should be at the thought process of the entire team at the start of a project.