Skip navigation
Use este identificador para citar ou linkar para este item: https://repositorio.ufpe.br/handle/123456789/1563
Título: EvolUniT: geração e evolução de testes de unidade em java utilizando algoritmos genéticos
Autor(es): SILVA, Davi Augusto Gadêlha
Palavras-chave: Automação; testes de unidade; Java; Algoritmos Genéticos
Data do documento: 31-Jan-2008
Editor: Universidade Federal de Pernambuco
Citação: Augusto Gadêlha Silva, Davi; de Almeida Barros, Flávia. EvolUniT: geração e evolução de testes de unidade em java utilizando algoritmos genéticos. 2008. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2008.
Resumo: Este trabalho apresenta a ferramenta EvolUniT (Evolutionary Unit Testing), uma ferramenta para automatização de testes de unidade de código orientado a objetos (classes Java). A EvolUniT recebe como entrada uma classe Java a ser testada; gera uma classe de teste usando o framework JUnit; gera dados (parâmetros de construtores e métodos) inicialmente aleatórios para compor os casos de teste; e utiliza um Algoritmo Genético (AG) para evoluir os dados, de acordo com uma função de aptidão criada com base nas coberturas de código capturadas. A evolução dos dados se dá através de sucessivas execuções da classe sendo testada, até que um número máximo de gerações do AG seja atingido ou que uma cobertura máxima pré-definida seja atingida. A ferramenta foi implementada em Java, em forma de plug-in do Eclipse. A ferramenta proporciona uma semi-automação de testes de unidade, ao invés de automação completa, pois em alguns casos, o engenheiro de software ou de testes precisará complementar manualmente as classes de teste geradas. A vantagem desta semiautomação é que o conhecimento do desenvolvedor ou testador será acrescido aos testes gerados pela ferramenta, possibilitando assim melhores resultados. Foram realizados três estudos para avaliar a EvolUniT, e os resultados alcançados foram satisfatórios. A EvolUniT traz contribuições para duas áreas diferentes. Para a Engenharia de Software, com a semi-automação do processo de testes de unidade, reduz-se significativamente o tempo e o esforço por parte dos desenvolvedores, já que estes passam a usar seus conhecimentos para configurar a ferramenta, ao invés de escrever as classes de teste. Para a área de Computação Inteligente, a contribuição é na utilização de uma técnica de otimização evolutiva, os Algoritmos Genéticos, para resolver o problema da escolha de bons dados para testes estruturais, que nem sempre é bem resolvido por algoritmos convencionais ou técnicas aleatórias
URI: https://repositorio.ufpe.br/handle/123456789/1563
Aparece na(s) coleção(ções):Dissertações de Mestrado - Ciência da Computação

Arquivos deste item:
Arquivo Descrição TamanhoFormato 
DAGS.pdf2,13 MBAdobe PDFVer/Abrir


Este arquivo é protegido por direitos autorais



Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.