DEV Community

Cover image for Testes Mutantes com Pitest
Diego de Sousa Brandão
Diego de Sousa Brandão

Posted on

Testes Mutantes com Pitest

Introdução ao Plugin Pitest-Maven

O plugin Pitest-Maven é uma ferramenta de análise de mutação para projetos Java que permite avaliar a eficácia dos testes automatizados em encontrar defeitos no código-fonte. Essa ferramenta identifica mutações (alterações artificiais) no código e executa os testes automatizados para verificar se essas mutações são detectadas. O objetivo principal é avaliar a qualidade dos testes, identificando lacunas na cobertura e melhorando a confiabilidade do código.

O que o Plugin Pitest-Maven faz?

O Pitest-Maven realiza as seguintes tarefas principais:

Geração de Mutantes: O plugin cria mutantes, que são versões modificadas do código-fonte, introduzindo erros deliberados, como a troca de operadores matemáticos ou a remoção de declarações de código.

Execução de Testes: O plugin executa os testes automatizados definidos no projeto Java, usando os mutantes criados como entrada.

Avaliação de Cobertura: Ele analisa a cobertura dos testes em relação aos mutantes gerados. Se um mutante não for "morto" (ou seja, não for detectado como defeituoso pelos testes), ele é considerado um "sobrevivente".

Relatórios de Cobertura e Mutação: O plugin gera relatórios detalhados que mostram quais mutantes sobreviveram, quais foram mortos e a eficácia dos testes em encontrar defeitos no código.

Configuração em uma API REST usando Maven

Aqui está um tutorial passo a passo sobre como configurar o plugin Pitest-Maven em um projeto de API REST Java:

Pré-requisitos:
JDK instalado.
Maven instalado.
Um projeto de API REST Java existente.

Passo 1: Adicionar a Dependência do Pitest-Maven no POM.xml

Abra o arquivo pom.xml do seu projeto e adicione a seguinte dependência:

          <plugin>
                <groupId>org.pitest</groupId>
                <artifactId>pitest-maven</artifactId>
                <version>1.8.0</version>  <!-- Verifique a versão mais recente -->
                <dependencies>
                    <dependency>
                        <groupId>org.pitest</groupId>
                        <artifactId>pitest-junit5-plugin</artifactId>
                        <version>0.14</version>  <!-- Verifique a versão mais recente -->
                    </dependency>
                </dependencies>
                <configuration>
                    <targetTests>
                        <param>ADICIONE_AQUI_O_CAMINHO DA PASTA_ DOS_SEUS_TESTES*Test</param>
 <!-- EXEMPLO! <param>br.com.sw.api.*Test</param> Configurações de relatório aqui -->
                    </targetTests>
                </configuration>
            </plugin>
        </plugins>
Enter fullscreen mode Exit fullscreen mode

Passo 2: Executar o Plugin Pitest-Maven

Execute o plugin Pitest-Maven usando o seguinte comando Maven:

mvn test-compile org.pitest:pitest-maven:mutationCoverage

Enter fullscreen mode Exit fullscreen mode

Os relatórios gerados estarão disponíveis na pasta target/pit-reports.

Exemplo de saída no console:

Image description

Exemplo de relatório:

Image description

Conclusão

O plugin Pitest-Maven é uma ferramenta valiosa para melhorar a qualidade dos testes automatizados em projetos Java, incluindo APIs REST. Ele ajuda a identificar lacunas na cobertura de testes e aprimora a confiabilidade do código, garantindo que as mutações introduzidas deliberadamente sejam detectadas. Ao seguir este tutorial, você pode configurar e usar o Pitest-Maven em seu projeto de API REST, fortalecendo seus testes e aumentando a qualidade do seu software.

Top comments (2)

Collapse
 
khmarbaise profile image
Karl Heinz Marbaise

I recommend to upgrade pitest-maven-plugin to most recent version (1.14.4) as well as pitest-junit5-plugin to 1.2.0 ...

Collapse
 
diegobrandao profile image
Diego de Sousa Brandão

thanks budy, I added a message to " <!-- Check latest version -->"