Testing is Everyone's Job
Agile teams should strive to be cross-functional. Even when some members of the team specialize, and everyone should be involved in some aspect of test execution or test development. For example, on a software project limited to the roles you've defined:
- Designers should be involved in Acceptance Test-Driven Development (ATDD), perhaps using Cucumber or Watir to specify the behavior or contents of their user interface.
- Programmers should be involved in Test-Driven Development (TDD), writing unit tests for all significant aspects of the product's behavior.
- Programmers should also be involved in writing tests for Continuous Integration (CI), to ensure that the code base is always in a potentially-shippable state.
- The Product Owner and Project Manager should be involved in writing tests for Behavior-Driven Development (BDD) and any non-functional requirements, ensuring that the product meets the team's "definition of done" at the end of every iteration or milestone.
In the same way, systems administrators, database administrators, network administrators, or other specialists that work with the the Development Team (whether or not they are actually members of the team) should also be involved in testing. While cross-functional generalists are often the ideal for an agile team, in practice teams may contain (or matrix in) specialists for certain aspects of the project. These resource specialists are the ones best suited to develop tests that exercise their particular domains of expertise, and can help the rest of the team ensure that each vertical slice of functionality works as intended throughout the entire stack.
If you're not doing software, the concept remains the same but the types of tests (and who needs to be involved in developing each type of test) will certainly vary. What should not vary, though, is the participation of the entire team in continuously testing the team's product and its fitness for purpose.