SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas

Bibliographic Details
Main Author: Guarnieri, Giovanni Francesco
Publication Date: 2022
Format: Master thesis
Language: por
Source: Repositório Institucional da UFSCAR
Download full: https://repositorio.ufscar.br/handle/20.500.14289/16200
Summary: Context: Software testing is essential to ensure that the program actually correctly meets the user’s needs. Aware of the importance of this step, researchers have proposed several ways to identify program faults. Among the fault identification techniques, there is the mutation analysis criterion, or mutation testing, which has proven to be effective for fault identification, but, as it demands a high application cost, it is little efficient and hence avoided in the software industry. Given the potential of this criterion, researchers sought and presented ways to reduce the cost of mutation testing to make it more viable. However, as verified by several researchers, the results produced by cost reduction techniques for mutation testing applied in a program are valid only for the programs that were targeted in the performed experiments. Recently, some researchers, in their studies, have relied on the use of similarity between programs as a way to reuse experiences acquired in programs already tested with mutation testing. However, this is an approach that still lacks experiments using various forms of similarity. Objective: This work presents an implementation and evaluation of a framework called SiMut. This framework was introduced in a previous study with the aim of helping to reduce the cost of testing a program based on a group of similar programs previously tested with mutation. Methodology: The implementation presented in this work deals with programs written in the Java language and includes a set of variants that relate to three types of program abstractions (original source code, obfuscated source code, and internal complexity metrics), three similarity calculation strategies (clustering, distance functions between strings, and plagiarism) and a mutation cost reduction approach (inspired by Selective Mutation). The presented evaluation, using 35 small programs written in the Java language, covers 20 configurations varying the techniques of abstractions and similarities. Results: A cross-comparison involving the formed clusters and a comparison with randomly formed clusters points to configurations that tend to achieve high effectiveness in predicting the best mutation operators for programs not tested with mutation. Conclusions: Considering the configurations selected for the experiments, the results presented several combinations that are effective to predict the best mutation operators for untested programs, where the combinations that involved distance functions between strings stood out. Regarding the program abstractions used to calculate similarity, the original source code seems to be as relevant as the obfuscated source code and internal complexity metrics.
id SCAR_67191a752885a8e3742299c238f451bb
oai_identifier_str oai:repositorio.ufscar.br:20.500.14289/16200
network_acronym_str SCAR
network_name_str Repositório Institucional da UFSCAR
repository_id_str 4322
spelling Guarnieri, Giovanni FrancescoFerrari, Fabiano Cutigihttp://lattes.cnpq.br/3154345471250570http://lattes.cnpq.br/820217486789175909a74ec1-05ca-4b37-bd0f-7228b412b88d2022-05-27T13:54:54Z2022-05-27T13:54:54Z2022-03-30GUARNIERI, Giovanni Francesco. SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas. 2022. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, Sorocaba, 2022. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/16200.https://repositorio.ufscar.br/handle/20.500.14289/16200Context: Software testing is essential to ensure that the program actually correctly meets the user’s needs. Aware of the importance of this step, researchers have proposed several ways to identify program faults. Among the fault identification techniques, there is the mutation analysis criterion, or mutation testing, which has proven to be effective for fault identification, but, as it demands a high application cost, it is little efficient and hence avoided in the software industry. Given the potential of this criterion, researchers sought and presented ways to reduce the cost of mutation testing to make it more viable. However, as verified by several researchers, the results produced by cost reduction techniques for mutation testing applied in a program are valid only for the programs that were targeted in the performed experiments. Recently, some researchers, in their studies, have relied on the use of similarity between programs as a way to reuse experiences acquired in programs already tested with mutation testing. However, this is an approach that still lacks experiments using various forms of similarity. Objective: This work presents an implementation and evaluation of a framework called SiMut. This framework was introduced in a previous study with the aim of helping to reduce the cost of testing a program based on a group of similar programs previously tested with mutation. Methodology: The implementation presented in this work deals with programs written in the Java language and includes a set of variants that relate to three types of program abstractions (original source code, obfuscated source code, and internal complexity metrics), three similarity calculation strategies (clustering, distance functions between strings, and plagiarism) and a mutation cost reduction approach (inspired by Selective Mutation). The presented evaluation, using 35 small programs written in the Java language, covers 20 configurations varying the techniques of abstractions and similarities. Results: A cross-comparison involving the formed clusters and a comparison with randomly formed clusters points to configurations that tend to achieve high effectiveness in predicting the best mutation operators for programs not tested with mutation. Conclusions: Considering the configurations selected for the experiments, the results presented several combinations that are effective to predict the best mutation operators for untested programs, where the combinations that involved distance functions between strings stood out. Regarding the program abstractions used to calculate similarity, the original source code seems to be as relevant as the obfuscated source code and internal complexity metrics.Contexto: O teste de software é fundamental para garantir que o programa realmente atenda corretamente às necessidades do usuário. Cientes da importância desta etapa, pesquisadores propuseram diversas formas para identificar defeitos em programas. Entre elas, o critério Análise de Mutantes, ou teste de mutação, é comprovadamente efetivo mas, por demandar um alto custo de aplicação, é pouco eficiente e ainda não comumente adotado na indústria de software. Sabendo do potencial desse critério, pesquisadores buscaram e apresentaram formas de reduzir o custo do teste de mutação para torná-lo mais viável. Entretanto, como constatado por diversos pesquisadores, resultados das técnicas de redução de custo do teste de mutação aplicadas em um programa são válidos somente para os programas que foram alvos dos experimentos realizados. Recentemente, alguns pesquisadores, em seus estudos, se apoiaram no uso da similaridade entre programas como forma de reaproveitar experiências adquiridas em programas já testados com teste de mutação. Entretanto, essa é uma abordagem que ainda carece de experimentos utilizando variadas formas de similaridade. Objetivo: Neste trabalho apresentam-se uma implementação e uma avaliação de um framework denominado SiMut. Este framework foi introduzido em um estudo anterior com o objetivo de ajudar a reduzir o custo para testar um programa baseado em um grupo de programas similares previamente testados com mutação. Metodologia: A implementação apresentada neste trabalho lida com programas escritos na linguagem Java e inclui um conjunto de variantes que se relacionam a três tipos de abstrações de programas (código-fonte original, código-fonte ofuscado, e métricas de complexidade interna), três estratégias de cálculos de similaridade (clustering, funções de distância entre strings, e plagiarismo) e uma abordagem de redução de custo de mutação (inspirada na Mutação Seletiva). A avaliação apresentada, utilizando 35 pequenos programas escritos na linguagem Java, abrange 20 configurações variando-se as técnicas de abstrações de programas e similaridades. Resultados: Uma comparação cruzada envolvendo os clusters formados e uma comparação com clusters formados aleatoriamente aponta para as configurações que tendem a atingir alta efetividade em prever os melhores operadores de mutação para programas não testados com o teste de mutação. Conclusões: Considerando-se as configurações selecionadas para os experimentos, os resultados apresentaram diversas combinações que são efetivas para prever os melhores operadores de mutação para programas não testados, onde destacaram-se as combinações que envolveram funções de distância entre strings. Em relação às abstrações de programas utilizadas para calcular a similaridade, o código-fonte original parece ser tão relevante quanto o código-fonte ofuscado e as métricas internas de complexidade.Não recebi financiamentoporUniversidade Federal de São CarlosCâmpus SorocabaPrograma de Pós-Graduação em Ciência da Computação - PPGCC-SoUFSCarAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessTeste de softwareTeste de mutaçãoTécnicas de redução de custoSimilaridade de programasMutação seletivaAgrupamentoSoftware testingMutation testingCost reduction techniquesSimilarity of programsSelective mutationClusteringCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOSiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programasSiMut: an automated framework to support the cost reduction of mutation testing based on program similarityinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesis6006006b0a8934-16f6-40c0-95e1-34d73ec115c8reponame:Repositório Institucional da UFSCARinstname:Universidade Federal de São Carlos (UFSCAR)instacron:UFSCARCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufscar.br/bitstreams/97c522c4-ae6b-4986-afef-8af1ccfc94d0/downloade39d27027a6cc9cb039ad269a5db8e34MD54falseAnonymousREADORIGINALDissertacao_GiovanniFrancescoGuarnieri.pdfDissertacao_GiovanniFrancescoGuarnieri.pdfapplication/pdf1944431https://repositorio.ufscar.br/bitstreams/35c08852-2eca-4f67-990e-118e2fe3eb14/downloadaeb1d7dda5fc8e4062b5818b3ca91a00MD51trueAnonymousREADTermo de encaminhamento da versao definitiva.pdfTermo de encaminhamento da versao definitiva.pdfCarta Comprovante da Versão da Dissertaçãoapplication/pdf135564https://repositorio.ufscar.br/bitstreams/ac24335b-9676-46b3-8a78-449a69d91b81/download16fe9d8092a8ef4b8722e08571e5bf3bMD53falseTEXTDissertacao_GiovanniFrancescoGuarnieri.pdf.txtDissertacao_GiovanniFrancescoGuarnieri.pdf.txtExtracted texttext/plain204468https://repositorio.ufscar.br/bitstreams/6958322c-87ae-4870-b3fb-dc9103eeb64b/downloadf97924954a80f624bb3bdceee65fef90MD59falseAnonymousREADTermo de encaminhamento da versao definitiva.pdf.txtTermo de encaminhamento da versao definitiva.pdf.txtExtracted texttext/plain1270https://repositorio.ufscar.br/bitstreams/edd3c4fd-d44c-4273-a3c1-19e8b3310fbd/download06f7a6457d970d5cdc967d8ff7dfaa7eMD511falseTHUMBNAILDissertacao_GiovanniFrancescoGuarnieri.pdf.jpgDissertacao_GiovanniFrancescoGuarnieri.pdf.jpgIM Thumbnailimage/jpeg6510https://repositorio.ufscar.br/bitstreams/d0451dd5-3d3e-416d-95ff-36480f92de1e/downloadc5b8eca1f947aefd023b700ec3798129MD510falseAnonymousREADTermo de encaminhamento da versao definitiva.pdf.jpgTermo de encaminhamento da versao definitiva.pdf.jpgIM Thumbnailimage/jpeg13499https://repositorio.ufscar.br/bitstreams/195f9080-7eb4-41df-9317-537b1324aeb2/download810497b6ed0b25eacbbfa67be90f9208MD512false20.500.14289/162002025-02-05 21:26:11.43http://creativecommons.org/licenses/by-nc-nd/3.0/br/Attribution-NonCommercial-NoDerivs 3.0 Brazilopen.accessoai:repositorio.ufscar.br:20.500.14289/16200https://repositorio.ufscar.brRepositório InstitucionalPUBhttps://repositorio.ufscar.br/oai/requestrepositorio.sibi@ufscar.bropendoar:43222025-02-06T00:26:11Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)false
dc.title.eng.fl_str_mv SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas
dc.title.alternative.por.fl_str_mv SiMut: an automated framework to support the cost reduction of mutation testing based on program similarity
title SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas
spellingShingle SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas
Guarnieri, Giovanni Francesco
Teste de software
Teste de mutação
Técnicas de redução de custo
Similaridade de programas
Mutação seletiva
Agrupamento
Software testing
Mutation testing
Cost reduction techniques
Similarity of programs
Selective mutation
Clustering
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas
title_full SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas
title_fullStr SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas
title_full_unstemmed SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas
title_sort SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas
author Guarnieri, Giovanni Francesco
author_facet Guarnieri, Giovanni Francesco
author_role author
dc.contributor.authorlattes.por.fl_str_mv http://lattes.cnpq.br/8202174867891759
dc.contributor.author.fl_str_mv Guarnieri, Giovanni Francesco
dc.contributor.advisor1.fl_str_mv Ferrari, Fabiano Cutigi
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/3154345471250570
dc.contributor.authorID.fl_str_mv 09a74ec1-05ca-4b37-bd0f-7228b412b88d
contributor_str_mv Ferrari, Fabiano Cutigi
dc.subject.por.fl_str_mv Teste de software
Teste de mutação
Técnicas de redução de custo
Similaridade de programas
Mutação seletiva
Agrupamento
topic Teste de software
Teste de mutação
Técnicas de redução de custo
Similaridade de programas
Mutação seletiva
Agrupamento
Software testing
Mutation testing
Cost reduction techniques
Similarity of programs
Selective mutation
Clustering
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
dc.subject.eng.fl_str_mv Software testing
Mutation testing
Cost reduction techniques
Similarity of programs
Selective mutation
Clustering
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description Context: Software testing is essential to ensure that the program actually correctly meets the user’s needs. Aware of the importance of this step, researchers have proposed several ways to identify program faults. Among the fault identification techniques, there is the mutation analysis criterion, or mutation testing, which has proven to be effective for fault identification, but, as it demands a high application cost, it is little efficient and hence avoided in the software industry. Given the potential of this criterion, researchers sought and presented ways to reduce the cost of mutation testing to make it more viable. However, as verified by several researchers, the results produced by cost reduction techniques for mutation testing applied in a program are valid only for the programs that were targeted in the performed experiments. Recently, some researchers, in their studies, have relied on the use of similarity between programs as a way to reuse experiences acquired in programs already tested with mutation testing. However, this is an approach that still lacks experiments using various forms of similarity. Objective: This work presents an implementation and evaluation of a framework called SiMut. This framework was introduced in a previous study with the aim of helping to reduce the cost of testing a program based on a group of similar programs previously tested with mutation. Methodology: The implementation presented in this work deals with programs written in the Java language and includes a set of variants that relate to three types of program abstractions (original source code, obfuscated source code, and internal complexity metrics), three similarity calculation strategies (clustering, distance functions between strings, and plagiarism) and a mutation cost reduction approach (inspired by Selective Mutation). The presented evaluation, using 35 small programs written in the Java language, covers 20 configurations varying the techniques of abstractions and similarities. Results: A cross-comparison involving the formed clusters and a comparison with randomly formed clusters points to configurations that tend to achieve high effectiveness in predicting the best mutation operators for programs not tested with mutation. Conclusions: Considering the configurations selected for the experiments, the results presented several combinations that are effective to predict the best mutation operators for untested programs, where the combinations that involved distance functions between strings stood out. Regarding the program abstractions used to calculate similarity, the original source code seems to be as relevant as the obfuscated source code and internal complexity metrics.
publishDate 2022
dc.date.accessioned.fl_str_mv 2022-05-27T13:54:54Z
dc.date.available.fl_str_mv 2022-05-27T13:54:54Z
dc.date.issued.fl_str_mv 2022-03-30
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.citation.fl_str_mv GUARNIERI, Giovanni Francesco. SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas. 2022. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, Sorocaba, 2022. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/16200.
dc.identifier.uri.fl_str_mv https://repositorio.ufscar.br/handle/20.500.14289/16200
identifier_str_mv GUARNIERI, Giovanni Francesco. SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas. 2022. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, Sorocaba, 2022. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/16200.
url https://repositorio.ufscar.br/handle/20.500.14289/16200
dc.language.iso.fl_str_mv por
language por
dc.relation.confidence.fl_str_mv 600
600
dc.relation.authority.fl_str_mv 6b0a8934-16f6-40c0-95e1-34d73ec115c8
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de São Carlos
Câmpus Sorocaba
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Ciência da Computação - PPGCC-So
dc.publisher.initials.fl_str_mv UFSCar
publisher.none.fl_str_mv Universidade Federal de São Carlos
Câmpus Sorocaba
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSCAR
instname:Universidade Federal de São Carlos (UFSCAR)
instacron:UFSCAR
instname_str Universidade Federal de São Carlos (UFSCAR)
instacron_str UFSCAR
institution UFSCAR
reponame_str Repositório Institucional da UFSCAR
collection Repositório Institucional da UFSCAR
bitstream.url.fl_str_mv https://repositorio.ufscar.br/bitstreams/97c522c4-ae6b-4986-afef-8af1ccfc94d0/download
https://repositorio.ufscar.br/bitstreams/35c08852-2eca-4f67-990e-118e2fe3eb14/download
https://repositorio.ufscar.br/bitstreams/ac24335b-9676-46b3-8a78-449a69d91b81/download
https://repositorio.ufscar.br/bitstreams/6958322c-87ae-4870-b3fb-dc9103eeb64b/download
https://repositorio.ufscar.br/bitstreams/edd3c4fd-d44c-4273-a3c1-19e8b3310fbd/download
https://repositorio.ufscar.br/bitstreams/d0451dd5-3d3e-416d-95ff-36480f92de1e/download
https://repositorio.ufscar.br/bitstreams/195f9080-7eb4-41df-9317-537b1324aeb2/download
bitstream.checksum.fl_str_mv e39d27027a6cc9cb039ad269a5db8e34
aeb1d7dda5fc8e4062b5818b3ca91a00
16fe9d8092a8ef4b8722e08571e5bf3b
f97924954a80f624bb3bdceee65fef90
06f7a6457d970d5cdc967d8ff7dfaa7e
c5b8eca1f947aefd023b700ec3798129
810497b6ed0b25eacbbfa67be90f9208
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)
repository.mail.fl_str_mv repositorio.sibi@ufscar.br
_version_ 1834469073202708480