Dissertação

{en_GB=Applying Multi-Objective Test Selection for Continuous Integration at OutSystems} {} EVALUATED

{pt=A realização de testes de regressão exaustiva sempre que uma alteração ocorre em grandes sistemas de software tende a ser inviável, uma vez que leva muito tempo para executar todos os casos de teste. A principal motivação deste trabalho é fornecer um ciclo de feedback mais curto e mais cedo aos programadores quando uma alteração é feita, em vez de esperar pelo feedback atualmente mais lento da execução do pipeline de Continuous Integration. A técnica desenvolvida e ferramenta, MOTSD, implementa uma abordagem de seleção de testes multi-objetivo para código C#. O MOTSD usa um algoritmo de otimização de enxame de partículas para procurar seleções relevantes e usa uma métrica de diagnosabilidade de suites de testes e métricas históricas como objetivos. São apresentados vários desafios de implementação relacionados com a recolha de dados de cobertura e integração com sistemas externos. Quando comparado com seleções aleatórias, o MOTSD é capaz de corresponder em termos de capacidade de selecionar testes com falha, além de fornecer, em pelo menos 25% dos commits, seleções que eram, em média, 93% menores e 76% mais rápidas de executar. Além disso, o impacto de commits inocentes nos resultados e a relevância de outros dados, como o tamanho da alteração ao código, foram estudados para entender o contexto industrial dos OutSystems., en=Performing exhaustive regression testing whenever a change occurs in large software systems tends to be unfeasible as it takes too long to run all the test cases. The main motivation of this work is to provide a shorter and earlier feedback loop to developers when a change is made, instead of having to wait for the currently slower feedback from a Continuous Integration pipeline execution. The developed technique and tool, MOTSD, implements a multi-objective test selection approach for C# codebases. MOTSD uses a particle swarm optimization algorithm to search for relevant selections and uses a test suite diagnosability metric and historical metrics as objectives. Several implementation challenges related to coverage data collection and integration with external systems are presented. When compared with random selections, MOTSD is able to match in terms of ability to select failing tests while also providing, in at least 25% of the commits, selections that were, on average, 93% smaller and 76% faster to execute. Additionally, the impact of innocent commits in the results and the relevance of other features like code change size was studied to understand the industrial context of OutSystems.}
{pt=seleção de testes, multi-objetivo, diagnosabilidade, tempo de feedback, continuous integration, optimização por enxame de partículas, en=test selection, multi-objective, diagnosability, feedback time, continuous integration, particle swarm optimization}

Novembro 14, 2019, 18:0

Orientação

ORIENTADOR

Rui Filipe Lima Maranhão de Abreu

Departamento de Engenharia Informática (DEI)

Professor Associado