Patent ID: 7437713

Claim:
In a networked computing environment, a method for testing software on one or more of a plurality of platforms and with one or more of a plurality of languages the method comprising: receiving test conditions defining tests on developed computer program products; receiving group information, the group information defining a selected platform and language for each of one or more groups; storing the test conditions and group information as a test packet in a database, the test packet defining one or more tasks to be performed for a particular group; searching for available test clients that are available to perform a test job including tasks for a particular group defined in the test packet, wherein searching for test clients comprises searching according to loading capacity; selecting the test packet from the database, wherein selecting the test packet from the database further comprises: first determining if any pending test packets can be selected for the available test client such that a pending test packet can be run on the available test client without reimaging the available test client, and if test packet is a pending test packet that can be selected for the available test client such that the test packet can be run on the available test client without reimaging the available test client, selecting the test packet for the available test client and automatically building and assigning a test package with tasks from the selected test packet to the available test client; but if a pending test packet cannot be selected for the available test client such that the pending test packet can be run on the available test client without reimaging the available test client, then determining if the test packet is a pending test packet that can be selected for the available test client such that the test packet can be run on the available test client with reimaging the available client, and if the test packet can be run on the available test client with reimaging the available test client then selecting the test packet for the available test client and automatically building and assigning a test package with tasks from the selected test packet to the available test client and; calculating an execution time for the test package and if the calculated execution time exceeds a predetermined allowable execution time, automatically building and assigning a different test package to the available test client with tasks from the test packet.