System and method for testing software reliability over extended time
AssigneeMicrosoft Corporation
InventorsClark D. Nicholson, Michael Y. Tsang, Zhiyuan Zhao, Haifeng Zhou
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsClark D. Nicholson, Michael Y. Tsang, Zhiyuan Zhao, Haifeng Zhou
Estimating the term…
A system and method for accelerated reliability testing of computer system software components over prolonged periods of time provides a uniform, extensible, reporting framework that includes a plurality of reporting clients, at least one controller. The system and method are adaptable for operation over a dedicated intranet as well as the Internet. It provides for tracking the reliability of system components and logs failures of varying severity that may be expected to occur over time. This data is useful, among other things, for estimating mean time between failures for software being tested and expected support costs. This information is particularly useful in providing a reliability measure where multiple independently developed software modules are expected to function together. The testing includes random scheduling of tasks and sleep intervals reflecting expected usage patterns, but at a faster pace to efficiently sample the state space to detect sequence of operations that are likely to result in failures in actual use. The method and system include using pseudo-random numbers to schedule the tasks and provides for storage of random numbers to facilitate reproducing failures, for instance for debugging efforts.
A software reliability reporting network comprising:
A method of generating a failure log in testing a software module, the software module interacting with a plurality of test modules and with a controller module, wherein the controller module coordinates the test modules and the software module, the method comprising the steps of:
A computer-readable medium having computer-executable instructions for performing steps of a method of generating a failure log in testing a software module, the software module interacting with a plurality of test modules and with a controller module, wherein the controller module coordinates the plurality of test modules and the software module, the steps comprising:
A controller for coordinating testing by a plurality of test modules of a software module, each of the plurality of test modules executed on one of a plurality of client machines physically connected to a machine hosting the controller and to a machine hosting the software module, the controller comprising:
A client test manager for coordinating part of an accelerated life test on a client machine in evaluating reliability of a software module being tested, the client test manager receiving an initial seed for generating pseudo-random numbers using a random number generator, wherein a first pseudo-random number generated by the random number generator is used to generate a second-pseudo random number, the second pseudo-random number being used to schedule the execution, on the client machine, of a first test module in a test module suite by calculating a first sleep period following which the first test module is executed in a separate process space independent of any other test modules.
Dependencies are inferred from the claim text.