Experimental assessment of random testing for object-oriented software

Progress in testing requires that we evaluate the effectiveness of testing strategies on the basis of hard experimental evidence, not just intuition or a priori arguments. Random testing, the use of randomly generated test data, is an example of a strategy that the literature often deprecates because of such preconceptions. This view is worth revisiting since random testing otherwise offers several attractive properties: simplicity of implementation, speed of execution, absence of human bias. We performed an intensive experimental analysis of the efficiency of random testing on an existing industrial-grade code base. The use of a large-scale cluster of computers, for a total of 1500 hours of CPU time, allowed a fine-grain analysis of the individual effect of the various parameters involved in the random testing strategy, such as the choice of seed for a random number generator. The results provide insights into the effectiveness of random testing and a number of lessons for testing researchers and practitioners.

[1]  John Walter Gruner,et al.  Structural geology of the Knife Lake area of northeastern Minnesota , 1941 .

[2]  Catherine Oriat,et al.  Jartege: A Tool for Random Generation of Unit Tests for Java Classes , 2004, QoSA/SOQUA.

[3]  Bertrand Meyer,et al.  Reconciling Manual and Automated Testing: The AutoTest Experience , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[4]  Yannis Smaragdakis,et al.  JCrasher: an automatic robustness tester for Java , 2004, Softw. Pract. Exp..

[5]  Yong Lei,et al.  Tool support for randomized unit testing , 2006, RT '06.

[6]  I. K. Mak,et al.  Adaptive Random Testing , 2004, ASIAN.

[7]  Frank F. Grout,et al.  The Saganaga Granite of Minnesota-Ontario , 1929, The Journal of Geology.

[8]  Elaine J. Weyuker,et al.  Analyzing Partition Testing Strategies , 1991, IEEE Trans. Software Eng..

[9]  Richard Torkar,et al.  New quality estimations in random testing , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[10]  Richard G. Hamlet,et al.  Partition Testing Does Not Inspire Confidence , 1990, IEEE Trans. Software Eng..

[11]  Michael D. Ernst,et al.  Eclat: Automatic Generation and Classification of Test Inputs , 2005, ECOOP.

[12]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[13]  A. Lawson,et al.  Report on the geology of the Lake of the Woods region, with special references to the Keewatin (Huronian?) belt of the Archaean rocks , 1885 .

[14]  Tsong Yueh Chen,et al.  Quasi-Random Testing , 2005, IEEE Transactions on Reliability.

[15]  Marcelo d'Amorim,et al.  An Empirical Comparison of Automated Generation and Classification Techniques for Object-Oriented Unit Testing , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[16]  Koushik Sen,et al.  DART: directed automated random testing , 2005, PLDI '05.

[17]  A. Nier,et al.  Evidence for the Existence of an Isotope of Potassium of Mass 40 , 1935 .

[18]  Sarfraz Khurshid,et al.  Korat: automated testing based on Java predicates , 2002, ISSTA '02.

[19]  Tsong Yueh Chen,et al.  On the Relationship Between Partition and Random Testing , 1994, IEEE Trans. Software Eng..

[20]  R. Balk,et al.  Structural study of the Snowbank Stock , 1934 .

[21]  Bertrand Meyer,et al.  Object distance and its application to adaptive random testing of object-oriented programs , 2006, RT '06.

[22]  P. M. Jeffery,et al.  A contribution to the pre-Cambrian chronology of Australia , 1959 .

[23]  Stephen McCamant,et al.  Dynamic inference of abstract types , 2006, ISSTA '06.

[24]  Ilinca Ciupa,et al.  Automatic Testing Based on Design by Contract TM , 2005 .

[25]  Thomas P. Minka,et al.  Gates , 2008, NIPS.

[26]  Frank F. Grout,et al.  The Vermilion Batholith of Minnesota , 1925, The Journal of Geology.

[27]  Marat Boshernitsan,et al.  From daikon to agitator: lessons and challenges in building a commercial tool for developer testing , 2006, ISSTA '06.

[28]  Simeon C. Ntafos,et al.  An Evaluation of Random Testing , 1984, IEEE Transactions on Software Engineering.