Nowadays, it is mandatory to test the functionality of any software component. In this sense, Covering Arrays (CAs) have been used as test-suites to exercise combinations of parameters’ values. However, in some software components, the functionality depends not only on the combination of parameters’ values but also on how the parameters’ values are fed to a software component. Therefore, the need to use sequence coverage arrays (SCAs) to test the order in which the input parameters are defined in a software component naturally arises. The combined use of CAs and SCAs allows the creation of test-suites that exercise the functionality of software components, taking into account the combination of parameters’ values and the order in which these combinations are used. In this paper, three applications of SCAs will be presented. The first application is related to testing the functionality of a water filtering process and only one SCA is required. The second application combines an SCA with a CA to test a user interface of a software component. The third application refers to the construction of wetlands for water bioremediation using a mixed covering array (MCA) and a sequence covering array. The coverage of an SCA is determined by its strength (i.e., the size of the subsequences of variables covered at least once). We present a 3-stage approach to construct SCAs for strengths t∈{3,4,5,6,7,8}. The stages of our approach are a greedy stage that builds an initial SCA one row at-a-time; a post-optimization stage that involves an algorithm for the detection of redundant elements and an algorithm that aims to reduce the cardinality of an SCA, and a metaheuristic stage that is implemented using a simulated annealing algorithm. Relevant computational results are 502 new upper bounds (178 cases for t=3, 177 cases for t=4, 88 cases for t=5, 43 cases for t=6, 12 cases for t=7, and 4 cases for t=8). Also we have compared the performance of our approach with 12 algorithms using a known benchmark consisting of 101 cases, our approach wins in 69 cases (18 cases for t=3, 24 cases for t=4, 24 cases for t=5, and 3 cases for t=6).
Read full abstract