AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK

Bibliographic Details
Main Author: Cruz, José Pedro Luz de Sousa
Publication Date: 2022
Format: Master thesis
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: https://hdl.handle.net/10316/102992
Summary: Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
id RCAP_83ba02a53e45fe70a4ec1a0cf5fa28fa
oai_identifier_str oai:estudogeral.uc.pt:10316/102992
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACKUma ferramenta inteligente para avaliação de revisões de código usando biofeedbackDados biométricosRevisão de códigoCompreensão de códigoLeitura da carga cognitivaFerramenta inovadoraBiometricsCode reviewCode comprehensionCognitive load assessmentInnovative toolDissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e TecnologiaCode 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.2022-09-22info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttps://hdl.handle.net/10316/102992https://hdl.handle.net/10316/102992TID:203077938engCruz, José Pedro Luz de Sousainfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2022-10-19T20:36:13Zoai:estudogeral.uc.pt:10316/102992Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-29T05:52:34.644881Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
Uma ferramenta inteligente para avaliação de revisões de código usando biofeedback
title AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
spellingShingle AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
Cruz, José Pedro Luz de Sousa
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
title_short AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
title_full AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
title_fullStr AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
title_full_unstemmed AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
title_sort AN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACK
author Cruz, José Pedro Luz de Sousa
author_facet Cruz, José Pedro Luz de Sousa
author_role author
dc.contributor.author.fl_str_mv Cruz, José Pedro Luz de Sousa
dc.subject.por.fl_str_mv 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
topic 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
description Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
publishDate 2022
dc.date.none.fl_str_mv 2022-09-22
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://hdl.handle.net/10316/102992
https://hdl.handle.net/10316/102992
TID:203077938
url https://hdl.handle.net/10316/102992
identifier_str_mv TID:203077938
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833602503617282048