1. A computer-readable storage medium including instructions that upon execution cause a computer system to: receive a request for performing a test on a device, the request specifying at least one parameter for the test; obtain a list of available devices; filter the list of available devices to generate a list of candidate devices that meet the at least one parameter for the test; obtain current state information for each of the candidate devices; normalize the current state information so that minimum and maximum values are mapped within a numeric range; assign at least one weight to the normalized current state information to generate normalized weighted state information for each of the candidate devices; generate device scores based at least in part on the normalized weighted state information; and based at least in part on the scores, select one of the candidate devices for performing the test.