Understanding the relationship between continuous integration and its effects on software quality outcomes
Autor(a) principal: | |
---|---|
Data de Publicação: | 2020 |
Tipo de documento: | Tese |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRN |
Texto Completo: | 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_ |
1814832934342885376 |