Please use this identifier to cite or link to this item: https://hdl.handle.net/10316/102992
DC FieldValueLanguage
dc.contributor.advisorMadeira, Henrique Santos do Carmo-
dc.contributor.advisorCarvalho, Paulo Fernando Pereira de-
dc.contributor.authorCruz, José Pedro Luz de Sousa-
dc.date.accessioned2022-10-17T22:02:43Z-
dc.date.available2022-10-17T22:02:43Z-
dc.date.issued2022-09-22-
dc.date.submitted2022-10-17-
dc.identifier.urihttps://hdl.handle.net/10316/102992-
dc.descriptionDissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia-
dc.description.abstractCode 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.eng
dc.description.abstractA 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.por
dc.language.isoeng-
dc.rightsopenAccess-
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/-
dc.subjectDados biométricospor
dc.subjectRevisão de códigopor
dc.subjectCompreensão de códigopor
dc.subjectLeitura da carga cognitivapor
dc.subjectFerramenta inovadorapor
dc.subjectBiometricseng
dc.subjectCode revieweng
dc.subjectCode comprehensioneng
dc.subjectCognitive load assessmenteng
dc.subjectInnovative tooleng
dc.titleAN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACKeng
dc.title.alternativeUma ferramenta inteligente para avaliação de revisões de código usando biofeedbackpor
dc.typemasterThesis-
degois.publication.locationDEI - FCTUC-
degois.publication.titleAN INTELLIGENT TOOL FOR CODE REVIEW QUALITY EVALUATION USING BIOFEEDBACKeng
dc.peerreviewedyes-
dc.identifier.tid203077938-
thesis.degree.disciplineInformática-
thesis.degree.grantorUniversidade de Coimbra-
thesis.degree.level1-
thesis.degree.nameMestrado em Engenharia Informática-
uc.degree.grantorUnitFaculdade de Ciências e Tecnologia - Departamento de Engenharia Informática-
uc.degree.grantorID0500-
uc.contributor.authorCruz, José Pedro Luz de Sousa::0000-0001-6576-9820-
uc.degree.classification18-
uc.degree.presidentejuriAraújo, Filipe João Boavida Mendonça Machado de-
uc.degree.elementojuriMadeira, Henrique Santos do Carmo-
uc.degree.elementojuriArrais, Joel Perdiz-
uc.contributor.advisorMadeira, Henrique Santos do Carmo-
uc.contributor.advisorCarvalho, Paulo Fernando Pereira de-
item.openairetypemasterThesis-
item.fulltextCom Texto completo-
item.languageiso639-1en-
item.grantfulltextopen-
item.cerifentitytypePublications-
item.openairecristypehttp://purl.org/coar/resource_type/c_18cf-
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 simple item record

Google ScholarTM

Check


This item is licensed under a Creative Commons License Creative Commons