Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[DevPR] Teste de mutação: testando os seus testes

[DevPR] Teste de mutação: testando os seus testes

Renan Delmonico

November 25, 2024
Tweet

More Decks by Renan Delmonico

Other Decks in Programming

Transcript

  1. Renan H. Delmonico ➔ 29 anos ➔ Graduado em Sistemas

    de Informação (Unipar) ➔ Especialista em desenvolvimento web e mobile (Alfa Umuarama) ➔ Desenvolvedor há mais de 10 anos ➔ Engenheiro de Software no PagSeguro International (antigo BoaCompra) ➔ Apaixonado por futebol 🌴👍🌍 e esporte eletrônico (CS2) 🔫 @renandelmonico @renandelmonico /renandelmonico /renandelmonico /renandelmonico [email protected]
  2. Como funciona? ➔ Parte de seu código é alterada, gerando

    assim a mutação, e seu teste de unidade é executado ➔ Teste quebrou? ◆ 👍 • Seu método foi bem testado! (mutante morto) ◆ 👎 • Seu método não foi bem testado (mutante escapou)
  3. O que são essas mutações? ➔ Alterações de condicionais ◆

    == para != ◆ < para > ◆ > para >= ◆ etc ➔ Remover a chamada para um método ➔ Inteiros ◆ Troca 0 para 1 e vice-versa ➔ Muuuuuuuuitas outras mutações
  4. Resultados ➔ Mutante passou nos testes ◆ Escapou ❌ ➔

    Mutante quebrou algum teste ◆ Morto ✔ ➔ Mutante não executado por nenhum teste ◆ Mutante não coberto 💩
  5. Instalação ➔ Na documentação é recomendado baixar o .phar e

    inserir no seu projeto ◆ Empacotado com todos os frameworks de teste ➔ Xdebug, phpdbg ou pcov ➔ PHPUnit, codeception, PhpSpec e Pest ➔ PHP >= 7