Method and system for automated distributed software testing
First Claim
1. A method of testing software, said method comprising:
- receiving, at a testing control service that comprises a server, a request to conduct a test of software;
identifying, by the testing control service, test parameters to test the software from the request, wherein the test parameters comprise requirements of testing the software;
identifying a remote test lab from a plurality of remote tests labs, the remote test lab comprising a plurality of target machines comprising resources that satisfy the requirements of the test, wherein each target machine comprises a virtual machine monitor, at least one target virtual machine to perform the test, and a management virtual machine to track the at least one target virtual machine performing the test;
scheduling the test with the plurality of target machines of the remote test lab;
connecting to a sentry server machine located at the remote test lab, wherein the sentry server machine is configured to monitor whether the test resulted in at least one target machine of the remote test lab failing by periodically retrieving information from the management virtual machine in a target machine; and
receiving information from the sentry server machine that indicates a result of the test at the remote test lab.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide methods and systems for automated distributed testing of software. A testing service may utilize a distributed architecture that provides a standardized framework for writing tests, scheduling the tests, and gathering and reporting results of the tests. Multiple distributed labs are integrated into the testing service and their environments can be centrally managed by the testing service. The testing service permits the scheduling and performance of tests across multiple machines within a test lab, or tests that span across multiple test labs. Any of the machines in the test labs may be selected based on variety of criteria. The testing service may then automatically locate the appropriate machines that match or satisfy the criteria and schedule the tests when the machines are available. The testing service may also automatically create and set up a desired test environment according to the desired specifications for the test.
68 Citations
25 Claims
-
1. A method of testing software, said method comprising:
-
receiving, at a testing control service that comprises a server, a request to conduct a test of software; identifying, by the testing control service, test parameters to test the software from the request, wherein the test parameters comprise requirements of testing the software; identifying a remote test lab from a plurality of remote tests labs, the remote test lab comprising a plurality of target machines comprising resources that satisfy the requirements of the test, wherein each target machine comprises a virtual machine monitor, at least one target virtual machine to perform the test, and a management virtual machine to track the at least one target virtual machine performing the test; scheduling the test with the plurality of target machines of the remote test lab; connecting to a sentry server machine located at the remote test lab, wherein the sentry server machine is configured to monitor whether the test resulted in at least one target machine of the remote test lab failing by periodically retrieving information from the management virtual machine in a target machine; and receiving information from the sentry server machine that indicates a result of the test at the remote test lab. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A distributed testing system, said system comprises:
-
a plurality of test labs, wherein each of the test labs comprises; a set of configurable target machines, wherein each target machine comprises a virtual machine monitor, at least one target virtual machine to perform a test of software, and a management virtual machine to track the at least one target virtual machine performing the test, and a local sentry server machine configured to monitor the set of configurable target machines and determine whether a scheduled test results in at least one target machine failing by periodically retrieving information from the management virtual machine in a target machine; and a control server coupled to the plurality of test labs and configured to receive a request to conduct the test at one of the plurality of test labs, identify test parameters to test the software from the request, wherein the test parameters comprise requirements of testing the software, identify capabilities of the set of configurable target machines in the one of the plurality of test labs, determine that the set of configurable target machines comprise resources that satisfy the requirements of the test, schedule the test to be performed on the set of configurable target machines of the one of the plurality of test labs, and provide the local sentry server machine with a constraint on the test to be performed. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method of testing software, said method comprising:
-
receiving, at a remote test lab of a plurality of remote test labs comprising a plurality of target machines, a request to schedule a test on a target machine in the remote test lab, wherein the request is received in response to a remote testing control service generating a test script for the test, wherein the test script comprises requirements of the test, and determining that the target machine comprises resources that satisfy the requirements of the test, wherein the target machine comprises a virtual machine monitor, at least one target virtual machine to perform the test, and a management virtual machine to track the at least one target virtual machine performing the test; locally monitoring the target machine in the remote test lab, by a sentry server machine, during the test to determine whether the test results in the target machine fail by retrieving information from the management virtual machine in the target machine; and sending, to the remote testing control service, information indicating that the target machine failed.
-
-
25. A computer readable storage medium including instructions that, when executed by a computer, cause the computer to perform a method comprising:
-
receiving a request to conduct a test of software; identifying, by the computer, test parameters to test the software from the request, wherein the test parameters comprise requirements of testing the software; identifying a remote test lab from a plurality of remote test labs, the remote test lab comprising a plurality of target machines comprising resources that satisfy the requirements of the test, wherein each target machine comprises a virtual machine monitor, at least one target virtual machine to perform the test, and a management virtual machine to track the at least one target virtual machine performing the test; scheduling the test with the plurality of target machines of the remote test lab; connecting to a sentry server machine located at the remote test lab, wherein the sentry server machine is configured to monitor whether the test resulted in at least one target machine of the remote test lab failing by periodically retrieving information from the management virtual machine in a target machine; and receiving information from the sentry server machine that indicates a result of the test at the remote test lab.
-
Specification