Issue No. 02 - March-April (2012 vol. 38)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2011.121
Andrea Arcuri , Simula, Oslo
Muhammad Zohaib Iqbal , Simula Research Laboratory, Lysaker
Lionel Briand , Simula Research Laboratory, Lysaker
A substantial amount of work has shed light on whether random testing is actually a useful testing technique. Despite its simplicity, several successful real-world applications have been reported in the literature. Although it is not going to solve all possible testing problems, random testing appears to be an essential tool in the hands of software testers. In this paper, we review and analyze the debate about random testing. Its benefits and drawbacks are discussed. Novel results addressing general questions about random testing are also presented, such as how long does random testing need, on average, to achieve testing targets (e.g., coverage), how does it scale, and how likely is it to yield similar results if we rerun it on the same testing problem (predictability). Due to its simplicity that makes the mathematical analysis of random testing tractable, we provide precise and rigorous answers to these questions. Results show that there are practical situations in which random testing is a viable option. Our theorems are backed up by simulations and we show how they can be applied to most types of software and testing criteria. In light of these results, we then assess the validity of empirical analyzes reported in the literature and derive guidelines for both practitioners and scientists.
Coupon collector, random testing, theory, Schur function, predictability, partition testing, adaptive random testing.
M. Z. Iqbal, L. Briand and A. Arcuri, "Random Testing: Theoretical Results and Practical Implications," in IEEE Transactions on Software Engineering, vol. 38, no. , pp. 258-277, 2011.