Often, many errors are uncovered during this phase. The completed software is tested by a special group of programming technicians according to a specific test plan. The objective of this phase is to insure that the software performs according to user requirements. The user tests the software system simultaneously with another system that produces verifiable results. The two systems are compared.
Discrepancies usually imply that errors exist in the new system.
Initially, the number of errors discovered during testing is very high. They decrease exponentially with time, and seem to approach some asymptotic value. Then, suddenly, after a reasonable period of use, the number of errors discovered increases, peaks and then decreases with time. This is due to the increased level of sophistication of users after they have used the system for a long while. Obviously, some minor software errors can be tolerated by users if the software is functional.