Use este identificador para citar ou linkar para este item:
http://www.repositorio.ufal.br/jspui/handle/riufal/6146
Tipo: | Dissertação |
Título: | Developer´s assumptions on identifying bug-introducing changes |
Título(s) alternativo(s): | Premissas dos Desenvolvedores na Identificação de Mudanças que Introduzem Bugs |
Autor(es): | Souza, Jairo Raphael Moreira Correia de |
Primeiro Orientador: | Santos Neto, Baldoino Fonseca dos |
metadata.dc.contributor.referee1: | Ribeiro, Márcio de Medeiros |
metadata.dc.contributor.referee2: | Pinto, Gustavo Henrique Lima |
Resumo: | Durante a revisão de código, desenvolvedores podem realizar premissas que podem guiar o seu processo de revisão de código (por exemplo, os desenvolvedores podem considerar que o código com baixa cobertura de teste tem mais probabilidade de apresentar erros. Assim, eles podem concentrar sua atenção nesse trecho de código). Embora os estudos anteriores tenham investigado as premissas dos desenvolvedores envolvendo diferentes preocupações, nenhum deles concentram-se em analisar as premissas dos desenvolvedores durante a revisão de código para identificar alterações que introduzem bugs. Portanto, nosso estudo tem como objetivo investigar essas premissas, quão relevantes elas são para os desenvolvedores, por que os desenvolvedores colocam mais ou menos relevância para algumas premissas e quais premissas são consenso ou dissenso entre os eles. Para isso, utilizamos a metodologia Q para conduzir nosso estudo contendo 41 desenvolvedores analisando 41 premissas extraídas de diferentes fontes. Os resultados indicam que: (i) as premissas dos desenvolvedores estão relacionadas às características das mudanças, linguagem de programação, experiência e hábitos dos desenvolvedores, práticas organizacionais, manutenção do código, propriedade e testes; (ii) existem cinco pontos de vista comuns entre os desenvolvedores sobre a relevância das premissas; (iii) complexidade e propriedade de código (code onwership), tempo de entrega curto, práticas de desenvolvimento e familiaridade com o código são as principais razões para os desenvolvedores colocarem mais e/ou menos relevância em certas premissas; e (iv) premissas envolvendo alto número de funcionalidades (features), linguagens de programação e aceitação de solicitações de mudanças (pull-requests) apresentam mais consenso entre os desenvolvedores, enquanto que premissas envolvendo commits de merge, histórico de software, familiaridade com a linguagem de programação, reutilização de código e propriedade de código apresentam mais dissensos. Essas descobertas são um conhecimento valioso para profissionais e pesquisadores no sentido do aprimoramento de ferramentas e/ou técnicas de revisão de código para identificar mudanças que introduzem bugs. |
Abstract: | During the code review, developers can make assumptions that may guide their review process (e. g., developers may consider that code with low test coverage is more likely to introduce bugs. Thus, they can focus their attention on this code). Although studies have investigated developers’ assumptions involving different concerns in software engineering, none of those studies focus on analyzing developers’ assumptions when reviewing code to identify bug-introducing changes. Our study investigates those assumptions, how relevant they are for developers, why developers put more/less relevance for some assumptions, and which assumptions are consensus/dissensus among groups of developers. We apply the Qmethodology to conduct our study with 41 developers analyzing 41 assumptions extracted from different sources. The results indicate: (i) the developers’ assumptions involve concerns related to the programming language, developers’ experience and habits, organizational practices as well as code maintenance, ownership and testing; (ii) five common viewpoints among developers regarding the relevance of assumptions; (iii) code complexity and ownership, short delivery time, developers practices and familiarity with the code are the main reasons for developers to put more/less relevance to some assumptions; and (iv) while assumptions involving programming languages, features invocation and pull-request acceptance present more consensus among developers, assumptions involving merge commits, software history, familiarity with the programming language, code reuse and ownership present more dissensus. These findings are valuable knowledge for both practitioners and researchers towards improving state-of-the-art code review tools/techniques to identifying bug-introducing changes. |
Palavras-chave: | Computação Software - Desenvolvimento Software - Confiabilidade Computation Software – Development Software - Reliability |
CNPq: | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
Idioma: | eng |
País: | Brasil |
Editor: | Universidade Federal de Alagoas |
Sigla da Instituição: | UFAL |
metadata.dc.publisher.program: | Programa de Pós-Graduação em Informática |
Citação: | SOUZA, Jairo Raphael Moreira Correia de. Developer´s assumptions on identifying bug-introducing changes. 2019. 70 f. Dissertação (Mestrado em Informática) – Instituto de Computação, Programa de Pós Graduação em Informática, Universidade Federal de Alagoas, Maceió, 2019. |
Tipo de Acesso: | Acesso Aberto |
URI: | http://www.repositorio.ufal.br/handle/riufal/6146 |
Data do documento: | 4-out-2019 |
Aparece nas coleções: | Dissertações e Teses defendidas na UFAL - IC |
Arquivos associados a este item:
Arquivo | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Developer´s assumptions on identifying bug-introducing changes.pdf | 16.04 MB | Adobe PDF | Visualizar/Abrir |
Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.