A Markov chain model for statistical software testing
- 1 October 1994
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 20 (10) , 812-824
- https://doi.org/10.1109/32.328991
Abstract
Statistical testing of software establishes a basis for statistical inference about a software system's expected field quality. This paper describes a method for statistical testing based on a Markov chain model of software usage. The significance of the Markov chain is twofold. First, it allows test input sequences to be generated from multiple probability distributions, making it more general than many existing techniques. Analytical results associated with Markov chains facilitate informative analysis of the sequences before they are generated, indicating how the test is likely to unfold. Second, the test input sequences generated from the chain and applied to the software are themselves a stochastic model and are used to create a second Markov chain to encapsulate the history of the test, including any observed failure information. The influence of the failures is assessed through analytical computations on this chain. We also derive a stopping criterion for the testing process based on a comparison of the sequence generating properties of the two chains.<>Keywords
This publication has 14 references indexed in Scilit:
- Markov analysis of software specificationsACM Transactions on Software Engineering and Methodology, 1993
- Estimating the probability of failure when testing reveals no failuresIEEE Transactions on Software Engineering, 1992
- Partition testing does not inspire confidence (program testing)IEEE Transactions on Software Engineering, 1990
- Correction to 'Certifying the reliability of software' (Jan. 1986 3-11)IEEE Transactions on Software Engineering, 1989
- A Probabilistic Distance Measure for Hidden Markov ModelsAT&T Technical Journal, 1985
- An Evaluation of Random TestingIEEE Transactions on Software Engineering, 1984
- Quantifying Software Validity by SamplingIEEE Transactions on Reliability, 1980
- A User-Oriented Software Reliability ModelIEEE Transactions on Software Engineering, 1980
- Validity of Execution-Time Theory of Software ReliabilityIEEE Transactions on Reliability, 1979
- The new math of computer programmingCommunications of the ACM, 1975