As per my knowledge, there is not much difference between product or application life cycle in IT. I worked on both and for product testing, below phases:
Planning: Testers have to invovle by participating in meetings to understand the requirements
Design: Testers should sit with dev team and assist in preparing the acceptance tests. From this stage, QA has to start writing the test cases.
Coding and Unit testing: Work closely with dev team inorder to help them on unit test executions.
Testing: Total scope of testing in this phase.
Release: Perfom UAT and signoff.
There are books that address this.
The environments created in application development usually include the following: Local Development Staging QA Pre-Production Production Developers create the code, test it and debug it on the local environment. They then update the team development environment with this code, where it is tested for integration with other components coded for by other developer teams. The development environment is dynamic and unstable. If QA were to be performed on the same server, the validation process would be severely impacted. The app components are subjected to functional testing on the staging server in the QA environment. The app is put through a dry run in the Pre-production environment before its launch. The Production environment is hosted on a different server so that it is insulated from the dynamics of the development and QA environments. Since most projects now are Agile, maintaining the exclusivity of these environments while ensuring continuous communication and collaboration seemss like a clear-cut test plan.