Understanding the relationship between continuous integration and its effects on software quality outcomes

Detalhes bibliográficos
Ano de defesa: 2020
Autor(a) principal: Nery, Gustavo Sizílio
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal do Rio Grande do Norte
Brasil
UFRN
PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://repositorio.ufrn.br/jspui/handle/123456789/29655
Resumo: Integração Contínua, em inglês Continuous Integration (CI), consiste na prática de automatizar e melhorar a frequência das integrações de código (por exemplo, através de builds diários). CI é frequentemente considerado um dos principais elementos que dão suporte às metodologias ágeis. CI ajuda a reduzir os riscos de integração no desenvolvimento de software, através de builds e testes automatizados, permitindo que equipes corrijam problemas de integração imediatamente. A adoção de CI pode ajudar as equipes a avaliar e melhorar a qualidade dos sistemas de software. Os potenciais benefícios de CI chamaram a atenção de pesquisadores da engenharia de software que buscam entender, de forma empírica, as possíveis vantagens de adoção da prática. Estudos anteriores evidenciam o impacto da adoção de CI em diversos aspectos do desenvolvimento de software. Apesar dos valiosos avanços, muitas suposições permanecem empiricamente inexploradas na comunidade. Nosso trabalho investiga, de forma empírica, os fatores da qualidade do software e suas relações com a adoção de CI. Como contribuição, esta tese fornece um mapeamento sistemático da literatura, que apresenta um amplo cenário de como profissionais e pesquisadores observam o efeito de CI nos aspectos relacionados ao produto de software. Além disso, melhoramos algumas premissas, realizando dois estudos empíricos, visando responder às seguintes questões ainda em aberto: (i) A adoção de CI está associada à evolução do código de teste dos projetos? (ii) O nível de aderência às práticas de CI está relacionada a uma melhoria da qualidade do código fonte dos projetos? Por fim, nós apresentamos um estudo pioneiro, considerando o nosso contexto de pesquisa, que vai além dos testes de correlação e investiga o efeito causal entre a adoção de CI e testes automatizados. Para isto, aplicamos uma inferência causal, através da utilização de diagramas causais e métodos probabilísticos, para determinar a efeito de CI nos testes automatizados. Nossos resultados sugerem que, apesar dos trade-offs relacionados à adoção de CI, é provável que a prática esteja associada à melhorias na qualidade do software. Além disso, CI emprega um efeito causal positivo e considerável no volume de testes dos projetos.
id UFRN_fa956fdd69a4000a4edffa8dd9329a17
oai_identifier_str oai:repositorio.ufrn.br:123456789/29655
network_acronym_str UFRN
network_name_str Repositório Institucional da UFRN
repository_id_str
spelling Understanding the relationship between continuous integration and its effects on software quality outcomesCompreendendo o relacionamento entre a integração contínua e seus efeitos nos resultados da qualidade do softwareContinuous integrationSoftware qualityEmpirical studyCausal inferenceCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOIntegração Contínua, em inglês Continuous Integration (CI), consiste na prática de automatizar e melhorar a frequência das integrações de código (por exemplo, através de builds diários). CI é frequentemente considerado um dos principais elementos que dão suporte às metodologias ágeis. CI ajuda a reduzir os riscos de integração no desenvolvimento de software, através de builds e testes automatizados, permitindo que equipes corrijam problemas de integração imediatamente. A adoção de CI pode ajudar as equipes a avaliar e melhorar a qualidade dos sistemas de software. Os potenciais benefícios de CI chamaram a atenção de pesquisadores da engenharia de software que buscam entender, de forma empírica, as possíveis vantagens de adoção da prática. Estudos anteriores evidenciam o impacto da adoção de CI em diversos aspectos do desenvolvimento de software. Apesar dos valiosos avanços, muitas suposições permanecem empiricamente inexploradas na comunidade. Nosso trabalho investiga, de forma empírica, os fatores da qualidade do software e suas relações com a adoção de CI. Como contribuição, esta tese fornece um mapeamento sistemático da literatura, que apresenta um amplo cenário de como profissionais e pesquisadores observam o efeito de CI nos aspectos relacionados ao produto de software. Além disso, melhoramos algumas premissas, realizando dois estudos empíricos, visando responder às seguintes questões ainda em aberto: (i) A adoção de CI está associada à evolução do código de teste dos projetos? (ii) O nível de aderência às práticas de CI está relacionada a uma melhoria da qualidade do código fonte dos projetos? Por fim, nós apresentamos um estudo pioneiro, considerando o nosso contexto de pesquisa, que vai além dos testes de correlação e investiga o efeito causal entre a adoção de CI e testes automatizados. Para isto, aplicamos uma inferência causal, através da utilização de diagramas causais e métodos probabilísticos, para determinar a efeito de CI nos testes automatizados. Nossos resultados sugerem que, apesar dos trade-offs relacionados à adoção de CI, é provável que a prática esteja associada à melhorias na qualidade do software. Além disso, CI emprega um efeito causal positivo e considerável no volume de testes dos projetos.Continuous Integration (CI) is the practice of automating and improving the frequency of code integration (e.g., daily builds). CI is often considered one of the key elements involved to support agile software teams. It helps to reduce the risks in software development by automatically building and testing a project codebase, which allows the team to fix broken builds immediately. The adoption of CI can help development teams to assess the quality of software systems. The potential benefits of adopting CI have brought the attention of researchers to study its advantages empirically. Previous research has studied the impact of adopting CI on diverse aspects of software development. Despite the valuable advancements, there are still many assumptions in the community that remains empirically unexplored. Our work empirically investigates the software quality outcomes and their relationship with the adoption of CI. This thesis provides a systematic literature mapping that presents a broad knowledge of how practitioners and researchers recognize the CI practice to affect software product-related aspects. Additionally, we improve some assumptions by performing two empirical studies that aim to answer the following open questions: (i) Does the adoption of CI share a relationship with the evolution of test code? (ii) The adherence to CI best practices is related to the degree of code quality? Finally, we present a pioneering study that goes beyond the correlation tests to investigate the estimated causal effect of CI adoption and its impact on automated tests. Thereby, we apply a causal inference using directed acyclic graphs and probabilistic methods to determine the causal effect of CI in automated tests. Our results suggest that, despite the CI adoption trade-offs, it is likely to be associated with improvements in software quality. Additionally, it employs a considerable positive causal effect on the volume of automated tests.Universidade Federal do Rio Grande do NorteBrasilUFRNPROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃOKulesza, UiráCosta, Daniel Alencar daAranha, Eduardo Henrique da SilvaPinto, Gustavo Henrique LimaAlmeida, Rodrigo Bonifácio deNery, Gustavo Sizílio2020-07-16T18:16:38Z2020-07-16T18:16:38Z2020-02-27info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfNERY, Gustavo Sizílio. Understanding the relationship between continuous integration and its effects on software quality outcomes. 2020. 147f. Tese (Doutorado em Ciência da Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2020.https://repositorio.ufrn.br/jspui/handle/123456789/29655info:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRN2020-07-19T07:45:44Zoai:repositorio.ufrn.br:123456789/29655Repositório InstitucionalPUBhttp://repositorio.ufrn.br/oai/repositorio@bczm.ufrn.bropendoar:2020-07-19T07:45:44Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false
dc.title.none.fl_str_mv Understanding the relationship between continuous integration and its effects on software quality outcomes
Compreendendo o relacionamento entre a integração contínua e seus efeitos nos resultados da qualidade do software
title Understanding the relationship between continuous integration and its effects on software quality outcomes
spellingShingle Understanding the relationship between continuous integration and its effects on software quality outcomes
Nery, Gustavo Sizílio
Continuous integration
Software quality
Empirical study
Causal inference
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
title_short Understanding the relationship between continuous integration and its effects on software quality outcomes
title_full Understanding the relationship between continuous integration and its effects on software quality outcomes
title_fullStr Understanding the relationship between continuous integration and its effects on software quality outcomes
title_full_unstemmed Understanding the relationship between continuous integration and its effects on software quality outcomes
title_sort Understanding the relationship between continuous integration and its effects on software quality outcomes
author Nery, Gustavo Sizílio
author_facet Nery, Gustavo Sizílio
author_role author
dc.contributor.none.fl_str_mv Kulesza, Uirá


Costa, Daniel Alencar da

Aranha, Eduardo Henrique da Silva

Pinto, Gustavo Henrique Lima

Almeida, Rodrigo Bonifácio de

dc.contributor.author.fl_str_mv Nery, Gustavo Sizílio
dc.subject.por.fl_str_mv Continuous integration
Software quality
Empirical study
Causal inference
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
topic Continuous integration
Software quality
Empirical study
Causal inference
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
description Integração Contínua, em inglês Continuous Integration (CI), consiste na prática de automatizar e melhorar a frequência das integrações de código (por exemplo, através de builds diários). CI é frequentemente considerado um dos principais elementos que dão suporte às metodologias ágeis. CI ajuda a reduzir os riscos de integração no desenvolvimento de software, através de builds e testes automatizados, permitindo que equipes corrijam problemas de integração imediatamente. A adoção de CI pode ajudar as equipes a avaliar e melhorar a qualidade dos sistemas de software. Os potenciais benefícios de CI chamaram a atenção de pesquisadores da engenharia de software que buscam entender, de forma empírica, as possíveis vantagens de adoção da prática. Estudos anteriores evidenciam o impacto da adoção de CI em diversos aspectos do desenvolvimento de software. Apesar dos valiosos avanços, muitas suposições permanecem empiricamente inexploradas na comunidade. Nosso trabalho investiga, de forma empírica, os fatores da qualidade do software e suas relações com a adoção de CI. Como contribuição, esta tese fornece um mapeamento sistemático da literatura, que apresenta um amplo cenário de como profissionais e pesquisadores observam o efeito de CI nos aspectos relacionados ao produto de software. Além disso, melhoramos algumas premissas, realizando dois estudos empíricos, visando responder às seguintes questões ainda em aberto: (i) A adoção de CI está associada à evolução do código de teste dos projetos? (ii) O nível de aderência às práticas de CI está relacionada a uma melhoria da qualidade do código fonte dos projetos? Por fim, nós apresentamos um estudo pioneiro, considerando o nosso contexto de pesquisa, que vai além dos testes de correlação e investiga o efeito causal entre a adoção de CI e testes automatizados. Para isto, aplicamos uma inferência causal, através da utilização de diagramas causais e métodos probabilísticos, para determinar a efeito de CI nos testes automatizados. Nossos resultados sugerem que, apesar dos trade-offs relacionados à adoção de CI, é provável que a prática esteja associada à melhorias na qualidade do software. Além disso, CI emprega um efeito causal positivo e considerável no volume de testes dos projetos.
publishDate 2020
dc.date.none.fl_str_mv 2020-07-16T18:16:38Z
2020-07-16T18:16:38Z
2020-02-27
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv NERY, Gustavo Sizílio. Understanding the relationship between continuous integration and its effects on software quality outcomes. 2020. 147f. Tese (Doutorado em Ciência da Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2020.
https://repositorio.ufrn.br/jspui/handle/123456789/29655
identifier_str_mv NERY, Gustavo Sizílio. Understanding the relationship between continuous integration and its effects on software quality outcomes. 2020. 147f. Tese (Doutorado em Ciência da Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2020.
url https://repositorio.ufrn.br/jspui/handle/123456789/29655
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal do Rio Grande do Norte
Brasil
UFRN
PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
publisher.none.fl_str_mv Universidade Federal do Rio Grande do Norte
Brasil
UFRN
PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRN
instname:Universidade Federal do Rio Grande do Norte (UFRN)
instacron:UFRN
instname_str Universidade Federal do Rio Grande do Norte (UFRN)
instacron_str UFRN
institution UFRN
reponame_str Repositório Institucional da UFRN
collection Repositório Institucional da UFRN
repository.name.fl_str_mv Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)
repository.mail.fl_str_mv repositorio@bczm.ufrn.br
_version_ 1855758851794534400