Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte

Detalhes bibliográficos
Autor(a) principal: Brito Junior, Claudinei
Data de Publicação: 2022
Tipo de documento: Dissertação
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-14072022-162044/
Resumo: Com o objetivo de garantir que um software esteja sendo construído de acordo com suas especificações estabelecidas, a Engenharia de Software dispõe de uma série de atividades, processos e métodos que coletivamente são chamados de Validação, Verificação e Teste. O processo de teste de software pode ser definido como a execução de um programa com determinadas entradas e verificação da consonância das saídas com as saídas esperadas de acordo com as especificações do programa. Na tentativa de cumprir com seu objetivo, o teste de software pode ser dividido em diversas fases e etapas e conta com diversas técnicas e critérios, no qual cada técnica tem um objetivo específico e todas juntas se complementam. Um dos problemas fundamentais do teste de software é saber na prática ou na teoria quando já se testou o suficiente de um programa. O Teste de Mutação é um critério da técnica de Teste Baseado em Defeitos. É reconhecidamente um critério que pode auxiliar na criação de casos de teste com alta efetividade e capacidade de relevar defeitos. Esse critério mede a adequação de um determinado conjunto de casos de teste e assim fornece uma medida qualitativa da assertividade de um conjunto de teste com relação a um programa. A aplicação do teste de mutação se dá por meio de alterações no programa original, a fim de observar se o caso de teste consegue distinguir o comportamento do programa original e do programa alterado. Cada alteração realizada no programa original cria um novo programa chamado de Programa Mutante. Um dos problemas da aplicação do teste de mutação se dá pois normalmente são gerados muitos programas mutantes, mesmo para pequenos programas, o que eleva muito o custo computacional de geração e análise desses programas mutantes. Sendo assim, existem diversas técnicas que visam reduzir o custo computacional do teste de mutação. Essas técnicas normalmente são divididas em: (i) Do Fewer; (ii) Do Smarter; e (iii) Do Faster. Mutante minimal é um conceito pertencente às técnicas Do Fewer que procuram meios para reduzir o número de mutantes gerados. Este projeto tem como objetivo propor uma abordagem para identificação de mutantes minimais com base em suas localizações na estrutura do código-fonte e assim evitar a geração e execução de todos os mutantes. Para o desenvolvimento da abordagem, pretende-se utilizar uma representação de programas utilizadas na técnica de teste estrutural, o Grafo de Fluxo de Controle, e assim relacionar os mutantes minimais com lugares específicos do código, como por exemplo, nós essenciais do grafo de fluxo de controle. Uma vez desenvolvida a abordagem, pretende-se avaliá-la por meio de estudos empíricos com métricas já utilizadas na literatura em estudos prévios que visam reduzir o custo do teste de mutação. Como resultado final deste projeto, espera-se avançar o estado da arte na área de teste de software com uma abordagem mais eficiente para aplicação do critério teste de mutação
id USP_a07a8c219d3e98d677857efa45398a99
oai_identifier_str oai:teses.usp.br:tde-14072022-162044
network_acronym_str USP
network_name_str Biblioteca Digital de Teses e Dissertações da USP
repository_id_str 2721
spelling Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonteAn approach to identifying minimal and equivalent mutants based on source code structureEquivalent mutantsMinimal mutantsMutantes equivalentesMutantes minimaisMutation testingSoftware testingTeste de mutaçãoTeste de softwareCom o objetivo de garantir que um software esteja sendo construído de acordo com suas especificações estabelecidas, a Engenharia de Software dispõe de uma série de atividades, processos e métodos que coletivamente são chamados de Validação, Verificação e Teste. O processo de teste de software pode ser definido como a execução de um programa com determinadas entradas e verificação da consonância das saídas com as saídas esperadas de acordo com as especificações do programa. Na tentativa de cumprir com seu objetivo, o teste de software pode ser dividido em diversas fases e etapas e conta com diversas técnicas e critérios, no qual cada técnica tem um objetivo específico e todas juntas se complementam. Um dos problemas fundamentais do teste de software é saber na prática ou na teoria quando já se testou o suficiente de um programa. O Teste de Mutação é um critério da técnica de Teste Baseado em Defeitos. É reconhecidamente um critério que pode auxiliar na criação de casos de teste com alta efetividade e capacidade de relevar defeitos. Esse critério mede a adequação de um determinado conjunto de casos de teste e assim fornece uma medida qualitativa da assertividade de um conjunto de teste com relação a um programa. A aplicação do teste de mutação se dá por meio de alterações no programa original, a fim de observar se o caso de teste consegue distinguir o comportamento do programa original e do programa alterado. Cada alteração realizada no programa original cria um novo programa chamado de Programa Mutante. Um dos problemas da aplicação do teste de mutação se dá pois normalmente são gerados muitos programas mutantes, mesmo para pequenos programas, o que eleva muito o custo computacional de geração e análise desses programas mutantes. Sendo assim, existem diversas técnicas que visam reduzir o custo computacional do teste de mutação. Essas técnicas normalmente são divididas em: (i) Do Fewer; (ii) Do Smarter; e (iii) Do Faster. Mutante minimal é um conceito pertencente às técnicas Do Fewer que procuram meios para reduzir o número de mutantes gerados. Este projeto tem como objetivo propor uma abordagem para identificação de mutantes minimais com base em suas localizações na estrutura do código-fonte e assim evitar a geração e execução de todos os mutantes. Para o desenvolvimento da abordagem, pretende-se utilizar uma representação de programas utilizadas na técnica de teste estrutural, o Grafo de Fluxo de Controle, e assim relacionar os mutantes minimais com lugares específicos do código, como por exemplo, nós essenciais do grafo de fluxo de controle. Uma vez desenvolvida a abordagem, pretende-se avaliá-la por meio de estudos empíricos com métricas já utilizadas na literatura em estudos prévios que visam reduzir o custo do teste de mutação. Como resultado final deste projeto, espera-se avançar o estado da arte na área de teste de software com uma abordagem mais eficiente para aplicação do critério teste de mutaçãoAiming ensure that a software has been build in according with established specifications, Software Enginerring has a serie of activities, processes and methods that collectively are called Validation, Verification and Testing. The software testing process can be defined as the program execution with determined inputs and verification of outputs consonances with expected outputs according to program specification. Trying reach his object, software testing can be divided into several phases and steps and has several techniques and criterias, such as each technique has a specified aim and all together complement each other. One of software testing fundamental problem is to know in the practice and theory when have already tested sufficient. Mutation Testing is a criterion of Defect-Based Testing technique. It is recognized as a criterion that can aid in the creation of test cases with high effectiveness and ability to reveal defects. This criterion measures the adequacy of a given set of test cases and thus provides a qualitative measure of the assertiveness of a test set in relation to a program. The application of the mutation testing is done through changes in the original program, in order to observe if the test case can distinguish the behavior of the original program and the altered program. Each change made in the original program creates a new program called Mutant Program. One of the problems of applying the mutation test is that many mutant programs are generated, even for small programs, which greatly increases the computational cost of generating and analyzing these mutant programs. Thus, there are several techniques that aim to reduce the computational cost of the mutation test. These techniques are usually divided into: (i) Do Fewer; (ii) Do Smarter; and (iii) Faster. Minimal mutant is a concept belonging to Do Fewer techniques that seek means to reduce the number of mutants generated. This project aims to propose an approach to identify minimal mutants based on their locations in the source code structure and thus avoid the generation and execution of all mutants. For the development of the approach, we intend to use a representation of programs used in the structural test technique, the Control Flow Graph, and thus to relate the minimal mutants to specific places of the code, such as essential nodes of the control flow graph. Once the approach is developed, it is intended to be evaluated through empirical studies with metrics already used in the literature in previous studies aimed at reducing the cost of mutation testing. As a final result of this project, it is expected to advance the state of the art in the area of software testing with a more efficient approach to applying the mutation testing criterionBiblioteca Digitais de Teses e Dissertações da USPDelamaro, Márcio EduardoBrito Junior, Claudinei2022-05-02info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://www.teses.usp.br/teses/disponiveis/55/55134/tde-14072022-162044/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/openAccesspor2022-07-14T19:26:50Zoai:teses.usp.br:tde-14072022-162044Biblioteca 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:27212022-07-14T19:26:50Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)false
dc.title.none.fl_str_mv Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte
An approach to identifying minimal and equivalent mutants based on source code structure
title Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte
spellingShingle Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte
Brito Junior, Claudinei
Equivalent mutants
Minimal mutants
Mutantes equivalentes
Mutantes minimais
Mutation testing
Software testing
Teste de mutação
Teste de software
title_short Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte
title_full Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte
title_fullStr Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte
title_full_unstemmed Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte
title_sort Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte
author Brito Junior, Claudinei
author_facet Brito Junior, Claudinei
author_role author
dc.contributor.none.fl_str_mv Delamaro, Márcio Eduardo
dc.contributor.author.fl_str_mv Brito Junior, Claudinei
dc.subject.por.fl_str_mv Equivalent mutants
Minimal mutants
Mutantes equivalentes
Mutantes minimais
Mutation testing
Software testing
Teste de mutação
Teste de software
topic Equivalent mutants
Minimal mutants
Mutantes equivalentes
Mutantes minimais
Mutation testing
Software testing
Teste de mutação
Teste de software
description Com o objetivo de garantir que um software esteja sendo construído de acordo com suas especificações estabelecidas, a Engenharia de Software dispõe de uma série de atividades, processos e métodos que coletivamente são chamados de Validação, Verificação e Teste. O processo de teste de software pode ser definido como a execução de um programa com determinadas entradas e verificação da consonância das saídas com as saídas esperadas de acordo com as especificações do programa. Na tentativa de cumprir com seu objetivo, o teste de software pode ser dividido em diversas fases e etapas e conta com diversas técnicas e critérios, no qual cada técnica tem um objetivo específico e todas juntas se complementam. Um dos problemas fundamentais do teste de software é saber na prática ou na teoria quando já se testou o suficiente de um programa. O Teste de Mutação é um critério da técnica de Teste Baseado em Defeitos. É reconhecidamente um critério que pode auxiliar na criação de casos de teste com alta efetividade e capacidade de relevar defeitos. Esse critério mede a adequação de um determinado conjunto de casos de teste e assim fornece uma medida qualitativa da assertividade de um conjunto de teste com relação a um programa. A aplicação do teste de mutação se dá por meio de alterações no programa original, a fim de observar se o caso de teste consegue distinguir o comportamento do programa original e do programa alterado. Cada alteração realizada no programa original cria um novo programa chamado de Programa Mutante. Um dos problemas da aplicação do teste de mutação se dá pois normalmente são gerados muitos programas mutantes, mesmo para pequenos programas, o que eleva muito o custo computacional de geração e análise desses programas mutantes. Sendo assim, existem diversas técnicas que visam reduzir o custo computacional do teste de mutação. Essas técnicas normalmente são divididas em: (i) Do Fewer; (ii) Do Smarter; e (iii) Do Faster. Mutante minimal é um conceito pertencente às técnicas Do Fewer que procuram meios para reduzir o número de mutantes gerados. Este projeto tem como objetivo propor uma abordagem para identificação de mutantes minimais com base em suas localizações na estrutura do código-fonte e assim evitar a geração e execução de todos os mutantes. Para o desenvolvimento da abordagem, pretende-se utilizar uma representação de programas utilizadas na técnica de teste estrutural, o Grafo de Fluxo de Controle, e assim relacionar os mutantes minimais com lugares específicos do código, como por exemplo, nós essenciais do grafo de fluxo de controle. Uma vez desenvolvida a abordagem, pretende-se avaliá-la por meio de estudos empíricos com métricas já utilizadas na literatura em estudos prévios que visam reduzir o custo do teste de mutação. Como resultado final deste projeto, espera-se avançar o estado da arte na área de teste de software com uma abordagem mais eficiente para aplicação do critério teste de mutação
publishDate 2022
dc.date.none.fl_str_mv 2022-05-02
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://www.teses.usp.br/teses/disponiveis/55/55134/tde-14072022-162044/
url https://www.teses.usp.br/teses/disponiveis/55/55134/tde-14072022-162044/
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_ 1809090714530742272