Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos
Autor(a) principal: | |
---|---|
Data de Publicação: | 2021 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFSCAR |
Texto Completo: | https://repositorio.ufscar.br/handle/ufscar/13845 |
Resumo: | Context: Software testing plays an important role in quality assurance. Testing techniques and criteria help the tester to develop and assess test suites. Mutation testing is a fault-based testing criterion commonly used to evaluate the quality of test suites. However, a high computational cost to generate and execute the mutants and the existence of equivalent prevent mutation testing to be widely applied in practical situations. In this sense, it is important to propose studies to overcome such problems. Objective: This work presents an approach that combined mutation testing and the concept of primitive arcs, used in the context of control-flow testing criteria, to reduce the cost of mutation testing. Overall, the goal was to verify if the execution of a subset of mutants located on the primitive arcs of a program under testing reduces the number of mutants and maintains a high mutation score. Next, this work evaluated the relationship between minimal mutants and primitive arcs. If both hypotheses confirm, it is possible to design new testing criteria based on the results obtained. Method: This work presented an experimental study to evaluate the proposed approach. To carry out the experiment, this work considered a set of 29 programs in C already used in other studies involving mutation testing. Results: The results showed that the approach reduced the number of mutants and achieved a high mutation score. Besides, the results showed that the primitive arcs concentrated a high percentage of minimal mutants. Then, the approach was compared to random mutation. The results showed that mutation on primitive arcs was slightly better than random mutation. Finally, this work presents a set of testing criteria based on the results obtained. Conclusion: Although powerful to detect faults, mutation testing still requires some improvements to large use in industry. The proposed approach may guide further works once the results obtained showed that the combination of mutation testing and primitive arcs might be a promising alternative. Thus, a broad experimental study using industry level programs and different test suites, may bring different results and hence, bring some contribution to the community. |
id |
SCAR_8a0d6ba99927183e9e38cc2d7d1d973f |
---|---|
oai_identifier_str |
oai:repositorio.ufscar.br:ufscar/13845 |
network_acronym_str |
SCAR |
network_name_str |
Repositório Institucional da UFSCAR |
repository_id_str |
4322 |
spelling |
Kuroishi, Pedro HenriqueVincenzi, Auri Marcelo Rizzohttp://lattes.cnpq.br/0611351138131709http://lattes.cnpq.br/85283234783566757145474d-0f26-4edc-8860-5257d32f91a42021-02-12T17:37:08Z2021-02-12T17:37:08Z2021-02-02KUROISHI, Pedro Henrique. Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos. 2021. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, São Carlos, 2021. Disponível em: https://repositorio.ufscar.br/handle/ufscar/13845.https://repositorio.ufscar.br/handle/ufscar/13845Context: Software testing plays an important role in quality assurance. Testing techniques and criteria help the tester to develop and assess test suites. Mutation testing is a fault-based testing criterion commonly used to evaluate the quality of test suites. However, a high computational cost to generate and execute the mutants and the existence of equivalent prevent mutation testing to be widely applied in practical situations. In this sense, it is important to propose studies to overcome such problems. Objective: This work presents an approach that combined mutation testing and the concept of primitive arcs, used in the context of control-flow testing criteria, to reduce the cost of mutation testing. Overall, the goal was to verify if the execution of a subset of mutants located on the primitive arcs of a program under testing reduces the number of mutants and maintains a high mutation score. Next, this work evaluated the relationship between minimal mutants and primitive arcs. If both hypotheses confirm, it is possible to design new testing criteria based on the results obtained. Method: This work presented an experimental study to evaluate the proposed approach. To carry out the experiment, this work considered a set of 29 programs in C already used in other studies involving mutation testing. Results: The results showed that the approach reduced the number of mutants and achieved a high mutation score. Besides, the results showed that the primitive arcs concentrated a high percentage of minimal mutants. Then, the approach was compared to random mutation. The results showed that mutation on primitive arcs was slightly better than random mutation. Finally, this work presents a set of testing criteria based on the results obtained. Conclusion: Although powerful to detect faults, mutation testing still requires some improvements to large use in industry. The proposed approach may guide further works once the results obtained showed that the combination of mutation testing and primitive arcs might be a promising alternative. Thus, a broad experimental study using industry level programs and different test suites, may bring different results and hence, bring some contribution to the community.Contexto: O teste de software é uma atividade fundamental que auxilia na garantia de qualidade de software. Diversas técnicas e critérios auxiliam o testador a derivar e avaliar requisitos de teste. O teste de mutação é um critério do teste baseado em defeitos bastante utilizado para avaliar a qualidade de conjuntos de teste. Entretanto, o alto custo computacional para gerar e executar os mutantes, além da existência de mutantes equivalentes, dificulta uma ampla utilização do critério em situações práticas. Neste contexto, torna-se necessário propor diferentes abordagens com o objetivo de viabilizar o teste de mutação. Objetivos: O objetivo deste trabalho é propor e avaliar uma abordagem de redução do custo do teste de mutação que engloba teste de mutação e o conceito de arcos primitivos, utilizado no contexto dos critérios de fluxo de controle. De forma geral, o objetivo é verificar se ao executar apenas os mutantes localizados no conjunto de arcos primitivos de um programa em teste, é possível reduzir o número de mutantes executados e manter um alto escore de mutação. Outro ponto do trabalho, está relacionado aos mutantes minimais, ou seja, o objetivo é verificar se é possível relacionar a geração dos mutantes minimais no contexto dos arcos primitivos. Caso as hipóteses se confirmem, é possível derivar novos critérios de teste a partir dos resultados obtidos. Método: Para condução deste trabalho, foi realizado um estudo experimental para avaliar a validade da abordagem proposta. Para isso, utilizou-se um conjunto de 29 programas em C de diversos domínio e empregados em diversos estudos envolvendo mutação. Resultados: Os resultados obtidos mostram que foi possível reduzir o número de mutantes e preservar um alto escore de mutação. Além disso, observou-se uma alta concentração de mutantes minimais nos arcos primitivos. Ao comparar a abordagem proposta com uma abordagem já existente, os resultados mostram que a mutação nos arcos primitivos foi superior à mutação aleatória. Por fim, a partir dos resultados, foi possível definir novos critérios de teste envolvendo teste de mutação e arcos primitivos. Conclusão: Embora seja um critério bastante poderoso para detectar defeitos, é notório que o teste de mutação necessita de melhorias para uma maior utilização na indústria. A abordagem proposta pode guiar novos trabalhos, uma vez que os resultados mostram que combinar teste de mutação e arcos primitivos apresentou-se como uma alternativa promissora. Neste sentido, ampliar o experimento com diferentes conjuntos de teste e avaliá-los em programas mais complexos, de nível industrial, pode trazer novos resultados e, assim, apresentar novas contribuições para a comunidade.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)CAPES: Código de Financiamento 001porUniversidade Federal de São CarlosCâmpus São CarlosPrograma de Pós-Graduação em Ciência da Computação - PPGCCUFSCarAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessTeste de mutaçãoAnálise de fluxo de controleArcos primitivosRedução de custoMutantes equivalentesMutantes minimaisCritérios de testeMutation testingControl flow-analysisPrimitive arcsCost reductionEquivalent mutantsMinimal mutantsTesting criterionCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOReduzindo o custo do teste de mutação com base no conceito de arcos primitivosReducing the cost of mutation testing based on the primitive arcs conceptinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesis600600d0b4a7ac-bc77-444f-a8c8-b7b9011ba495reponame:Repositório Institucional da UFSCARinstname:Universidade Federal de São Carlos (UFSCAR)instacron:UFSCARORIGINALDissertacao_PedroHenriqueKuroishi.pdfDissertacao_PedroHenriqueKuroishi.pdfapplication/pdf685552https://repositorio.ufscar.br/bitstream/ufscar/13845/1/Dissertacao_PedroHenriqueKuroishi.pdfe1649f7a64088f2d2ab703947ec0d5dfMD51CartaAutorizacaoPublicacao.pdfCartaAutorizacaoPublicacao.pdfapplication/pdf86120https://repositorio.ufscar.br/bitstream/ufscar/13845/2/CartaAutorizacaoPublicacao.pdf46537cd61d92c85339d49de39a9dc478MD52CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufscar.br/bitstream/ufscar/13845/3/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD53TEXTDissertacao_PedroHenriqueKuroishi.pdf.txtDissertacao_PedroHenriqueKuroishi.pdf.txtExtracted texttext/plain149226https://repositorio.ufscar.br/bitstream/ufscar/13845/4/Dissertacao_PedroHenriqueKuroishi.pdf.txtd0cdb524206990e977d396bc1c7d7ff8MD54CartaAutorizacaoPublicacao.pdf.txtCartaAutorizacaoPublicacao.pdf.txtExtracted texttext/plain1520https://repositorio.ufscar.br/bitstream/ufscar/13845/6/CartaAutorizacaoPublicacao.pdf.txtb00798bbebf69247325925ea6275c8f7MD56THUMBNAILDissertacao_PedroHenriqueKuroishi.pdf.jpgDissertacao_PedroHenriqueKuroishi.pdf.jpgIM Thumbnailimage/jpeg8013https://repositorio.ufscar.br/bitstream/ufscar/13845/5/Dissertacao_PedroHenriqueKuroishi.pdf.jpg7fb37216d4280cddee8cff63a4ff8db3MD55CartaAutorizacaoPublicacao.pdf.jpgCartaAutorizacaoPublicacao.pdf.jpgIM Thumbnailimage/jpeg13394https://repositorio.ufscar.br/bitstream/ufscar/13845/7/CartaAutorizacaoPublicacao.pdf.jpgc79eb79684c738e237bb16f1ffd592fcMD57ufscar/138452023-09-18 18:32:06.51oai:repositorio.ufscar.br:ufscar/13845Repositório InstitucionalPUBhttps://repositorio.ufscar.br/oai/requestopendoar:43222023-09-18T18:32:06Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)false |
dc.title.por.fl_str_mv |
Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos |
dc.title.alternative.eng.fl_str_mv |
Reducing the cost of mutation testing based on the primitive arcs concept |
title |
Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos |
spellingShingle |
Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos Kuroishi, Pedro Henrique Teste de mutação Análise de fluxo de controle Arcos primitivos Redução de custo Mutantes equivalentes Mutantes minimais Critérios de teste Mutation testing Control flow-analysis Primitive arcs Cost reduction Equivalent mutants Minimal mutants Testing criterion CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
title_short |
Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos |
title_full |
Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos |
title_fullStr |
Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos |
title_full_unstemmed |
Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos |
title_sort |
Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos |
author |
Kuroishi, Pedro Henrique |
author_facet |
Kuroishi, Pedro Henrique |
author_role |
author |
dc.contributor.authorlattes.por.fl_str_mv |
http://lattes.cnpq.br/8528323478356675 |
dc.contributor.author.fl_str_mv |
Kuroishi, Pedro Henrique |
dc.contributor.advisor1.fl_str_mv |
Vincenzi, Auri Marcelo Rizzo |
dc.contributor.advisor1Lattes.fl_str_mv |
http://lattes.cnpq.br/0611351138131709 |
dc.contributor.authorID.fl_str_mv |
7145474d-0f26-4edc-8860-5257d32f91a4 |
contributor_str_mv |
Vincenzi, Auri Marcelo Rizzo |
dc.subject.por.fl_str_mv |
Teste de mutação Análise de fluxo de controle Arcos primitivos Redução de custo Mutantes equivalentes Mutantes minimais Critérios de teste |
topic |
Teste de mutação Análise de fluxo de controle Arcos primitivos Redução de custo Mutantes equivalentes Mutantes minimais Critérios de teste Mutation testing Control flow-analysis Primitive arcs Cost reduction Equivalent mutants Minimal mutants Testing criterion CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
dc.subject.eng.fl_str_mv |
Mutation testing Control flow-analysis Primitive arcs Cost reduction Equivalent mutants Minimal mutants Testing criterion |
dc.subject.cnpq.fl_str_mv |
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
description |
Context: Software testing plays an important role in quality assurance. Testing techniques and criteria help the tester to develop and assess test suites. Mutation testing is a fault-based testing criterion commonly used to evaluate the quality of test suites. However, a high computational cost to generate and execute the mutants and the existence of equivalent prevent mutation testing to be widely applied in practical situations. In this sense, it is important to propose studies to overcome such problems. Objective: This work presents an approach that combined mutation testing and the concept of primitive arcs, used in the context of control-flow testing criteria, to reduce the cost of mutation testing. Overall, the goal was to verify if the execution of a subset of mutants located on the primitive arcs of a program under testing reduces the number of mutants and maintains a high mutation score. Next, this work evaluated the relationship between minimal mutants and primitive arcs. If both hypotheses confirm, it is possible to design new testing criteria based on the results obtained. Method: This work presented an experimental study to evaluate the proposed approach. To carry out the experiment, this work considered a set of 29 programs in C already used in other studies involving mutation testing. Results: The results showed that the approach reduced the number of mutants and achieved a high mutation score. Besides, the results showed that the primitive arcs concentrated a high percentage of minimal mutants. Then, the approach was compared to random mutation. The results showed that mutation on primitive arcs was slightly better than random mutation. Finally, this work presents a set of testing criteria based on the results obtained. Conclusion: Although powerful to detect faults, mutation testing still requires some improvements to large use in industry. The proposed approach may guide further works once the results obtained showed that the combination of mutation testing and primitive arcs might be a promising alternative. Thus, a broad experimental study using industry level programs and different test suites, may bring different results and hence, bring some contribution to the community. |
publishDate |
2021 |
dc.date.accessioned.fl_str_mv |
2021-02-12T17:37:08Z |
dc.date.available.fl_str_mv |
2021-02-12T17:37:08Z |
dc.date.issued.fl_str_mv |
2021-02-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.citation.fl_str_mv |
KUROISHI, Pedro Henrique. Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos. 2021. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, São Carlos, 2021. Disponível em: https://repositorio.ufscar.br/handle/ufscar/13845. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufscar.br/handle/ufscar/13845 |
identifier_str_mv |
KUROISHI, Pedro Henrique. Reduzindo o custo do teste de mutação com base no conceito de arcos primitivos. 2021. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, São Carlos, 2021. Disponível em: https://repositorio.ufscar.br/handle/ufscar/13845. |
url |
https://repositorio.ufscar.br/handle/ufscar/13845 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.relation.confidence.fl_str_mv |
600 600 |
dc.relation.authority.fl_str_mv |
d0b4a7ac-bc77-444f-a8c8-b7b9011ba495 |
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 São Carlos |
dc.publisher.program.fl_str_mv |
Programa de Pós-Graduação em Ciência da Computação - PPGCC |
dc.publisher.initials.fl_str_mv |
UFSCar |
publisher.none.fl_str_mv |
Universidade Federal de São Carlos Câmpus São Carlos |
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/bitstream/ufscar/13845/1/Dissertacao_PedroHenriqueKuroishi.pdf https://repositorio.ufscar.br/bitstream/ufscar/13845/2/CartaAutorizacaoPublicacao.pdf https://repositorio.ufscar.br/bitstream/ufscar/13845/3/license_rdf https://repositorio.ufscar.br/bitstream/ufscar/13845/4/Dissertacao_PedroHenriqueKuroishi.pdf.txt https://repositorio.ufscar.br/bitstream/ufscar/13845/6/CartaAutorizacaoPublicacao.pdf.txt https://repositorio.ufscar.br/bitstream/ufscar/13845/5/Dissertacao_PedroHenriqueKuroishi.pdf.jpg https://repositorio.ufscar.br/bitstream/ufscar/13845/7/CartaAutorizacaoPublicacao.pdf.jpg |
bitstream.checksum.fl_str_mv |
e1649f7a64088f2d2ab703947ec0d5df 46537cd61d92c85339d49de39a9dc478 e39d27027a6cc9cb039ad269a5db8e34 d0cdb524206990e977d396bc1c7d7ff8 b00798bbebf69247325925ea6275c8f7 7fb37216d4280cddee8cff63a4ff8db3 c79eb79684c738e237bb16f1ffd592fc |
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 |
|
_version_ |
1802136386342486016 |