Please use this identifier to cite or link to this item: https://hdl.handle.net/10316/102992
Title: AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
Other Titles: Uma ferramenta inteligente para avaliação de revisões de código usando biofeedback
Authors: Cruz, José Pedro Luz de Sousa
Orientador: Madeira, Henrique Santos do Carmo
Carvalho, Paulo Fernando Pereira de
Keywords: Dados biométricos; Revisão de código; Compreensão de código; Leitura da carga cognitiva; Ferramenta inovadora; Biometrics; Code review; Code comprehension; Cognitive load assessment; Innovative tool
Issue Date: 22-Sep-2022
Serial title, monograph or event: AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
Place of publication or event: DEI - FCTUC
Abstract: Code Review is a powerful tool to ensure high software quality by detecting bugs and providing feedback. Producing high-quality software requires productive developers and attentive code reviewers to ensure the quality of their work. Studies show that developers produce 70 bugs for every 1000 lines of code, and 75\% of a developer's time is spent on debugging. Yet, how can we ensure a good code review quality before the code is finally released? Modern code review became more lightweight and individual-reliant (does not need structured group meetings). Typically, one reviewer performs code reviews using platforms and tools like GitHub and GitLab. However, these tools do not evaluate the code review quality based on an individual's attributes (e.g., cognitive state). Changes in the reviewer's cognitive state due to difficulties in understanding the code under review or stress and distraction might affect the quality of the review. Therefore, this thesis introduces an intelligent tool that evaluates the code review quality by using non-intrusive biofeedback devices (i.e., smartwatches) that assess the code reviewer's cognitive state (engagement level). The tool uses a desktop eye-tracker, compatible with the software development environment, to identify regions where the code regions have not been well-reviewed, thus advising a second review. Biometric features extracted from smartwatches such as Heart Rate Variability (HRV) and Electrodermal Activity (EDA) and other features such as complexity of the code under review, review time, and the number of revisits to that region are the input of the Machine Learning (ML) model. The ML model classifies each code region as either well or poorly reviewed with a pointer to the badly reviewed code regions. This tool is expected to help software companies improve code review quality and train new code reviewers on best code review practices.
A revisão de código é um processo muito importante na garantia de alta qualidade de um Software. Estudos indicam que em cada 1000 linhas de código escritas por desenvolvedores de software, existam 70 bugs e que em média 75\% do tempo investido em desenvolvimento é utilizado a realizar debugging de código. Desenvolver um bom software requer uma boa equipa de desenvolvedores produtivos e uma boa equipa de revisionadores para garantir a qualidade do software. Ainda assim, como podemos garantir que os testes de qualidade de software são realizados com qualidade antes do software ser lançado? Estudos anteriores mostram várias ligações entre características biométricas e o estado emocional e cognitivo em tempo real, que permite a recolha de informações acerca das diversas emoções e estados cognitivos pelas quais o indivíduo em causa experiencia. Sendo as revisões de código a última barreira anterior ao lançamento do produto, estes desempenham um papel muito importante na prevenção de bugs do mesmo. Assim, o processo de revisão de código essencial para a garantia de qualidade do software.O processo de revisão consiste na análise individual do código desenvolvido. Sendo a revisão em si tão dependente da pessoa que a está a rever, tornou-se assim mais "leve" e dependente, no sentido em que o revisor que a faz pode fazê-lo no seu tempo sem a necessidade de se reunir com outros revisores ou membros da equipa. Como podemos assim, assegurar que o revisor está nas suas melhores condições mentais e cognitivas para poder assegurar qualidade na sua revisão? Para este propósito, introduzimos sensores não-intrusivos capazes de fornecer feedback acerca das características biométricas identificadas no revisor durante a revisão, para que seja possível medir a sua dedicação (a nível de atenção, distrações, dificuldades etc) durante a tarefa. Nesta tese utilizamos um eye-tracker que permite obter a região para onde o revisor está a olhar, associando assim determinadas características biométricas a diferentes regiões do código e um smartwatch, que nos permite obter leituras de outras características biométricas.Utilizando essas mesmas características biométricas (i.e. HRV, EDA e eye-tracking) e não-biométricas (i.e. complexidade do código, nível de experiência, revisitas e tempo de revisão), que contêm uma ligação ao estado cognitivo, já provado por estudos anteriores, o nosso objetivo é apresentar uma solução não-invasiva de baixo custo capaz de aceder à estado cognitivo do revisor, que vai permitir medir o nível de dedicação do mesmo à revisão. Os dados obtidos através dos sensores vão permitir que o revisor obtenha feedback sobre as regiões que já reviu, podendo assim caso seja necessário voltar a rever certas regiões ou não.Nesta tese apresentamos todo o processo de desenvolvimento da ferramenta que nos permitiu fornecedor feedback ao revisor utilizado dados biométricos e não-biométricos.
Description: Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
URI: https://hdl.handle.net/10316/102992
Rights: openAccess
Appears in Collections:UC - Dissertações de Mestrado

Files in This Item:
File Description SizeFormat
FinalThesis_JoseCruz_05-09-2022.pdf3.89 MBAdobe PDFView/Open
Show full item record

Page view(s)

29
checked on Feb 27, 2024

Download(s)

38
checked on Feb 27, 2024

Google ScholarTM

Check


This item is licensed under a Creative Commons License Creative Commons