Anytime optimization of pairwise covering set for feature models

Main author: A. Hervieu (INRIA Rennes Bretagne Atlantique) 

Co-authors: B. Baudry and A. Gotlieb (INRIA Rennes Bretagne Atlantique) 


What is Pacogen ?

The Pacogen tool allows the generation of minimal-sized set of configurations ensuring the pairwise covering of a feature model. Pairwise testing is a well-known testing approach that requires every pair of input parameters to be considered in a test set. Applying this testing criterion to feature models is not difficult: it suffices to consider each pair of possible feature to be included in a set of test configurations, valid for the feature model. An interesting feature of the tool is its ability to provide a near-optimal result in a given amount of time. The robustness of Pacogen has been tested on several feature models that are publicly available on the SPLOT website.

Requirements and License

The tool is distributed as a 32-bits or 64-bits binary executable for Linux.
Pacogen is released as Free software, under the CeCILL-C license.
The tool is distributed as is, without any warranty of any kind. Installing and using the tool can be done at its own risks.

Downloading and using the tool

32-bits binary executable for Linux  --  64-bits binary executable for Linux

Pacogen V2 - Github sources

To launch the tool use this command :

./Pacogen_Launcher.perl InputModel TimeMinization Size

- InputModel: File describing the feature model, it reads xmi files or text file which contains a textual description of the feature model.
- Size: the internal size of the matrix to be used to generate pairwise covering test sets
- TimeMinimization: the maximum time allocated to the generation (in ms). '_' will return the first solution without minimization.

Experimental results

Textual description of the model

The textual description of the model is composed of two list, separated by a ";". First list contain the list of all the feature, separated by a ",", in upper cases. The second list describe the relationships between all those features.
Relationships are described like this : and(ROOT,[Children list]).
Actually there are 6 operators :
and(ROOT,[Children list]).
or(FATHER,[FT1 ,FT2])
xor(FATHER,[FT1 ,FT2])
optionnal(FATHER,[FT1 ,FT2])
require(FT1 ,FT2)
mutex([FT1 ,FT2])

For the solving process the value of the root node as to be set at 0.

Traduction example :



Resolving Process


2013, , , :
Practical pairwise testing for software product lines. SPLC : 227-235

2012, , :
Minimum Pairwise Coverage Using Constraint Programming Techniques.
ICST : , , :
Managing Execution Environment Variability during Software Testing: An Industrial Experience. ICTSS : , , :
PACOGEN: Automatic Generation of Pairwise Test Configurations from Feature Models. ISSRE : 120-129

2010 A. Hervieu "Using constraint model to generate automatically pairwise test set for feature diagrams"   INSA's Internship report -- June 2010