SiMut: um framework automatizado para apoiar a redução do custo do teste de mutação com base em similaridade de programas
| Main Author: | |
|---|---|
| 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 |