A Multi-Objective Approach to Test Suite Reduction

Jorge Filipe da Silva Costa · Open Repository of the University of Porto (University of Porto) · 2015

Durante o processo de desenvolvimento de Software, o código precisa de ser alterado muitas vezes. Isto acontece porque os requerimentos podem ter mudado, os programadores podem precisar de corrigir uma falha, ou podem estar a melhorar a qualidade do código. Depois de cada alteração, o Software precisa de ser testado novamente para garantir que continua funcional. A este processo chamamos testes de regressão. Embora os testes de regressão sejam necessários para garantir qualidade no Software, eles são um processo dispendioso. Normalmente, quanto maior o numero de testes, mais tempo os testes demoram a correr - a maioria dos programadores não são produtivos durante esse tempo. Podemos assim concluir que o custo dos testes de regressão aumenta com o número de testes. Correr testes redundantes ou obsoletas que não aumentam a capacidade de deteção de falhas é um custo desnecessário. A comunidade científica está ciente deste facto. Vários métodos automatizados foram propostos para remover testes desnecessários (métodos de minimização). A maioria dos métodos propostos olham apenas a um objetivo - encontram o melhor subconjunto de testes que maximiza uma variável, normalmente a cobertura de código. Embora ter apenas um objetivo em conta possa dar bons resultados em alguns casos, para muitos outros não é isso que acontece. Por exemplo se o conjunto de testes for muito grande pode-se querer dar mais relevância a diminuir o conjunto de testes que à cobertura de código. Usar métodos que otimizam o conjunto de testes (Teste Suite) atendendo a vários objetivos (Multiobjectivo) durante o processo de minimização é mais adaptável às diferentes necessidades de minimização. Para além dos teste automatizados serem uteis a detetar falhas eles também podem ajudar na sua localização. Tal é possível recorrendo a técnicas automatizadas tais como SBFL ("Spectum Based fault Localization" ). A qualidade do diagnostico gerado depende da Teste Suite. Tanto quanto sabemos até ao momento não há abordagens multiobjectivo que tentam produzir teste suites minimizadas boas a localizar falhas. Segundo alguns autores da área sem ferramentas prontas a utilizar a adoção de técnicas de minimização vai permanecer limitada. Devido a isso, nós propomos uma ferramenta multiobjectivo de minimização de testes que também tenta a maximizar a capacidade de localização de falhas. Nos nossos testes empíricos, conseguimos em média reduzir o esforço em localizar uma falha em 31%, e concluímos com um grau de certeza de 95% que entre 77% e 100% das vezes a nossa abordagem produz um valor médio para o esforço de localizar uma falha menor que a abordagem multiobjectivo mais comum até agora.

Read the paper · More papers on PaperTik