Class AdvancedAetgSatAlgorithm


  • public class AdvancedAetgSatAlgorithm
    extends Object
    Implementation of the AETGSat variant of the AETG algorithm from "Constructing Interaction Test Suites for Highly-Configurable Systems in the Presence of Constraints: A Greedy Approach".

    The first step of generating a new test case is choosing a value for a single parameter. This value is chosen by taking the parameter-value pair that is contained in the most remaining uncovered t -way combinations. Subsequently, a random order of remaining parameters is chosen. These parameters are then iterated in this order, always greedily choosing a value so that the largest amount of additional combinations are covered. When all parameters are set, all contained combinations are marked as covered and the generation for the next test case can start. Once full coverage is reached all generated test cases are aggregated to a covering array. Because the size of this array heavily depends on the random parameter orders, this whole process is repeated for a fixed number times. In the end the covering array with the smallest number of test cases is selected.

    It also supports constraints by excluding invalid combinations from the covering array, as well as checking each test case with a SAT checker before adding it to the covering array.

    • Constructor Detail

      • AdvancedAetgSatAlgorithm

        public AdvancedAetgSatAlgorithm​(AetgSatConfiguration configuration)
        Constructor.
        Parameters:
        configuration - the configuration. It may not be null.
    • Method Detail

      • generate

        public List<int[]> generate()
        Generate a complete covering array.
        Returns:
        a list of test cases that cover all t-way combinations