PLEDGE - A Product Line EDitor and tests GEneration tool

1 Introduction

What is PLEDGE?

PLEDGE is a testing tool which allows generating and prioritizing products of a Software Product Line. It also allows loading and editing Feature Models.

Features

PLEDGE allows:
  • Loading a FM from a file. PLEDGE supports the SPLOT and DIMACS (Conjunctive Normal Form) formats,
  • Visualizing the FM information, like the constraints, the list of features or the type of each feature (mandatory, ...),
  • Editing the FM, by adding or removing constraints,
  • Generate the products to test from the FM, by specifying the number of products desired and the time allowed for generating them,
  • Save the generated products to a file,
  • Load an arbitrary list of products and prioritize them according to various prioritization techniques.

2 Usage

Starting Window

The main window contains a menu and tool bar located at the top of the window, to access to the functions of the , and a status bar located at the bottom of the window.

Fenêtre initiale

The Menu Bar

It contains 4 items :                  Menu

The File item allows:
  • Loading a Feature Model,
  • Loading an existing list of products,
  • Quitting the application.
                

The Execute item allows:
  • Generating the products to test from the Feature Model,
  • Prioritizing the products generated or loaded into the application,
  • Stopping the execution of the application,
  • Saving the generated/prioritized products to a file.
                

The Configuration item allows:
  • Specifying the generation technique,
  • Specifying the prioritization technique.
                

The Help item allows:
  • Opening this user guide,
  • Visualizing information about the version of the toolm
                

The Tool Bar

It contains 7 buttons which correspond to shortcuts to the main functionalities of the tool:                 

From left to right:
  • File -> Load a Feature Model
  • File -> Load Products
  • File -> Exit

  • Execute -> Generate products
  • Execute -> Prioritize products
  • Execute -> Stop the execution
  • Execute -> Save the products


The Status Bar

Localized at the bottom of the main window, it allows visualizing the current action performed by the tool.                 

Loading a Feature Model and Generating Products

PLEDGE supports the SPLOT and DIMACS (Conjunctive Normal Form) formats. After having loaded a Feature Model, the following window appears:


The upper part contains information related to the Feature Model, like the number of features, the number of constraints, ... the left part contains the list of constraints of the feature model, and the right part the constraints of the model. When requesting to generate products, the following window appears:



This configuration window contains the parameters to set for the products' generation: the number of products desired and the amount of time in seconds allowed for generating them. After validating the generation process and the generation over, the products appear in the bottom of the window. it contains, for each product, the features selected.



Products File Format

The format used by PLEDGE to represent products is the following. The first lines of the products file contain the features index (starting at 1) and its name with an arrow between them ("->"). The other lines represent the products (one line per products). For each product, its corresponding line contains the features indices separated by a semicolon, where a positive index represent a selected feature and a negative index an unselected feature. The order of the products indices is not important The following example contains three features and two products. The first product selects only the call feature while the second products selects all the features.

1->call
2->gps
3->bluetooth
1;-2;-3;
1;2;3;


Loading Products and Prioritizing them

After having loaded Products, the following window appears:


It contains the list of products and for each of them the features selected. After launching the prioritization, the list of products is updated.