Use este identificador para citar ou linkar para este item: https://repositorio.ufba.br/handle/ri/36094
Tipo: Tese
Título: Understanding test evolution: from highly‑configurable systems to software ecosystems
Título(s) alternativo(s): Entendendo a evolução de testes: de sistemas altamente configuráveis até ecossistemas de software
Autor(es): Bastos, Jonatas Ferreira
Primeiro Orientador: Almeida, Eduardo Santana
metadata.dc.contributor.referee1: Almeida, Eduardo Santana de
metadata.dc.contributor.referee2: d'Amorim, Marcelo Bezerra
metadata.dc.contributor.referee3: Pinto, Gustavo Henrique Lima
metadata.dc.contributor.referee4: Chavez, Christina von Flach Garcia
metadata.dc.contributor.referee5: Souza, Rodrigo Rocha Gomes e
Resumo: A evolução do software é inevitável se os sistemas forem planejados para sobreviver a longo prazo. Igualmente, é a necessidade de ter um bom conjunto de testes disponível para garantir a qualidade do estado atual do sistema de software e facilitar mudanças futuras. Isso é especialmente verdade no contexto de sistemas reutilizáveis, uma vez que são planejados para atender por muito tempo um nicho de mercado específico e precisam suportar um grande número de opções de configuração. No entanto, desenvolver e manter um conjunto de testes é demorado e caro. Essa situação é desafiadora para os projetos: por um lado, os testes são essenciais para o sucesso do software; por outro lado, os testes tornam-se um fardo severo durante a manutenção. Embora um corpo substancial de literatura tenha estudado testes em ambientes reutilizáveis, a análise da evolução do teste não foi abordada. Em geral, os pesquisadores analisaram estratégias de teste, técnicas de seleção de teste dinâmico e co-evolução de testes junto com outros artefatos de sistemas. Esta tese pretende aprimorar o conhecimento da evolução de testes em sistemas reutilizáveis, investigando características que indicam o esforço para desenvolver e manter a suíte de testes e desvendando como os aspectos reutilizáveis afetam os testes. O conjunto de evidências pode ajudar pesquisadores e profissionais a planejar melhor o desenvolvimento e a evolução do teste. Dessa forma, empregamos uma abordagem multi-métodos para desenvolver o entendimento da evolução de testes em sistemas configuráveis e desvendar evidências sobre o tema a partir de diversas fontes. Na primeira fase do programa de pesquisa, fornecemos uma visão geral da pesquisa existente relacionada aos assuntos desta tese e apresentamos trabalhos relacionados à nossa investigação. A segunda fase foi composta por quatro estudos empíricos. Primeiramente, realizamos um estudo de caso para analisar a evolução do teste de um grande sistema configurável. Em seguida, realizamos um estudo comparativo para avaliar a evolução do teste em 18 sistemas configuráveis e open source, de vários tamanhos e domínios, investigando assim as suas semelhanças e diferenças com 18 projetos não configuráveis. Terceiro, realizamos um estudo estendido para analisar a evolução do conjunto de testes em outra categoria de sistemas reutilizáveis verificando assim se algumas observações são recorrentes ao mesmo tempo que coletamos novos dados que suportam as descobertas. Por fim, pesquisamos os colaboradores do teste para investigar a evolução do teste do ponto de vista do desenvolvimento e melhorar as descobertas nos estágios anteriores. Este trabalho coletou um conjunto de achados da evolução dos testes, e esses achados foram fortalecidos por meio de diferentes métodos de pesquisa. Nosso trabalho forneceu uma melhor compreensão da evolução do teste em sistemas configuráveis documentando evidências observadas em projetos de código aberto e colaboradores de teste. Além disso, nesta Tese, sintetizamos as evidências coletadas e identificamos questões em aberto neste tópico de pesquisa. Essas descobertas são um passo importante para estabelecer diretrizes para abordar a evolução do teste em sistemas configuráveis.
Abstract: Software evolution is inevitable if the systems are planned to survive in the long-term. Equally, well-understood is the necessity of having a good test suite available to ensure the quality of the current state of the software system and to ease future changes. This is especially true in the context of reusable systems since they are planned to attend for a long time a specific market niche and need to support a large number of configuration options. However, developing and maintaining a test suite is time-intensive and costly. This situation is challenging for the projects: on the one hand, tests are essential for the success of software; on the other hand, tests become a severe burden during maintenance. Even though a substantial body of literature has studied testing in reusable environments, test evolution analysis has not been addressed. In general, researchers have looked into analyzing test strategies, dynamic test selection techniques, and co-evolution of tests along with other systems artifacts. This thesis intends to improve the test evolution body of knowledge in reusable systems, investigating characteristics that indicate the effort to develop and maintain the test suite and unveiling how the reusable aspects affect the tests. The set of evidence can help researchers and practitioners to better planning the test development and evolution. This way, we employed a multi-method approach to develop the understanding of test evolution in configurable systems and unveil evidence on the topic from various sources. In the first phase of the research program, we provided an overview of the existing research related to this thesis’s subjects and presented related work to our investigation. The second phase was composed of four empirical studies. First, we performed a case study to analyze the test evolution of a large configurable system. Next, we performed a comparative study to evaluate the test evolution in 18 open-source projects from various sizes and domains in configurable systems and their similarities and differences to 18 Single Systems projects. Third, we conducted an extended study to analyze the test suite evolution in another category of reusable systems to verify whether some observations are recurring and gather new data that support the findings. Finally, we surveyed test contributors to investigate the test evolution from the development point of view and improve the findings in previous stages. This work collected a set of findings of test evolution, and these findings were strengthened by using different research methods. Our work provided a better understanding of test evolution in configurable systems by documenting evidence observed in open-source projects and test contributors. Moreover, in this Thesis, we synthesized the gathered evidence and identified open issues in this research topic. These findings are an important step to establish guidelines for addressing test evolution in configurable systems.
Palavras-chave: Teste
Evolução
Sistemas altamente configuráveis
Variabilidade
Estudo Empírico
Engenharia de Software
Ecossistema
CNPq: CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE
Idioma: eng
País: Brasil
Editora / Evento / Instituição: Universidade Federal da Bahia
Sigla da Instituição: UFBA
metadata.dc.publisher.department: Instituto de Computação - IC
metadata.dc.publisher.program: Programa de Pós-Graduação em Ciência da Computação (PGCOMP) 
Citação: BASTOS, Jonatas Ferreira. Understanding test evolution: from highly-configurable systems to software ecosystems. 2021. 140 f. Tese (Doutorado em Ciências da Computação) Instituto de Computação, Universidade Federal da Bahia, Salvador, Ba, 2021.
URI: https://repositorio.ufba.br/handle/ri/36094
Data do documento: 4-Mai-2021
Aparece nas coleções:Tese (PGCOMP)

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
PGCOMP-2021-Tese_Doutorado-Jonatas_Ferreira_Bastos.pdfTese de Doutorado de Jonatas Ferreira Bastos3,6 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.