Testing should occur throughout the software development lifecycle according to various models. The V-model incorporates testing at each stage of development, including component, integration, system, and acceptance testing. Iterative models also include testing increments. Regardless of the model, testing activities correspond to development activities, each test level has specific objectives, and testers are involved in reviewing documents early. Testing targets include functions, performance characteristics, structure, and changes through confirmation and regression testing.