Skip to content

GASSER implements the Test Suite Reduction with Genetic Algorithm by maximizing both statement coverage, diversity of test cases, and minimizing the size of the reduced test suites.

License

Notifications You must be signed in to change notification settings

ccoviello/gasser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GASSER

Watch the video

A screencast of GASSER in action.

GASSER (Genetic Algorithm fot teSt SuitEReduction) implements a Genetic Algorithm (GA) Based approach for Test Suite Reduction and a number of instances of the process underlying this approach. The goal of GASSER is to reduce the original Test Suites by identify reduced Test Suites which maximize both statement coverage and test-case-statement-coverage diversity, while minimize the number of test cases. To pursue such a threefold objective GASSER, starting from initial randomly created reduced Test Suites, improves them by the use of GA (namely NSGAII). In particular, at each iteration a fitness function is computed for each Test Suite based on three objectives:

  • statement coverage;
  • test-case-statement-coverage diversity (or simply test-case diversity);
  • test suite size.

To estimate the test-case diversity, GASSER considers a number of measure (e.g., Hamming Distance), each of them represents a GASSER instance. Then the fittest reduced Test Suites are selected to define new better reduced Test Suites by the use of genetic operators (i.e., mutation and crossover).

Environment

Running GASSER

  • To run GASSER.jar you have to open a Console in the GASSER folder and type:

java –jar it.unibas.baselab.gasser_xxxx.jar

  • Now follow the instructions provided by the tool that will allow you to complete the GASSER configuration (e.g., coverage file path, dissimilarity measure, maxEvaluations value and maxPopulationSize value).

In particular:

  1. Dissimilarity file path: If you have a file with the test cases dissimilarity matrix, GASSER will ask you for its complete path (.csv file);
  2. Dissimilarity measure: if you do not have the test cases dissimilarity matrix, GASSER will ask you which one (among all of those possible) you want to use (see Figure 2). GASSER will compute this information on the fly during its execution;
  3. Coverage file path: the complete path of the test cases statement coverage XML file;
  4. SUT name: The name of your System Under Test;
  5. maxPopulationSize and maxEvaluations: The possibility to change the value for maxPopulationSize (100 is the default value) and maxEvaluations (1000 is the default value).
  • Wait the GASSER execution end and enjoy your result files: POPULATION_SUT name.tsv and COMPLETE_SOLUTION_SUT name.tsv

About

GASSER implements the Test Suite Reduction with Genetic Algorithm by maximizing both statement coverage, diversity of test cases, and minimizing the size of the reduced test suites.

Topics

Resources

License

Stars

Watchers

Forks

Languages