Dissertação
Supervised learning for Test Suit Selection in Continuous Integration EVALUATED
Continuous Integration é o processo de juntar as alterações de código dentro de um projeto de software. Este mecanismo de manutenção da branch mestre de um projeto sempre atualizada e sem falhas, levanta problemas em termos de custos computacionais, considerando a enorme quantidade de código existente em grades sistemas de software que necessita de ser testada. Dada esta situação, o trabalho dos trabalhadores torna-se mais difícil, dada a quantidade de tempo que estes têm de esperar pelo feedback das suas alterações no código - média de 1 hora na OutSystems. Reconhecendo este problema num contexto da OutSystems, esta dissertação propõe uma solução, que tenta reduzir o tempo de execução da fase de testes, selecionado apenas uma parte de todos os tests, dada uma determinada mudança no código. Isto é cumprido através do treino de um Classificador de Machine Learning com features como histórico de falhas de ficheiro de código/teste, extensão de códigos de ficheiro e outros. Os resultados obitdos pelo melhor Classificador de Machine Learning treinado mostra resultados muito bons, comparáveis à mais recente literatura na mesma área. Este classificador conseguiu reduzir o tempo mediano de execução de testes por 10 minutes, mantendo 97% de recall. Adicionalmente, o impacto de submissões de código inocentes e testes flaky é considerado e estudado de forma a perceber o contexto industrial da OutSystems.
janeiro 28, 2021, 9:0
Publicação
Obra sujeita a Direitos de Autor
Orientação
ORIENTADOR
Rui Filipe Lima Maranhão de Abreu
Departamento de Engenharia Informática (DEI)
Professor Associado
ORIENTADOR
Manuel Fernando Cabido Peres Lopes
Departamento de Engenharia Informática (DEI)
Professor Associado