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.