AI+RTESTING: remoção de redundâncias de conjuntos de casos de teste a partir de dados de execução do teste de mutação
Data
Autores
Orientador
Título da Revista
ISSN da Revista
Título de Volume
Editor
Resumo
Um software evolui ao longo do tempo de vida, essa evolução acontece através da adição de novos requisitos ou realização de manutenções. No sentido de evitar a introdução de defeitos em decorrência de alterações no software é utilizado o Teste de Regressão. A atividade de Teste de Regressão consome um tempo considerável do total do desenvolvimento do software, aumentando o seu custo. Um dos fatores determinantes para o custo são as atividades executadas manualmente. Para contornar esse problema e apoiar a atividade de teste de regressão, muitas metodologias têm sido propostas visando reduzir o tempo despendido na atividade. Muitas dessas metodologias utilizam técnicas de aprendizado de máquina, as quais relacionam as informações coletadas durante a atividade de teste para identificação de casos de teste com comportamentos similares. Essas técnicas comumente permitem a geração de regras que podem ser aplicadas para a redução do conjunto de casos de teste. A redução é capaz de diminuir significativamente o tempo do teste de regressão, pois exclui permanentemente os casos de teste redundantes. O objetivo deste trabalho consiste em aplicar a metodologia proposta no projeto de pesquisa AI+RTesting definida pelo professor Alexandre Rafael Lenz para apoiar a redução do conjunto de casos de teste, a partir da implementação de uma ferramenta que automatize esse processo para programas escritos na linguagem Java em nível de método, ou seja, cobrindo o teste de unidade, com intuito de reduzir o tempo gasto na atividade de teste de regressão. A nova ferramenta integra o teste estrutural apoiado com a ferramenta Jabuti e o teste baseada em erros apoiado pela ferramenta Mujava. Junto com a API WEKA, adicionada a nova ferramenta para gerar os agrupamentos que possibilitam a aplicação de algoritmos de classificação para geração de regras, permitindo classificar as classes de equivalência em ordem de prioridade. Os resultados obtidos com os experimentos realizados na fase de validação demonstraram que o método baseado em PG é capaz de remover redundâncias, mostrando maior eficiência em programas mais simples, como observado quando aplicado no método MDC. Em comparação a programas mais complexos, que é o caso do segundo método testado, os resultados apresentados, demonstram que o método baseado em PG não consegue realizar a remoção de forma eficiente, devido a quantidade elevada de redundâncias encontradas. Para atingir resultados mais precisos, sugere-se a definição de uma metodologia que consiga realizar uma redução mais significativa que a apresentada utilizando a progressão geométrica, assim como a utilização de informações coletadas durante a atividade do teste estrutural devido à complementariedade das técnicas de teste de software.