Testes Mutantes com Pitest
Tags: java, testing, tutorial, pitest
Published: 2023-09-08 20:39:21

### 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>
```

#### 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

```

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

Exemplo de saída no console:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/svppgx4td5gmujnkljp4.png)

Exemplo de relatório:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nalhpbvbha6mss0ataf6.png)

#### 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.