Testing is the last phase of the Software Development Life Cycle before the software is delivered to customers. During testing, experienced testers start to test the system against the requirements.
The testers aim to find defects within the system as well as verifying whether the application behaves as expected and according to what was documented in the requirements analysis phase.
Testers can either use a test script to execute each test and verify the results, or use exploratory testing which is more of an experience based approach.
It is possible that defects are identified in the testing phase. Once a defect is found, testers inform the developers about the details of the issue and if it is a valid defect, developers will fix and create a new version of the software which needs to be verified again.
This cycle is repeated until all requirements have been tested and all the defects have been fixed and the software is ready to be shipped.