Dissertação

{en_GB=Analysis of the behavioral impact of code modifications} {} EVALUATED

{pt=Uma revisão de código é o processo de rever modificações de código com o objectivo de reduzir o risco de introduzir uma regressão (também conhecido como "pull request" no GitHub). Historicamente, o processo de revisão é baseado na análise das mudanças textuais do código e do estado da execução dos testes (integração contínua). Com este projecto, explorámos uma nova forma de rever modificações de código olhando para o impacto que estas têm na execução do sistema. Para este efeito, implementámos um novo sistema - Code Review Helper que, corre um pull request do GitHub e compara-a à versão estável do projecto, analisando o seu impacto na execução do sistema, e apresentado a informação mais relevante para ajudar no processo de revisão de código. Esta informação está relacionada com a cobertura das linhas alteradas pelo pull request que está a ser analisado, as mudanças introduzidas à cobertura noutras áreas do projecto, flame graphs para visualizar traces de execução do software, e tempos de teste que permitem identificar possíveis abrandamentos de performance (ou possíveis melhorias). Para avaliar a eficácia da nossa ferramenta, pedimos a um grupo de utilizadores para a utilizarem numa revisão de código e perguntámos-lhes como é que as nossas views se comparam às que existem no GitHub, com resultados maioritariamente positivos, principalmente em relação à informação relacionada com cobertura e tempo de execução dos testes. , en=Code reviewing is the process to review code modifications by a peer in order to reduce the risk of regression (also known as a "pull request" in GitHub). Historically, the review process is based on the analysis of textual change of the code and the status of the execution of the tests (continuous integration). With this project, we explored a new way to review the code modifications by looking at the execution impact that the code modifications have on the system. To accomplish this, we implemented a tool - Code Review Helper - that takes a pull request from GitHub, runs it and compares it to the stable version of the project, analysing its impact on the system's execution, and presents the most relevant information in order to assist the reviewer in the review process. This information is related to the coverage of the lines altered by the pull request we are analysing, the changes introduced to the coverage of other areas of the project, flame graphs to visualize execution traces of the software, and test times in order to identify possible performance slowdowns (or possible improvements). To assess the effectiveness of our tool, we asked a group of users to perform a code review using our tool and asked them how our views compare to the ones currently available on GitHub, with mostly positive results, especially regarding the use of code coverage and test times information in their code review.}
{pt=Pull Request, Revisão de Código, Modificação de Código, GitHub, en=Pull Request, Code Review, Code Modification, GitHub}

Outubro 7, 2020, 18:0

Orientação

ORIENTADOR

Rui Filipe Lima Maranhão de Abreu

Faculdade de Engenharia da Universidade do Porto

Professor Catedratico