Uma abordagem para identificação de mutantes minimais e equivalentes baseada na estrutura do código fonte - Brito Junior, Claudinei (2022)
Com o objetivo de garantir que um software esteja sendo construído de acordo com suas especificações estabelecidas, a Engenharia de Software dispõe de uma série de atividades, processos e métodos que coletivamente são chamados de Validação, Verificação e Teste. O processo de teste de software pode ser definido como a execução de um programa com determinadas entradas e verificação da consonância das saídas com as saídas esperadas de acordo com as especificações do programa. Na tentativa de cumprir com seu objetivo, o teste de software pode ser dividido em diversas fases e etapas e conta com diversas técnicas e critérios, no qual cada técnica tem um objetivo específico e todas juntas se complementam. Um dos problemas fundamentais do teste de software é saber na prática ou na teoria quando já se testou o suficiente de um programa. O Teste de Mutação é um critério da técnica de Teste Baseado em Defeitos. É reconhecidamente um critério que pode auxiliar na criação de casos de teste com alta efetividade e capacidade de relevar defeitos. Esse critério mede a adequação de um determinado conjunto de casos de teste e assim fornece uma medida qualitativa da assertividade de um conjunto de teste com relação a um programa. A aplicação do teste de mutação se dá por meio de alterações no programa original, a fim de observar se o caso de teste consegue distinguir o comportamento do programa original e do programa alterado. Cada alteração realizada no programa original cria um novo programa chamado de Programa Mutante. Um dos problemas da aplicação do teste de mutação se dá pois normalmente são gerados muitos programas mutantes, mesmo para pequenos programas, o que eleva muito o custo computacional de geração e análise desses programas mutantes. Sendo assim, existem diversas técnicas que visam reduzir o custo computacional do teste de mutação. Essas técnicas normalmente são divididas em: (i) Do Fewer; (ii) Do Smarter; e (iii) Do Faster. Mutante minimal é um conceito pertencente às técnicas Do Fewer que procuram meios para reduzir o número de mutantes gerados. Este projeto tem como objetivo propor uma abordagem para identificação de mutantes minimais com base em suas localizações na estrutura do código-fonte e assim evitar a geração e execução de todos os mutantes. Para o desenvolvimento da abordagem, pretende-se utilizar uma representação de programas utilizadas na técnica de teste estrutural, o Grafo de Fluxo de Controle, e assim relacionar os mutantes minimais com lugares específicos do código, como por exemplo, nós essenciais do grafo de fluxo de controle. Uma vez desenvolvida a abordagem, pretende-se avaliá-la por meio de estudos empíricos com métricas já utilizadas na literatura em estudos prévios que visam reduzir o custo do teste de mutação. Como resultado final deste projeto, espera-se avançar o estado da arte na área de teste de software com uma abordagem mais eficiente para aplicação do critério teste de mutação