Software products are the result of a multidisciplinary team coming together to make a concrete product that serves customer needs. Although the team is formed of several roles, such as managers, analysts, developers, and testers, each role is essential to deliver a suitable and robust product. This requires each of these contributors to be a part of the quality process.
If every role has a part in ensuring quality, why do we need a separate role for testers? One simple reason is to introduce a fresh set of eyes. While it is possible for a developer to test their own code or software, it requires a different mindset to ensure quality. A developer's mindset is to prove that their software works, but a tester's mindset is to make the product fail to work. Thus, the tester's role is more about finding defects in the software.
Now...