Network distributed automated testing system
First Claim
1. An application program testing apparatus, comprising:
- (a) one or more server computers providing a repository for one or more tests and results therefrom; and
(b) one or more client computers, connected to the server computers, for retrieving the tests from the repository, for executing the tests in conjunction with one or more application programs executed by the client computers, and for storing the results from the executed tests in the repository;
wherein each of the server computers includes a test manager for analyzing the results of the tests performed by the client computers and for determining which of the tests have passed and which of the tests have failed and for grouping the tests based on the analyzed results.
1 Assignment
0 Petitions
Accused Products
Abstract
A server computer acts as a central repository for tests performed by any number of connected client computers, as well the results of these tests returned by the client computers. A test manager executed by the server computer analyzes the results of the tests performed by the client computers, and determines which tests have passed or failed during execution, whether the tests failed because of an application or other error, and which tests should be re-executed by the same or different client computer. A test grouper analyzes the error messages produced by the application being tested, so that tests that reveal the same defect can be grouped together. A test reducer is iteratively applied to selected tests to reduce the test to the smallest subset of the original test that still reveals the defect. In this manner, the present invention maximizes the testing efficiency of the resources used and minimizes the amount of time required of the operator to confirm failures.
94 Citations
60 Claims
-
1. An application program testing apparatus, comprising:
-
(a) one or more server computers providing a repository for one or more tests and results therefrom; and
(b) one or more client computers, connected to the server computers, for retrieving the tests from the repository, for executing the tests in conjunction with one or more application programs executed by the client computers, and for storing the results from the executed tests in the repository;
wherein each of the server computers includes a test manager for analyzing the results of the tests performed by the client computers and for determining which of the tests have passed and which of the tests have failed and for grouping the tests based on the analyzed results. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for testing application programs, comprising the steps of:
-
(a) storing one or more tests and results therefrom in a repository of one or more server computers;
(b) retrieving the tests from the repository to one or more client computers connected to the server computers, executing the retrieved tests in conjunction with one or more application programs executed by the client computers, and storing the results of the executed tests from the client computers to the repository of the server computers; and
(c) analyzing the results of the tests performed by the client computers including determining which of the tests have passed and which of the tests have failed based on the results of the tests and grouping the tests based on the results of the tests. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
(a) storing one or more tests and results therefrom in a repository of one or more server computers;
(b) retrieving the tests from the repository to one or more client computers connected to the server computers, executing the retrieved tests in conjunction with one or more application programs executed by the client computers, and storing the results of the executed tests from the client computers to the repository of the server computers; and
(c) reducing and re-executing the tests to reveal a portion thereof that reproduces an application program defect.
-
-
33. The method of claim 32, wherein reducing and re-executing further comprises iteratively reducing and re-executing the tests based on results from previously executed tests.
-
34. The method of claim 32, wherein reducing further comprises reducing the tests into syntactically discrete portions.
-
35. The method of claim 19, further comprising the step of ensuring fault tolerance from faults in the client computers.
-
36. The method of claim 19, further comprising the step of ensuring fault tolerance from faults in the server computers.
-
37. An article of manufacture comprising a computer program carrier readable by a computer and embodying one or more instructions executable by the computer to perform method steps for testing application programs, the method comprising the steps of:
-
(a) storing one or more tests and results therefrom in a repository of one or more server computers;
(b) retrieving the tests from the repository to one or more client computers connected to the server computers, executing the retrieved tests in conjunction with one or more application programs executed by the client computers, and storing the results of the executed tests from the client computers to the repository of the server computers; and
(c) analyzing the results of the tests performed by the client computers including determining which of the tests have passed and which of the tests have failed based on the results of the tests and grouping the tests based on the results of the tests. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
-
-
55. An application program testing apparatus, comprising:
-
(a) one or more server computers providing a repository for one or more tests and results therefrom;
(b) one or more client computers, connected to the server computers, for retrieving the tests from the repository, for executing the tests in conjunction with one or more application programs executed by the client computers, and for storing the results from the executed tests in the repository; and
(c) a test reducer for reducing and re-executing the tests to reveal a portion thereof that reproduces an application program defect;
wherein the test reducer further comprises means for reducing the tests according to one or more of the following techniques;
(a) eliminate all portions of the test following the portion in which the application program defect was detected;
(b) determine if the defect can be detected using (in order) the last portion, the last two portions, etc., before the portion which detects the defect; and
(c) eliminate one or more randomly selected portions;
if re-execution still detects the application program defect;
otherwise replace the removed portions and eliminate a new or complementary set of portions.
-
-
56. A method for testing application programs, comprising the steps of:
-
(a) storing one or more tests and results therefrom in a repository of one or more server computers;
(b) retrieving the tests from the repository to one or more client computers connected to the server computers, executing the retrieved tests in conjunction with one or more application programs executed by the client computers, and storing the results of the executed tests from the client computers to the repository of the server computers; and
(c) reducing and re-executing the tests to reveal a portion thereof that reproduces an application program defect;
wherein reducing further comprises reducing the tests according to one or more of the following techniques;
(a) eliminating all portions of the test following the portion in which the application program defect was detected;
(b) determine if the defect can be detected using (in order) the last portion, the last two portions, etc., before the portion which detects the defect; and
(c) eliminate one or more randomly selected portions;
if re-execution still detects the application program defect;
otherwise replace the removed portions and eliminate a new or complementary set of portions.
-
-
57. An article of manufacture comprising a computer program carrier readable by a computer and embodying one or mote instructions executable by the computer to perform method steps for testing application programs, the method comprising the steps of:
-
(a) storing one or more tests and results therefrom in a repository of one or more server computers;
(b) retrieving the tests from the repository to one or more client computers connected to the server computers, executing the retrieved tests in conjunction with one or mote application programs executed by the client computers, and storing the results of the executed tests from the client computers to the repository of the server computers; and
(c) reducing and re-executing the tests to reveal a portion thereof that reproduces an application program defect;
wherein reducing further comprises reducing the tests according to one or more of the following techniques;
(a) eliminating all portions of the test following the portion in which the application program defect was detected;
(b) determining if the defect can be detected using (in order) the last portion, the last two portions, etc., before the portion which detects the defect; and
(c) eliminating one or more randomly selected portions;
if re-execution still detects the application program defect;
otherwise replace the removed portions and eliminate a new or complementary set of portions.
-
-
58. An application program testing apparatus, comprising:
-
(a) one or more server computers providing a repository for one or more tests and results therefrom; and
(b) one or more client computers, connected to the server computers, for retrieving the tests from the repository, for executing the tests in conjunction with one or more application programs executed by the client computers, and for storing the results from the executed tests in the repository;
wherein the test grouper further comprises means for analyzing error messages generated by the application program during the execution of the test, for comparing the analyzed error messages with an error message database compiled from previously executed tests, and for grouping the tests based on the comparison.
-
-
59. An article of manufacture comprising a computer program carrier readable by a computer and embodying one or more instructions executable by the computer to perform method steps for testing application programs, the method comprising the steps of:
-
(a) providing a repository for one or more tests and results therefrom; and
(b) retrieving the tests from the repository by one or more client computers which execute the tests in conjunction with one or more application programs executed by the client computers, and store the results from the executed tests in the repository;
(c) analyzing error messages generated by the application program during the execution of the test including comparing the analyzed error messages with an error message database compiled from previously executed tests and grouping the tests based on the comparison.
-
-
60. A method for testing application programs, comprising the steps of:
-
(a) providing a repository for one or more tests and results therefrom; and
(b) retrieving the tests from the repository by one or more client computers which execute the tests in conjunction with one or more application programs executed by the client computers, and store the results from the executed tests in the repository;
(c) analyzing error messages generated by the application program during the execution of the test including comparing the analyzed error messages with an error message database compiled from previously executed tests and grouping the tests based on the comparison.
-
Specification