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

Detalhes bibliográficos
Ano de defesa: 2015
Autor(a) principal: Araújo, Claudio Antônio de lattes
Orientador(a): Vincenzi, Auri Marcelo Rizzo lattes
Banca de defesa: Vincenzi, Auri Marcelo Rizzo, Valente, Marco Túlio de Oliveira, Lucena, Fábio Nogueira de
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Goiás
Programa de Pós-Graduação: Programa de Pós-graduação em Ciência da Computação (INF)
Departamento: Instituto de Informática - INF (RG)
País: Brasil
Palavras-chave em Português:
Palavras-chave em Inglês:
Área do conhecimento CNPq:
Link de acesso: http://repositorio.bc.ufg.br/tede/handle/tede/5486
Resumo: 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.