Skip navigation
Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.ufpe.br/handle/123456789/59892

Comparte esta pagina

Registro completo de metadatos
Campo DC Valor Lengua/Idioma
dc.contributor.advisorSAMPAIO, Augusto Cezar Alves-
dc.contributor.authorALMEIDA, Rafaela Gonçalves de-
dc.date.accessioned2025-01-21T16:05:27Z-
dc.date.available2025-01-21T16:05:27Z-
dc.date.issued2024-08-19-
dc.identifier.citationALMEIDA, Rafaela Gonçalves de. Sound test case generation for concurrent features combining test cases for individual features. 2024. Tese (Doutorado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2024.pt_BR
dc.identifier.urihttps://repositorio.ufpe.br/handle/123456789/59892-
dc.description.abstractIn the current landscape of software development, where applications are becoming increas- ingly intricate and designed to handle multiple tasks simultaneously, it is essential to validate reliability under concurrent conditions. Systems can exhibit a wide range of interactions and behaviours that are difficult to replicate, making the creation of effective testing strategies extremely challenging. Additionally, generating test cases for concurrent systems is demanding due to the lack of explicit descriptions of their concurrent behaviour in the typically captured natural language requirements. Our primary contribution involves an approach for generating consistent tests based on requirements expressed in natural language, with a particular focus on mobile device applications. This approach is enhanced with a dependency analysis strategy that ensures a consistent order of test steps execution, thereby eliminating incomplete test cases or those that cannot be executed due to unmet preconditions. Furthermore, we address the soundness of the proposed approach through the introduction of a new conformance relation, denoted as cspioq. This new relation effectively handles the absence of outputs (quiescence), aiming to ensure that the system can adequately handle scenarios where no further outputs or events are expected, which is a common characteristic in concurrent systems. When up- dated requirements are not available, which is often the case in an industrial context, a reverse engineering process is necessary to generate requirements from existing test cases, in order to allow the proof of soundness of test case generation from requirements. We explore this approach to define a sound test case generation strategy that considers quiescence. Neverthe- less, from a practical (implementation) point of view, this process is rather burdensome. As an alternative, we propose an optimised test generation strategy through the permutation of test steps, referred to as atoms. This strategy aims to simplify the process by directly extracting new test cases from existing ones without the need for a complex reverse engineering process. We also address the soundness of the optimised approach by demonstrating its connection with the original approach based on reverse engineering. We fully implemented tool support and conducted an empirical evaluation of the generated test effectiveness. We analysed test coverage and the number of bugs during the execution of tests created by engineers from our industrial partner, Motorola Mobility (a Lenovo company). The adopted metrics were then compared with those obtained from tests generated using the proposed approach. The results reveal that the test set produced by our approach exhibits significantly greater coverage and has the potential to identify more bugs compared to the set created by Motorola engineers.pt_BR
dc.language.isoengpt_BR
dc.publisherUniversidade Federal de Pernambucopt_BR
dc.rightsopenAccesspt_BR
dc.rightsAttribution-NonCommercial-NoDerivs 3.0 Brazil*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/br/*
dc.subjectTeste concorrentept_BR
dc.subjectTeste baseado em modelopt_BR
dc.subjectQuiescênciapt_BR
dc.titleSound test case generation for concurrent features combining test cases for individual featurespt_BR
dc.typedoctoralThesispt_BR
dc.contributor.advisor-coNOGUEIRA, Sidney de Carvalho-
dc.contributor.authorLatteshttp://lattes.cnpq.br/5247937845591759pt_BR
dc.publisher.initialsUFPEpt_BR
dc.publisher.countryBrasilpt_BR
dc.degree.leveldoutoradopt_BR
dc.contributor.advisorLatteshttp://lattes.cnpq.br/3977760354511853pt_BR
dc.publisher.programPrograma de Pos Graduacao em Ciencia da Computacaopt_BR
dc.description.abstractxNo atual cenário de desenvolvimento de software, onde as aplicações estão se tornando cada vez mais complexas e projetadas para lidar com múltiplas tarefas, simultaneamente, torna-se imperativo validar a confiabilidade em condições concorrentes. Os sistemas podem apresentar uma ampla variedade de interações e comportamentos difíceis de serem reproduzidos, tornando muito desafiador a elaboração de estratégias de teste eficazes. Adicionalmente, a geração de casos de teste para sistemas concorrentes é desafiadora devido à falta de descrições explíci- tas de seu comportamento concorrente nos requisitos tipicamente capturados em linguagem natural. Nossa principal contribuição é uma abordagem para a geração de testes consistentes baseados em requisitos escritos em linguagem natural, focando, particularmente, em aplicati- vos de dispositivos móveis. Essa abordagem é enriquecida com uma estratégia de análise de dependência que garante uma ordem de execução consistente dos passos de teste, eliminando, assim, casos de teste com configurações incompletas ou que não podem ser executados devido a pré-condições não atendidas. Além disso, abordamos a consistência (soundness) da abor- dagem proposta a partir da definição de uma nova relação de conformidade, cspioq. Essa nova relação lida efetivamente com a ausência de saídas (quiescência), visando garantir que o sistema possa lidar adequadamente com cenários em que não são esperadas mais saídas ou eventos (característica comum em sistemas concorrentes). Quando os requisitos não estão disponíveis, o que ocorre frequentemente num contexto industrial, um processo de engenharia reversa é necessário para gerar requisitos a partir de casos de teste existentes a fim de garantir a consistência da geração de casos de teste a partir de requisitos. Exploramos essa abordagem para definir uma estratégia consistente (sound) de geração de casos de teste que considere a quiescência. No entanto, do ponto de vista prático (de implementação), este processo é bastante oneroso. Como alternativa, propomos uma estratégia de geração de testes otimizada por meio da combinação de passos de teste, denominados de átomos. Esta estratégia visa simplificar o processo, extraindo diretamente novos casos de teste a partir dos existentes sem a necessidade de uma engenharia reversa que tende a ser complexa. Também abordamos a consistência (soundness) da abordagem otimizada mostrando a conexão com a abordagem original baseada em engenharia reversa. Implementamos suporte ferramental e conduzimos uma avaliação empírica da eficácia dos testes gerados. Analisamos a cobertura dos testes e o número de falhas durante a execução dos testes criados pelos engenheiros de nosso par- ceiro industrial, Motorola Mobility (uma empresa da Lenovo). As métricas adotadas foram então comparadas com aquelas obtidas dos testes gerados usando a abordagem proposta. Os resultados revelam que o conjunto de testes produzido por nossa abordagem apresenta uma cobertura significativamente maior e tem o potencial de identificar mais bugs em comparação com o conjunto criado pelos engenheiros da Motorola.pt_BR
dc.contributor.advisor-coLatteshttp://lattes.cnpq.br/9171224058305522pt_BR
Aparece en las colecciones: Teses de Doutorado - Ciência da Computação

Ficheros en este ítem:
Fichero Descripción Tamaño Formato  
TESE Rafaela Goncalves de Almeida.pdf2,11 MBAdobe PDFVista previa
Visualizar/Abrir


Este ítem está protegido por copyright original



Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons Creative Commons