Software testing is indispensable in ensuring software quality. Traditionally, testing has been viewed as a separate and distinct stage at the end of the software development process. However, testing activities have evolved from the "code and fix" process of executing a piece of software in an attempt to find coding errors, to a collaborative coordinated effort with testing activities embedded throughout the entire software development life cycle. The benefits of contemporary testing activities include: linking together of perspectives across the entire organization, development of a better software product with fewer errors, and reduced cost by avoiding or finding errors earlier in the development life cycle. In spite of an emerging view that testing activities should be included early and throughout the software development process, there is little research in the area of how this can be accomplished. This paper attempted to address this void by offering six models for engaging testers early and throughout the software development process. It also carried out a simulation study with the in-depth surveyed data from 13 software testing professionals, for the purpose of determining which of the six models would be best under different development environment circumstances