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): Kulesza, Uirá
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
Programa de Pós-Graduação: PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
Departamento: Não Informado pela instituição
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: https://repositorio.ufrn.br/jspui/handle/123456789/29655
Resumo: 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.
id UFRN_f7518cf9b7ebfcb953f9ddc8f8db6f53
oai_identifier_str oai:https://repositorio.ufrn.br:123456789/29655
network_acronym_str UFRN
network_name_str Repositório Institucional da UFRN
repository_id_str
spelling Nery, Gustavo SizílioCosta, Daniel Alencar daAranha, Eduardo Henrique da SilvaPinto, Gustavo Henrique LimaAlmeida, Rodrigo Bonifácio deKulesza, Uirá2020-07-16T18:16:38Z2020-07-16T18:16:38Z2020-02-27NERY, 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/29655Continuous 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.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.Universidade Federal do Rio Grande do NortePROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃOUFRNBrasilCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOContinuous integrationSoftware qualityEmpirical studyCausal inferenceUnderstanding 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 softwareinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRNORIGINALUnderstandingrelationshipbetween_Nery_2020.pdfapplication/pdf5373348https://repositorio.ufrn.br/bitstream/123456789/29655/1/Understandingrelationshipbetween_Nery_2020.pdf3bbbf15309632be1873d8612f1455439MD51TEXTUnderstandingrelationshipbetween_Nery_2020.pdf.txtUnderstandingrelationshipbetween_Nery_2020.pdf.txtExtracted texttext/plain243406https://repositorio.ufrn.br/bitstream/123456789/29655/2/Understandingrelationshipbetween_Nery_2020.pdf.txt43c101b81722fc26fce8bae11831d839MD52THUMBNAILUnderstandingrelationshipbetween_Nery_2020.pdf.jpgUnderstandingrelationshipbetween_Nery_2020.pdf.jpgGenerated Thumbnailimage/jpeg1274https://repositorio.ufrn.br/bitstream/123456789/29655/3/Understandingrelationshipbetween_Nery_2020.pdf.jpg9c9c42a89a2a8e7659bae701774edf38MD53123456789/296552020-07-19 04:45:44.811oai:https://repositorio.ufrn.br:123456789/29655Repositório de PublicaçõesPUBhttp://repositorio.ufrn.br/oai/opendoar:2020-07-19T07:45:44Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false
dc.title.pt_BR.fl_str_mv Understanding the relationship between continuous integration and its effects on software quality outcomes
dc.title.alternative.pt_BR.fl_str_mv 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
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
Continuous integration
Software quality
Empirical study
Causal inference
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.authorID.pt_BR.fl_str_mv
dc.contributor.advisorID.pt_BR.fl_str_mv
dc.contributor.referees1.none.fl_str_mv Costa, Daniel Alencar da
dc.contributor.referees1ID.pt_BR.fl_str_mv
dc.contributor.referees2.none.fl_str_mv Aranha, Eduardo Henrique da Silva
dc.contributor.referees2ID.pt_BR.fl_str_mv
dc.contributor.referees3.none.fl_str_mv Pinto, Gustavo Henrique Lima
dc.contributor.referees3ID.pt_BR.fl_str_mv
dc.contributor.referees4.none.fl_str_mv Almeida, Rodrigo Bonifácio de
dc.contributor.referees4ID.pt_BR.fl_str_mv
dc.contributor.author.fl_str_mv Nery, Gustavo Sizílio
dc.contributor.advisor1.fl_str_mv Kulesza, Uirá
contributor_str_mv Kulesza, Uirá
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
topic CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
Continuous integration
Software quality
Empirical study
Causal inference
dc.subject.por.fl_str_mv Continuous integration
Software quality
Empirical study
Causal inference
description 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.
publishDate 2020
dc.date.accessioned.fl_str_mv 2020-07-16T18:16:38Z
dc.date.available.fl_str_mv 2020-07-16T18:16:38Z
dc.date.issued.fl_str_mv 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.citation.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.
dc.identifier.uri.fl_str_mv 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.publisher.none.fl_str_mv Universidade Federal do Rio Grande do Norte
dc.publisher.program.fl_str_mv PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
dc.publisher.initials.fl_str_mv UFRN
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal do Rio Grande do Norte
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
bitstream.url.fl_str_mv https://repositorio.ufrn.br/bitstream/123456789/29655/1/Understandingrelationshipbetween_Nery_2020.pdf
https://repositorio.ufrn.br/bitstream/123456789/29655/2/Understandingrelationshipbetween_Nery_2020.pdf.txt
https://repositorio.ufrn.br/bitstream/123456789/29655/3/Understandingrelationshipbetween_Nery_2020.pdf.jpg
bitstream.checksum.fl_str_mv 3bbbf15309632be1873d8612f1455439
43c101b81722fc26fce8bae11831d839
9c9c42a89a2a8e7659bae701774edf38
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)
repository.mail.fl_str_mv
_version_ 1796767091917848576