At some point in the process of designing new applications such as games, financial software, or productivity suites the programmers have to be willing to say that the product is complete. The temptation is to continue fixing and fiddling with the software forever, but at some point is needs to be ready to sell or otherwise released to the public.
However, just because the programmers are done doesn’t mean it’s time to start selling the software. That would be a mistake. First the program needs to undergo extensive Graphical User Interface Testing or GUI testing. This will identify any problems with the program before it goes out into the world. This prevents the release of a bad program and circumvents the need for future patches to fix major errors.
GUI testing has been around for awhile. It tests every aspect of a program to make sure that it is operating within the products technical specifications. This can be a huge undertaking, as every possible combination of actions that might be taken by a future user must be examined. This is why most GUI testing is now automated. Specially designed programs simulate user behavior through every mathematically conceivable path of action. This generates a detailed list of any problems so that programmers can correct them before the software is released.