Class IpogAlgorithm


  • public class IpogAlgorithm
    extends java.lang.Object
    An implementation of the popular IPOG algorithm. For given configuration it generates a test suite so that for each t-value-combination there is a test input containing it. This means IPOG create a t-way-testing suite. Some improvements from "An Efficient Design and Implementation of the In-Parameter-Order Algorithm" were used.

    The algorithm was extended to offer support for constraints, dynamic parameter orders, and variable strength testing. To introduce parameter orders, the strategy pattern is used with ParameterOrder, and the same is done for variable strength testing via ParameterCombinationFactory.

    • Constructor Summary

      Constructors 
      Constructor Description
      IpogAlgorithm​(IpogConfiguration configuration)
      Creates a new algorithm for the given configuration.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.util.List<int[]> buildInitialTestSuite​(it.unimi.dsi.fastutil.ints.Int2IntMap allParameters, int[] initialParameters)  
      protected CoverageMap constructCoverageMap​(int nextParameter, it.unimi.dsi.fastutil.ints.Int2IntMap allParameters, java.util.List<it.unimi.dsi.fastutil.ints.IntSet> parameterCombinations)  
      java.util.List<int[]> generate()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • IpogAlgorithm

        public IpogAlgorithm​(IpogConfiguration configuration)
        Creates a new algorithm for the given configuration. After this, the generate() method can be used to generate the test suite satisfying the configuration.
        Parameters:
        configuration - information about what test suite should be generated by IPOG. Must not be null
        Throws:
        java.lang.NullPointerException - if configuration is null
    • Method Detail

      • generate

        public java.util.List<int[]> generate()
      • buildInitialTestSuite

        protected java.util.List<int[]> buildInitialTestSuite​(it.unimi.dsi.fastutil.ints.Int2IntMap allParameters,
                                                              int[] initialParameters)
      • constructCoverageMap

        protected CoverageMap constructCoverageMap​(int nextParameter,
                                                   it.unimi.dsi.fastutil.ints.Int2IntMap allParameters,
                                                   java.util.List<it.unimi.dsi.fastutil.ints.IntSet> parameterCombinations)