FaMa Test Suite

FaMa Test Suite is a set of implementation-independent test cases to validate the functionality of tools supporting the analysis of feature models. Through the implementation of these test cases, faults can be rapidly detected improving the reliability and quality of FM analysis tools. For its design and evaluation, popular techniques from the software testing community were used. For more details, have a look here.

How can I use FaMa Test Suite?

Test cases included in FaMa Test Suite are mainly inputs-outputs combinations specifically designed to reveal failures in the implementation of analysis operations on feature models. You simply need to implement our test cases in the desired language/platform and execute them.

Why using FaMa Test Suite?

Some reasons for using FaMa Test Suite are:

  • It is implementation-independent. Test cases included in the suite are designed in terms of the inputs and outputs of the analysis operations.
  • It is a handy and efficient mechanism to assess the functionality of your analysis tools. The execution of the whole suite takes around one minute.
  • It may used to show the quality of your analysis solutions to the community.

Which analysis operation can be tested using FaMa Test Suite?

Current version of FaMa Test Suite can be used to validate the functionality of the following analysis operations:
Questions represent analysis operations that we can apply over a feature model.

OperationDescription
Valid This operation takes a feature model as input and returns a value informing whether such feature model is void or not. A feature model is void if it represents no products.
Valid product This operation checks whether an input product (i.e. set of features) belongs to the set of products represented by a given feature model or not.
ProductsThis operation takes a feature model as input and returns all the products represented by the model.
Number of products This operation returns the number of products represented by a feature model.
VariabilityThis operation takes a feature model as input and returns the ratio between the number of products and 2n-1 where n is the number of features in the model.
CommonalityThis operation takes a feature model and a feature as inputs and returns a value representing the proportion of valid products in which the feature appears.
Detect errors
This operation takes a feature model as input and returns a set of dead features (if any). A dead feature is a feature that never appears in any of the products represented by the feature model.

Downloads

Has your implementation passed all the test cases of FaMa Test Suite?. Show it to the community with the FaMa Test Suite logo: