Uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática

Submitted by Luciana Ferreira (lucgeral@gmail.com) on 2016-04-18T13:33:01Z No. of bitstreams: 2 Dissertação - Cláudio Antônio de Araújo - 2015.pdf: 6483664 bytes, checksum: bf12aa2fbdc30e9456d8036d9cc24fd1 (MD5) license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) === Approved...

Full description

Bibliographic Details
Main Author: Araújo, Claudio Antônio de
Other Authors: Vincenzi, Auri Marcelo Rizzo
Format: Others
Language:Portuguese
Published: Universidade Federal de Goiás 2016
Subjects:
Online Access:http://repositorio.bc.ufg.br/tede/handle/tede/5486
id ndltd-IBICT-oai-repositorio.bc.ufg.br-tede-5486
record_format oai_dc
collection NDLTD
language Portuguese
format Others
sources NDLTD
topic Teste de software
Teste de mutação
Warning
Análise estática
Analisadores estáticos
Software testing
Mutants
Warnings
Static analysis
Static analyzer evaluation
CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
spellingShingle Teste de software
Teste de mutação
Warning
Análise estática
Analisadores estáticos
Software testing
Mutants
Warnings
Static analysis
Static analyzer evaluation
CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
Araújo, Claudio Antônio de
Uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática
description Submitted by Luciana Ferreira (lucgeral@gmail.com) on 2016-04-18T13:33:01Z No. of bitstreams: 2 Dissertação - Cláudio Antônio de Araújo - 2015.pdf: 6483664 bytes, checksum: bf12aa2fbdc30e9456d8036d9cc24fd1 (MD5) license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) === Approved for entry into archive by Luciana Ferreira (lucgeral@gmail.com) on 2016-04-18T13:34:40Z (GMT) No. of bitstreams: 2 Dissertação - Cláudio Antônio de Araújo - 2015.pdf: 6483664 bytes, checksum: bf12aa2fbdc30e9456d8036d9cc24fd1 (MD5) license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) === Made available in DSpace on 2016-04-18T13:34:40Z (GMT). No. of bitstreams: 2 Dissertação - Cláudio Antônio de Araújo - 2015.pdf: 6483664 bytes, checksum: bf12aa2fbdc30e9456d8036d9cc24fd1 (MD5) license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) Previous issue date: 2015-12-04 === Traditionally, mutation testing is used for test set and/or test criteria evaluation once it is considered a good fault model. Since static analyzers, in general, report a substantial number of false positive warnings, Objective: This paper uses mutation testing for evaluating an automated static analyzer. The intention of this study is to define a prioritization approach of static warnings based on their correspondence with mutations. Method: We used mutation operators as a fault model to evaluate the direct correspondence between mutations and static warnings. The main advantage of using mutation operators is that they generate a large number of programs containing faults of different types, which can be used to decide the ones most probable to be detected by static analyzers. Results: The results obtained for a set of open-source programs indicate that: 1) correspondence exists when considering specific mutation operators such that static warnings may be prioritized based on their correspondence level with mutations; 2) correspondence exists when considering specific warning categories such that, assuming we perform static analysis considering these warning categories, mutation operators may be prioritized based on their correspondence level with warnings. Conclusion: It is possible to provide an incremental testing strategy aiming at reducing the cost of both static analysis and mutation testing using the correspondence information. On the other hand, knowing that Mutation Test has a high application cost, we identified mutations of some specific mutation operators, which an automatic static analyzer is not able to detect. Therefore, this information can used to prioritize the order of applying mutation operators incrementally considering, firstly, those with no correspondence with static warnings. === Considerando que: 1) analisadores estáticos automatizados são ferramentas que emitem avisos, sem que seja necessário a execução do produto de software correspondente, alertando sobre a presença de possíveis defeitos no código. Uma das críticas a tais ferramentas é a grande quantidade de avisos falsos positivos emitidos, isto é, avisos relatados que não correspondem a defeitos reais, mas demandam tempo de análise por parte do desenvolvedor; 2) tradicionalmente, o Teste de Mutação tem sido utilizado para avaliar (e melhorar) a qualidade de conjuntos de casos de teste e/ou de critérios de teste, uma vez que é considerado um bom gerador de defeitos de software. Objetivo: O objetivo do presente trabalho é investigar a correspondência entre avisos estáticos e mutações e, com isso, verificar quais avisos estão mais relacionados a esses possíveis defeitos (mutações) e, assim, possivelmente, serem avisos verdadeiros positivos. Método: Os operadores de mutação são utilizados neste trabalho como um modelo de defeitos para avaliar a correspondência entre mutações e avisos estáticos. A principal vantagem da utilização de operadores de mutação é que eles geram um grande número de programas com defeitos de diferentes tipos. Esses tipos de defeitos são usados em estudos experimentais para investigar a capacidade dos analisadores estáticos em detectá-los. Resultados: Os resultados obtidos com estudos experimentais para um conjunto de sistemas de código aberto indicam que existe correspondência quando são considerados alguns operadores de mutação da μJava e alguns tipos de avisos da FindBugs. Conclusão: Os resultados obtidos podem ser utilizados de duas maneiras distintas: Primeiro, é fornecida uma abordagem de análise incremental dos avisos, de acordo com o grau de correspondência com mutações. Segundo, com o objetivo de reduzir o custo do Teste de Mutação é fornecida uma abordagem de priorização incremental para análise dos mutantes dos operadores cujas mutações são menos “percebidas” pela FindBugs.
author2 Vincenzi, Auri Marcelo Rizzo
author_facet Vincenzi, Auri Marcelo Rizzo
Araújo, Claudio Antônio de
author Araújo, Claudio Antônio de
author_sort Araújo, Claudio Antônio de
title Uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática
title_short Uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática
title_full Uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática
title_fullStr Uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática
title_full_unstemmed Uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática
title_sort uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática
publisher Universidade Federal de Goiás
publishDate 2016
url http://repositorio.bc.ufg.br/tede/handle/tede/5486
work_keys_str_mv AT araujoclaudioantoniode umainvestigacaodacorrespondenciaentremutacoeseavisosrelatadosporferramentadeanaliseestatica
AT araujoclaudioantoniode investigatingthecorrespondencebetweenmutationsandstaticwarningsreportedbystaticanalysistool
_version_ 1718896569847119872
spelling ndltd-IBICT-oai-repositorio.bc.ufg.br-tede-54862019-01-21T22:38:10Z Uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática Investigating the correspondence between mutations and static warnings reported by static analysis tool Araújo, Claudio Antônio de Vincenzi, Auri Marcelo Rizzo Vincenzi, Auri Marcelo Rizzo Valente, Marco Túlio de Oliveira Lucena, Fábio Nogueira de Teste de software Teste de mutação Warning Análise estática Analisadores estáticos Software testing Mutants Warnings Static analysis Static analyzer evaluation CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO Submitted by Luciana Ferreira (lucgeral@gmail.com) on 2016-04-18T13:33:01Z No. of bitstreams: 2 Dissertação - Cláudio Antônio de Araújo - 2015.pdf: 6483664 bytes, checksum: bf12aa2fbdc30e9456d8036d9cc24fd1 (MD5) license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) Approved for entry into archive by Luciana Ferreira (lucgeral@gmail.com) on 2016-04-18T13:34:40Z (GMT) No. of bitstreams: 2 Dissertação - Cláudio Antônio de Araújo - 2015.pdf: 6483664 bytes, checksum: bf12aa2fbdc30e9456d8036d9cc24fd1 (MD5) license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) Made available in DSpace on 2016-04-18T13:34:40Z (GMT). No. of bitstreams: 2 Dissertação - Cláudio Antônio de Araújo - 2015.pdf: 6483664 bytes, checksum: bf12aa2fbdc30e9456d8036d9cc24fd1 (MD5) license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) Previous issue date: 2015-12-04 Traditionally, mutation testing is used for test set and/or test criteria evaluation once it is considered a good fault model. Since static analyzers, in general, report a substantial number of false positive warnings, Objective: This paper uses mutation testing for evaluating an automated static analyzer. The intention of this study is to define a prioritization approach of static warnings based on their correspondence with mutations. Method: We used mutation operators as a fault model to evaluate the direct correspondence between mutations and static warnings. The main advantage of using mutation operators is that they generate a large number of programs containing faults of different types, which can be used to decide the ones most probable to be detected by static analyzers. Results: The results obtained for a set of open-source programs indicate that: 1) correspondence exists when considering specific mutation operators such that static warnings may be prioritized based on their correspondence level with mutations; 2) correspondence exists when considering specific warning categories such that, assuming we perform static analysis considering these warning categories, mutation operators may be prioritized based on their correspondence level with warnings. Conclusion: It is possible to provide an incremental testing strategy aiming at reducing the cost of both static analysis and mutation testing using the correspondence information. On the other hand, knowing that Mutation Test has a high application cost, we identified mutations of some specific mutation operators, which an automatic static analyzer is not able to detect. Therefore, this information can used to prioritize the order of applying mutation operators incrementally considering, firstly, those with no correspondence with static warnings. Considerando que: 1) analisadores estáticos automatizados são ferramentas que emitem avisos, sem que seja necessário a execução do produto de software correspondente, alertando sobre a presença de possíveis defeitos no código. Uma das críticas a tais ferramentas é a grande quantidade de avisos falsos positivos emitidos, isto é, avisos relatados que não correspondem a defeitos reais, mas demandam tempo de análise por parte do desenvolvedor; 2) tradicionalmente, o Teste de Mutação tem sido utilizado para avaliar (e melhorar) a qualidade de conjuntos de casos de teste e/ou de critérios de teste, uma vez que é considerado um bom gerador de defeitos de software. Objetivo: O objetivo do presente trabalho é investigar a correspondência entre avisos estáticos e mutações e, com isso, verificar quais avisos estão mais relacionados a esses possíveis defeitos (mutações) e, assim, possivelmente, serem avisos verdadeiros positivos. Método: Os operadores de mutação são utilizados neste trabalho como um modelo de defeitos para avaliar a correspondência entre mutações e avisos estáticos. A principal vantagem da utilização de operadores de mutação é que eles geram um grande número de programas com defeitos de diferentes tipos. Esses tipos de defeitos são usados em estudos experimentais para investigar a capacidade dos analisadores estáticos em detectá-los. Resultados: Os resultados obtidos com estudos experimentais para um conjunto de sistemas de código aberto indicam que existe correspondência quando são considerados alguns operadores de mutação da μJava e alguns tipos de avisos da FindBugs. Conclusão: Os resultados obtidos podem ser utilizados de duas maneiras distintas: Primeiro, é fornecida uma abordagem de análise incremental dos avisos, de acordo com o grau de correspondência com mutações. Segundo, com o objetivo de reduzir o custo do Teste de Mutação é fornecida uma abordagem de priorização incremental para análise dos mutantes dos operadores cujas mutações são menos “percebidas” pela FindBugs. 2016-04-18T13:34:40Z 2015-12-04 info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/masterThesis ARAÚJO, Claudio A. Uma investigação da correspondência entre mutações e avisos relatados por ferramenta de análise estática. 2015. 89 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Goiás, Goiânia, 2015. http://repositorio.bc.ufg.br/tede/handle/tede/5486 por -3303550325223384799 600 600 600 -7712266734633644768 -862078257083325301 http://creativecommons.org/licenses/by-nc-nd/4.0/ info:eu-repo/semantics/openAccess application/pdf Universidade Federal de Goiás Programa de Pós-graduação em Ciência da Computação (INF) UFG Brasil Instituto de Informática - INF (RG) reponame:Biblioteca Digital de Teses e Dissertações da UFG instname:Universidade Federal de Goiás instacron:UFG