Reducing the cost of mutation testing based on the primitive arcs concept
Autor: | Kuroishi, Pedro Henrique |
---|---|
Přispěvatelé: | Vincenzi, Auri Marcelo Rizzo |
Jazyk: | portugalština |
Rok vydání: | 2021 |
Předmět: |
Mutantes equivalentes
Redução de custo Testing criterion Mutation testing Análise de fluxo de controle Control flow-analysis CIENCIA DA COMPUTACAO [CIENCIAS EXATAS E DA TERRA] Cost reduction Teste de mutação Mutantes minimais Minimal mutants Equivalent mutants Arcos primitivos Critérios de teste Primitive arcs |
Zdroj: | Repositório Institucional da UFSCAR Universidade Federal de São Carlos (UFSCAR) instacron:UFSCAR |
Popis: | Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) 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. 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. CAPES: Código de Financiamento 001 |
Databáze: | OpenAIRE |
Externí odkaz: |