This page provides the Java source code developed for the following paper:

 

Ali Shahbazi, Andrew F. Tappenden, and James Miller, “Centroidal Voronoi Tessellations — a New Approach to Random Testing,” IEEE Transactions on Software Engineering, 2012.

 

Licence: The source codes are provided free of charge for research proposes only. To acquire a commercial license please contact the authors.

Disclaimer: The software is provided on an “as is” basis for research purposes. There is no additional support offered, nor are the author(s) or their institutions liable under any circumstances.

 

Part 1: Datasets

Generated data sets for the simulation experiments for RT, FSCS (other name: DART), RRT and EAR: DataSet

 

Part 2: Source code

All the source codes required to run the simulation framework: source  (It also includes NetBeans project files)

Note: You need to replace the “DataFile” parameter in the source code (MainClass.java) with the address of the downloaded and unzipped dataset.

Note: For the mutant based software testing framework, we utilized the Briand and Arcuri framework which is based on 11 short mathematical programs. They produced 3,727 mutants for the 11 programs using muJava. We cannot provide the source code for these programs and corresponding mutations since it is not our source code.

 

Part 3: A short description of the source code

Adaptive Random Testing (ART)

·         Fixed Size Candidate Set (FSCS) (other name: DART):  DART.java

·         Restricted Random Testing (RRT):  RRT.java

·         Evolutionary Adaptive Random Testing (EAR):  EAR.java

Random Testing (RT): Java native pseudo-random class (Java Random class) is utilized to generate RT.

Quasi-Random Testing (QRT): Martingale stochastic library (martingale-1.0) has been used to generate the Sobol, Halton, and Niederreiter quasi-random sequences.

Note: We have developed a Java class namely ERandom to simplify generating RT and QRT d-dimensional test cases.

RBCVT:  RBCVT.java, SpacialSearchNotOpt.java

RBCVT-Fast: RBCVTFast.java, SpacialSearch2.java

 

TestMeasure.java: This Java class can generate a failure pattern (Block, Strip, or Point) and test it against the input test cases. The output can be P-measure, F-measure, or E-measure.

MainClass.java: A sample code for running the simulation framework.