AbstractThe paper presents a new and improved automated random testing technique named as Dirt Spot Sweeping Random (DSSR) strategy based on the rationale that, “when failures lies in the contiguous locations across the input domain, the effectiveness of random testing can be further improved through diversity of test cases”. The DSSR strategy selects neighboring values for the subsequent tests on identification of failure. Resultantly, selected values sweep around the failure leading to the discovery of new failures in the vicinity. To evaluate the effectiveness of DSSR strategy a total of 60 classes (35,785 lines of code), each class with 30 x 105 calls, were tested by Random (R), Random+ (R+) and DSSR strategies. T-Test analysis showed significantly better performance of DSSR compared to R strategy in 17 classes and R+ strategy in 9 classes. In the remaining classes all the three strategies performed equally well. Numerically, the DSSR strategy found 43 and 12 more unique failures than R and R+ strategies respectively. This study comprehends that DSSR strategy will have a profound positive impact on the failure- nding ability of R and R+ testing. Index TermsSoftware testing, automated random testing, ADFD. I. INTRODUCTION Chan et al. [1] discovered that there are sub-domains of failure-causing inputs across the input domain. They divided these into point, block and strip domains on the basis of their occurrence. Chen [2] found that altering the technique of test case selection could increase the performance of random testing. Moreover, he also found that the performance increased up to 50% when test inputs were selected evenly across the input domain. This was mainly attributed to the better distribution of input, which increased the chances of selecting inputs from failure domains. Based on the assumption that in a significant number of classes, failure domains are contiguous, the Dirt Spot Sweeping Random 1 strategy is devised to give higher priority to the failure domains for identification of new failures efficiently. The DSSR strategy is implemented in the York Extensible Testing Infrastructure (YETI) 2 , a random testing tool. To evaluate the effectiveness of DSSR strategy a total of 60 classes (35,785 lines of code) of 32 different projects from the Qualitas Corpus 3 , each class with 30 × 10 5 calls, were tested by R, R+ and DSSR strategies. This paper is organized as follows: Section II describes the Manuscript received February 5, 2014; revised April 9, 2014. Mian Asbat Ahmad and Manuel Oriol are with the Department of Computer Science, University of York, YO10 5DD, UK (e-mail: mian.ahmad@york.ac.uk, manuel.oriol@york.ac.uk). 1 The name refers to the cleaning robots strategy, which insists on places where dirt has been found in large amount. 2 http://www.yetitest.org 3 http://www.qualitascorpus.com DSSR strategy. Section III presents implementation of the DSSR strategy. Section IV explains the experimental setup. Section V reveals results of the experiments. Section VI discusses the results. Section VII presents related work and Section VIII concludes the study. II. DIRT SPOT SWEEPING RANDOM STRATEGY Dirt Spot Sweeping Random strategy combines the R+ strategy with a Dirt Spot Sweeping (DSS) functionality. It is based on two intuitions. First, boundaries have interesting values and using these values in isolation can provide high impact on test results. Second, failures reside in contiguous patterns. If this is true, DSS increases the performance of the test strategy. Before presenting the details of the DSSR strategy, it is pertinent to review briefly the R and the R+ strategy. A. Random Strategy (R) The random strategy is a black-box testing technique in which the SUT is executed using randomly selected test data. Test results obtained are compared to the defined oracle. The generation of random test data is comparatively cheap and does not require too much intellectual and computational effort [3]. It is mainly for this reason that various researchers have recommended R strategy in automated testing tools. YETI [4], AutoTest [5], Randoop [6] and Jartege [7] are some of the most common automated testing tools based on R strategy. Experiments performed by various researchers [8], [9], [10] have proved experimentally that random testing is simple to implement, cost effective, efficient and free from human bias as compared to its rival techniques. B. Random Plus Strategy (R+) The random+ strategy [5] is an extension of the R strategy. It uses some special pre-defined values which can be simple boundary values or values that have high tendency of finding failures in the SUT. Boundary values are the values in the start and end of a particular type [11]. For instance, such values for int could be MAX_INT, MAX_INT-1, MAX_INT-2, MAX_INT-3 0, MIN_INT, MIN_INT+1, MIN_INT+2, and MIN_INT+3. The tester might also add some other special values that are considered effective in finding failures in the SUT. This static list of interesting values is manually updated before the start of the test and has a high priority (10%) than selection of random values because of more relevance and better chances of finding failures. C. Dirt Spot Sweeping (DSS) Chan et al. [1] found that there are sub-domains of failure-causing inputs across the input domain. They divided these domains into three types called point, block and strip domains (Fig. 1) and argued that a strategy has more chances Dirt Spot Sweeping Random Strategy Mian Asbat Ahmad and Manuel Oriol Lecture Notes on Software Engineering, Vol. 2, No. 4, November 2014 294 DOI: 10.7763/LNSE.2014.V2.139