Dissertação
Test Case Prioritization Optimization with Machine Learning. A Case Study at BNP Paribas. EVALUATED
No contexto da engenharia de software, a Integração Contínua tornou-se numa etapa indispensável para a gestão sistemática dos ciclos de vida de desenvolvimento de software. Cada vez mais, grandes indústrias dispendem uma grande quantidade de recursos para manter o sitema atualizado e operacional, devido à grande quantidade de alterações e adição de funcionalidades, que se vão acumulando ao longo do tempo. Portanto, aplicar testes de software de maneira contínua e eficiente constitui uma componente-chave para assegurar a produção de software de qualidade. Ao selecionar os testes mais promissores, o tempo entre comunicar uma alteração e receber feedback é reduzido, aumentando a produtividade e reduzindo custos. Para melhorar a eficiência, foram desenvolvidos dois algoritmos. Primeiramente, estendemos a investigação da aplicação de Reinforcement Learning para otimizar estratégias de testagem. Tendo sido comprovado que esta constituiu uma estratégia tão profícua quanto os métodos tradicionais. Testámos a sua capacidade de adaptação a novos ambientes, utilizando um novo conjunto de dados, proveniented do setor financeiro. Além disso, estudámos o impacto da implementação de um novo modelo competitivo para representação de memória: Árvores de Decisão. Embora sem produzir melhorias significativas em relação às Redes Neuronais. Numa segunda fase, criámos o NNE-TCP, um modelo original que analisa ficheiros modificados numa dada alteração, quando ocorre uma transição do estado de um teste. O algoritmo aprende uma relação entre as duas entidades, mapeando-as em vetores multidimensionais, e agrupando-as por similaridade. Quando novas alterações são efetuadas, os testes com maior probabilidade de serem vinculados aos ficheiros modificados são prioritizados.
janeiro 7, 2021, 14:0
Publicação
Obra sujeita a Direitos de Autor