Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de software

Detalhes bibliográficos
Autor(a) principal: Choma Neto, João
Data de Publicação: 2023
Tipo de documento: Tese
Idioma: por
Título da fonte: Biblioteca Digital de Teses e Dissertações da USP
Texto Completo: https://www.teses.usp.br/teses/disponiveis/55/55134/tde-19122023-151021/
Resumo: A atividade de teste de software é fundamental para garantir a qualidade de um produto de software. No entanto, encontrar um conjunto de casos de teste que satisfaça um determinado critério de teste não é uma tarefa simples, pois o domínio de entrada em geral é vasto e diferentes conjuntos de teste podem ser derivados, com eficácia diferente. No contexto de testes estruturais, a não executabilidade (ou requisitos de teste não executáveis) é uma característica presente na maioria dos programas, o que aumenta o custo e o esforço da atividade de teste. Quando programas concorrentes são testados, novos desafios são enfrentados, principalmente relacionados ao não-determinismo. O não-determinismo pode resultar em diferentes saídas de teste possíveis para a mesma entrada de teste, tornando importante testar todas as situações possíveis. No entanto, a não executabilidade torna-se ainda mais complexa nesse contexto. Para mitigar esse problema, foi desenvolvida uma abordagem chamada Nonexec, que permite a utilização automatizada de propriedades baseadas em código fonte capazes de revelar requisitos de teste não executáveis. Um dos primeiros resultados foi a definição de três conjuntos que classificam os requisitos em: requisitos possivelmente não executáveis, não executáveis e dificilmente executáveis. O processo de detecção das propriedades em código fonte ocorreu sem a utilização de dados de entrada. A abordagem obteve sucesso na identificação das propriedades e conseguiu relacionar a ocorrência de uma propriedade a como ela afeta os requisitos de teste requeridos por um critério de teste. Durante a avaliação experimental da abordagem, foi utilizado um benchmark de programas concorrentes. Foram utilizados os critérios Todos-usos e Todas-sincronizações. Os resultados indicaram que a abordagem auxiliou o testador na atividade de teste estrutural e, com base na taxa de cobertura do critério Todas-sincronizações, a abordagem conseguiu melhorias estatisticamente significativas. Em conclusão, a abordagem proposta auxilia os profissionais de teste na identificação de requisitos de teste que possam apresentar o problema da não executabilidade. As principais contribuições deste trabalho incluem a elaboração de um catálogo de propriedades, a definição da abordagem Nonexec, a implementação da ferramenta Fi-paths e a integração da ferramenta Valipar. Além disso, foram definidos novos termos relacionados ao problema da não executabilidade, tais como requisito de teste possivelmente não executável e requisito de teste dificilmente executável.
id USP_3d637490b947214b6ed5cd5fbb1e89af
oai_identifier_str oai:teses.usp.br:tde-19122023-151021
network_acronym_str USP
network_name_str Biblioteca Digital de Teses e Dissertações da USP
repository_id_str 2721
spelling Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de softwareAn approach to support the identification of non-executability in structural software testingConcurrent programsNon-executability problemProblema da não executabilidadeProgramas concorrentesSoftware testingStructural testingTeste de softwareTeste estruturalA atividade de teste de software é fundamental para garantir a qualidade de um produto de software. No entanto, encontrar um conjunto de casos de teste que satisfaça um determinado critério de teste não é uma tarefa simples, pois o domínio de entrada em geral é vasto e diferentes conjuntos de teste podem ser derivados, com eficácia diferente. No contexto de testes estruturais, a não executabilidade (ou requisitos de teste não executáveis) é uma característica presente na maioria dos programas, o que aumenta o custo e o esforço da atividade de teste. Quando programas concorrentes são testados, novos desafios são enfrentados, principalmente relacionados ao não-determinismo. O não-determinismo pode resultar em diferentes saídas de teste possíveis para a mesma entrada de teste, tornando importante testar todas as situações possíveis. No entanto, a não executabilidade torna-se ainda mais complexa nesse contexto. Para mitigar esse problema, foi desenvolvida uma abordagem chamada Nonexec, que permite a utilização automatizada de propriedades baseadas em código fonte capazes de revelar requisitos de teste não executáveis. Um dos primeiros resultados foi a definição de três conjuntos que classificam os requisitos em: requisitos possivelmente não executáveis, não executáveis e dificilmente executáveis. O processo de detecção das propriedades em código fonte ocorreu sem a utilização de dados de entrada. A abordagem obteve sucesso na identificação das propriedades e conseguiu relacionar a ocorrência de uma propriedade a como ela afeta os requisitos de teste requeridos por um critério de teste. Durante a avaliação experimental da abordagem, foi utilizado um benchmark de programas concorrentes. Foram utilizados os critérios Todos-usos e Todas-sincronizações. Os resultados indicaram que a abordagem auxiliou o testador na atividade de teste estrutural e, com base na taxa de cobertura do critério Todas-sincronizações, a abordagem conseguiu melhorias estatisticamente significativas. Em conclusão, a abordagem proposta auxilia os profissionais de teste na identificação de requisitos de teste que possam apresentar o problema da não executabilidade. As principais contribuições deste trabalho incluem a elaboração de um catálogo de propriedades, a definição da abordagem Nonexec, a implementação da ferramenta Fi-paths e a integração da ferramenta Valipar. Além disso, foram definidos novos termos relacionados ao problema da não executabilidade, tais como requisito de teste possivelmente não executável e requisito de teste dificilmente executável.Software testing activity is essential to ensure the quality of a software product. However, finding a set of test cases that satisfies a specific test criterion is not a simple task, as the input domain is generally vast, and different test sets can be derived with different effectiveness. In the context of structural testing, non-executability (or non-executable test requirements) is a feature present in most programs, increasing the testing activitys cost and effort. New challenges are faced when concurrent programs are tested, mainly related to non-determinism. Non-determinism can result in different possible test outputs for the same test input, making it important to test all possible situations, and, therefore, the non-executability becomes even more complex in this context. To mitigate this problem, an approach called Nonexec was developed, which allows for the automated use of source code-based properties capable of revealing non-executable test requirements. One of the first results was the definition of three sets that classify the requirements as possibly non-executable, non-executable, and hardly executable. The process of detecting source code properties occurred without the use of input data. The approach successfully identified the properties and related the occurrence of a property to how it affects the test requirements of each test criterion. During the experimental evaluation of the approach, a benchmark of concurrent programs was analyzed with the all-uses and all-sync testing criteria. The results indicated that the approach assisted the tester in the structural testing activity and, based on the coverage rate of the all-sync criterion, the approach achieved statistically significant improvements. In conclusion, the proposed approach collaborates testing professionals in identifying test requirements that may present the non-executability problem. The main contributions of this work include the development of a catalog of properties, the definition of the Nonexec approach, the Fi-paths tool, and the integration of the Valipar testing tool. In addition, new terms related to the non-executability problem were defined, such as \"possibly non-executable test requirement\" and \"hardly executable test requirement\".Biblioteca Digitais de Teses e Dissertações da USPLopes, Thelma Elita ColanziSouza, Simone do Rocio Senger deChoma Neto, João2023-08-24info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfhttps://www.teses.usp.br/teses/disponiveis/55/55134/tde-19122023-151021/reponame:Biblioteca Digital de Teses e Dissertações da USPinstname:Universidade de São Paulo (USP)instacron:USPLiberar o conteúdo para acesso público.info:eu-repo/semantics/openAccesspor2023-12-19T17:17:03Zoai:teses.usp.br:tde-19122023-151021Biblioteca Digital de Teses e Dissertaçõeshttp://www.teses.usp.br/PUBhttp://www.teses.usp.br/cgi-bin/mtd2br.plvirginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.bropendoar:27212023-12-19T17:17:03Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)false
dc.title.none.fl_str_mv Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de software
An approach to support the identification of non-executability in structural software testing
title Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de software
spellingShingle Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de software
Choma Neto, João
Concurrent programs
Non-executability problem
Problema da não executabilidade
Programas concorrentes
Software testing
Structural testing
Teste de software
Teste estrutural
title_short Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de software
title_full Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de software
title_fullStr Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de software
title_full_unstemmed Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de software
title_sort Uma abordagem para apoiar a identificação de não executabilidade no teste estrutural de software
author Choma Neto, João
author_facet Choma Neto, João
author_role author
dc.contributor.none.fl_str_mv Lopes, Thelma Elita Colanzi
Souza, Simone do Rocio Senger de
dc.contributor.author.fl_str_mv Choma Neto, João
dc.subject.por.fl_str_mv Concurrent programs
Non-executability problem
Problema da não executabilidade
Programas concorrentes
Software testing
Structural testing
Teste de software
Teste estrutural
topic Concurrent programs
Non-executability problem
Problema da não executabilidade
Programas concorrentes
Software testing
Structural testing
Teste de software
Teste estrutural
description A atividade de teste de software é fundamental para garantir a qualidade de um produto de software. No entanto, encontrar um conjunto de casos de teste que satisfaça um determinado critério de teste não é uma tarefa simples, pois o domínio de entrada em geral é vasto e diferentes conjuntos de teste podem ser derivados, com eficácia diferente. No contexto de testes estruturais, a não executabilidade (ou requisitos de teste não executáveis) é uma característica presente na maioria dos programas, o que aumenta o custo e o esforço da atividade de teste. Quando programas concorrentes são testados, novos desafios são enfrentados, principalmente relacionados ao não-determinismo. O não-determinismo pode resultar em diferentes saídas de teste possíveis para a mesma entrada de teste, tornando importante testar todas as situações possíveis. No entanto, a não executabilidade torna-se ainda mais complexa nesse contexto. Para mitigar esse problema, foi desenvolvida uma abordagem chamada Nonexec, que permite a utilização automatizada de propriedades baseadas em código fonte capazes de revelar requisitos de teste não executáveis. Um dos primeiros resultados foi a definição de três conjuntos que classificam os requisitos em: requisitos possivelmente não executáveis, não executáveis e dificilmente executáveis. O processo de detecção das propriedades em código fonte ocorreu sem a utilização de dados de entrada. A abordagem obteve sucesso na identificação das propriedades e conseguiu relacionar a ocorrência de uma propriedade a como ela afeta os requisitos de teste requeridos por um critério de teste. Durante a avaliação experimental da abordagem, foi utilizado um benchmark de programas concorrentes. Foram utilizados os critérios Todos-usos e Todas-sincronizações. Os resultados indicaram que a abordagem auxiliou o testador na atividade de teste estrutural e, com base na taxa de cobertura do critério Todas-sincronizações, a abordagem conseguiu melhorias estatisticamente significativas. Em conclusão, a abordagem proposta auxilia os profissionais de teste na identificação de requisitos de teste que possam apresentar o problema da não executabilidade. As principais contribuições deste trabalho incluem a elaboração de um catálogo de propriedades, a definição da abordagem Nonexec, a implementação da ferramenta Fi-paths e a integração da ferramenta Valipar. Além disso, foram definidos novos termos relacionados ao problema da não executabilidade, tais como requisito de teste possivelmente não executável e requisito de teste dificilmente executável.
publishDate 2023
dc.date.none.fl_str_mv 2023-08-24
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 https://www.teses.usp.br/teses/disponiveis/55/55134/tde-19122023-151021/
url https://www.teses.usp.br/teses/disponiveis/55/55134/tde-19122023-151021/
dc.language.iso.fl_str_mv por
language por
dc.relation.none.fl_str_mv
dc.rights.driver.fl_str_mv Liberar o conteúdo para acesso público.
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Liberar o conteúdo para acesso público.
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.coverage.none.fl_str_mv
dc.publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
dc.source.none.fl_str_mv
reponame:Biblioteca Digital de Teses e Dissertações da USP
instname:Universidade de São Paulo (USP)
instacron:USP
instname_str Universidade de São Paulo (USP)
instacron_str USP
institution USP
reponame_str Biblioteca Digital de Teses e Dissertações da USP
collection Biblioteca Digital de Teses e Dissertações da USP
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)
repository.mail.fl_str_mv virginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.br
_version_ 1815257140501151744