Um algoritmo para geração de casos de teste combinatorial via matriz de cobertura com níveis variados

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Juliana Marino Balera
Orientador(a): Valdivino Alexandre de Santiago Júnior
Banca de defesa: Eduardo Martins Guerra, Luiz Eduardo Galvão Martins
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Instituto Nacional de Pesquisas Espaciais (INPE)
Programa de Pós-Graduação: Programa de Pós-Graduação do INPE em Computação Aplicada
Departamento: Não Informado pela instituição
País: BR
Resumo em Inglês: With respect to complex systems, such as software developed for space applications like satellites, stratospheric balloons and rockets, there are always risks related to product malfunctioning that can cause damage to the environment, great financial losses, or worse, loss of lives. To minimize these risks, the testing process of these systems must be rigorous and efficient. Since it is not possible to test such products exhaustively, given the wide range of possible test cases, it is critical, therefore, that there are available methods for the generation/selection of test cases which have great potential for defects detection and a reduced cost. In this direction, combinatorial designs have drawn attention of the software testing community to generate sets of smaller (lower cost to run) and efficient (ability to find software defects) test cases. Therefore, this master dissertation aims to present a new way for generating sets of test cases via combinatorial designs, where such test cases have a lower cost and efficiency comparable to solutions already existing in the literature. Then, an algorithm, called T-Tuple Reallocation (TTR), to generate software test cases via combinatorial designs, specifically via the Mixed-Level Covering Array technique (MCA) was developed. The main reasoning behind TTR is to derive an MCA M by creating and relocating t-tuples to the matrix M, considering a parameter called goal ($\zeta$). Two controlled experiments and one quasiexperiment were performed to compare TTR with four other well-known algorithms/tools that generate MCAs. In the first controlled experiment, version 1.1 of TTR was compared considering two cost perspectives: size of the test suites and time to generate the test suites. In addition, a similarity analysis was accomplished between these sets. In the second controlled experiment, an improved version of TTR, version 1.2, was compared with the same four previous algorithms/tools, but only in the cost perspective related to the size of the test suites and similarity analysis. Finally, a quasiexperiment aimed to assess the efficiency between TTR 1.2 and the other four solutions was carried out, via mutation testing and a space application case study. The conclusions of these three rigorous evaluations are that TTR was the algorithm that presented the better cost (smaller number of test cases to execute), but that there is no difference in efficiency between TTR and the other solutions. In addition, the test suites are not similar, comparing TTR with the other approaches. Thus, it can be asserted that the TTR algorithm was superior to the other algorithms/tools because it had the same efficiency but better cost.
Link de acesso: http://urlib.net/sid.inpe.br/mtc-m21b/2017/03.29.11.00.21
Resumo: Na perspectiva de sistemas complexos, como softwares desenvolvidos para aplicações espaciais tais como satélites, balões estratosféricos e foguetes, existem sempre riscos relacionados ao mau funcionamento do produto que podem causar danos ao meio ambiente, grandes perdas financeiras, ou o pior, perda de vidas. Para minimizar ao máximo esses riscos, é necessário que o processo de teste desses sistemas ocorra de forma rigorosa e eficiente. Como não é possível testar tais produtos exaustivamente, dada a larga gama de casos de teste possíveis, é fundamental, portanto, que se tenham disponíveis métodos para a geração/seleção de casos de teste que possuem grande potencial de revelação de defeitos, e que possuam custo reduzido. Nessa direção, designs combinatoriais vêm chamando atenção da comunidade de teste de software para gerar conjuntos de casos de testes menores (menor custo para executar) e eficientes (capacidade de encontrar defeitos no software). Diante disso, essa dissertação de mestrado tem como objetivo apresentar uma nova forma de gerar conjuntos de casos de teste via designs combinatoriais, sendo que tais casos de teste tenham custo menor e eficiência comparável à soluções já existentes na literatura. Então, um algoritmo, denominado T-Tuple Reallocation (TTR; Realocação de T-Tuplas), para gerar casos de teste de software via designs combinatoriais, especificamente via a técnica de Matriz de Cobertura com Níveis Variados (MCNV), foi desenvolvido. A ideia geral do TTR é derivar uma MCNV M por meio da criação e realocação de t-tuplas para a matriz M, considerando um parâmetro chamado meta ($\zeta$). Dois experimentos controlados e um quasiexperimento foram realizados para comparar o TTR com outros quatro algoritmos/ferramentas bastante conhecidos que geram MCNVs. No primeiro experimento controlado, comparou-se duas perspectivas de custo considerando a versão 1.1 do algoritmo TTR: tamanho das suites de teste e tempo para gerar as suites de teste. Além disso, realizou-se uma análise de similaridade entre esses conjuntos. No segundo experimento controlado, foi considerada uma versão melhorada do algoritmo TTR, versão 1.2, e comparou-se com os mesmos quatro algoritmos/ferramentas anteriores, mas considerando somente a perspectiva de custo relacionada ao tamanho das suites de teste e análise de similaridade. Por fim, um quasiexperimento foi realizado onde comparou-se a eficiência entre o TTR 1.2 e as outras quatro soluções, usando análise de mutantes e aplicando a um estudo de caso da área espacial. As conclusões dessas três avaliações rigorosas são que o TTR foi o algoritmo que apresentou melhor custo (menor quantidade de casos de teste para serem executados), mas que não há diferença de eficiência entre o TTR e as demais soluções. Além disso, as suites de teste não são similares, comparando o TTR com as outras soluções. Desse modo, pode-se afirmar que o TTR foi superior aos demais algoritmos/ferramentas pois teve mesma eficiência mas melhor custo.