The later the defect is discovered, the more expensive it is to fix it and the more effort it takes. Besides, defects inherent in the system at the early levels of design are especially tricky as they are difficult to track down and interpret correctly. So the earlier testing begins in the life cycle of a program, the better quality it is going to have.
Most experts agree: testing should be started at the stage of drafting system requirements. Although everything here depends on the chosen development model. For example, in the waterfall model, testing is carried out at a specific allocated stage. The iterative model allows testing almost in parallel with the development of new functionality.
At different stages of the software life cycle, testing is carried out in different forms:
It is more difficult to determine the criterion for the end of testing, because, according to the principles of testing, we can never be sure that a program is 100% free from defects. That is why, other conditions are used: