http://repositorio.unb.br/handle/10482/39101
Arquivo | Descrição | Tamanho | Formato | |
---|---|---|---|---|
2020_LuísHenriqueVieiraAmaral.pdf | 1,28 MB | Adobe PDF | Visualizar/Abrir |
Título: | What could the source code history tell UsAbout errors |
Autor(es): | Amaral, Luis Henrique Vieira |
Orientador(es): | Almeida, Rodrigo Bonifácio de |
Assunto: | Evolução de código-fonte Errors de software SZZ Conflitos de mesclagem Dependências de co-alterações |
Data de defesa: | 18-Fev-2020 |
Referência: | AMARAL, Luis Henrique Vieira. What could the source code history tell UsAbout errors. 2020. 60 f., il. Dissertação (Mestrado em Informática)—Universidade de Brasília, Brasília, 2020. |
Resumo: | Quase todos os desenvolvedores criam software usando uma abordagem de desenvolvi- mento colaborativo. Nesse cenário, após concluir a tarefa, desenvolvedores submetem suas contribuições a um repositório remoto— disponibilizando-os para outros colabora- dores. Enquanto sequências de revisões e trabalho paralelo aumentam a produtividade do software, por outro lado, alterações simultâneas podem causar conflitos de mescla- gem. Além disso, quando duas entidades de software (por exemplo, classes, métodos, campos) são mudados frequentemente de forma simultânea, eles se tornam dependentes de co-alteração um do outro— um tipo de dependência que geralmente está oculta dos de- senvolvedores. Alguns estudos investigam como reduzir as dependências de co-alterações e de conflitos sintáticos em operações de mesclagem, mas existem algumas questões em aberto sobre esse tipo específico de dependência e se conflitos de mesclagem introduzem bugs. Neste trabalho, esclarecemos essas questões e apresentamos os resultados de uma avaliação empírica que explora os dados históricos de 34 projetos Apache, para verificar se as alterações que introduziram erros (BIC) se correlacionam com cenários de mesclagem conflitantes e commits que levam a dependências de co-alterações. Nosso estudo apresenta que o SZZ - um algoritmo para encontrar os commits que introduziram erros - rotulou 3,62 % dos cenários de mesclagem em conflito como um commit de introdução de erros e 18,77 % dos commits levam a dependências de co-alterações . Nossos resultados trazem várias implicações para pesquisadores e profissionais. Entre eles, evidenciamos que os desenvolvedores não devem ter medo de resolver conflitos, já que apenas uma pequena porcentagem de os cenários de mesclagem em conflito foi suspeita de ter introduzido bugs. |
Abstract: | Almost all developers build software using a collaborative development approach. In this scenario, after concluding a task, developers commit their contributions to a remote repository—making them available to other contributors. While sequences of revisions and parallel working increase software productivity, on the other hand, concurrent changes might cause merge conflicts. Moreover, when two software entities (e.g. classes, methods, fields) are frequently changed together, they become co-change dependent on each other— a kind of dependency that is often hidden from the developers. Some studies investigate how to reduce co-change dependencies and syntactic conflicts in merge operations, but there are some open questions about whether this particular kind of dependency and merge conflicts introduce bugs. In this work, we shed light upon these questions and present the results of an empirical assessment that mine the historical data of 39 Apache projects, to verify if bug-introducing changes (BIC) correlate with conflicted merge sce- narios and commits that lead to co-change dependencies. Our study presents that SZZ — an algorithm to find bug introducing commits — labeled 3.62% of conflicted merge scenarios as being a bug-introducing commit and 18.77% of the commits that lead to co-change dependencies. Our results bring several implications for both researchers and practitioners. Among them, we give evidence that developers should not be afraid of solv- ing conflicts since just a small percentage of the conflicted merge scenarios are suspicious of having introduced bugs. |
Unidade Acadêmica: | Instituto de Ciências Exatas (IE) Departamento de Ciência da Computação (IE CIC) |
Informações adicionais: | Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2020. |
Programa de pós-graduação: | Programa de Pós-Graduação em Informática |
Licença: | A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor com as seguintes condições: Na qualidade de titular dos direitos de autor da publicação, autorizo a Universidade de Brasília e o IBICT a disponibilizar por meio dos sites www.bce.unb.br, www.ibict.br, http://hercules.vtls.com/cgi-bin/ndltd/chameleon?lng=pt&skin=ndltd sem ressarcimento dos direitos autorais, de acordo com a Lei nº 9610/98, o texto integral da obra disponibilizada, conforme permissões assinaladas, para fins de leitura, impressão e/ou download, a título de divulgação da produção científica brasileira, a partir desta data. |
Agência financiadora: | CAPES |
Aparece nas coleções: | Teses, dissertações e produtos pós-doutorado |
Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.