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

Testes de Mutação - Testes para Testar seus Testes - Ruby

Testes de Mutação - Testes para Testar seus Testes - Ruby

Como podemos garantir que nossos testes realmente estão pegando possíveis falhas em nosso código?
100% de cobertura é suficiente?
Nesta palestra apresento o conceito de Testes de Mutação (tradução livre do termo Mutation Tests), que é uma técnica que permite detectar possíveis falhas em nosso código que não seriam cobertas por nossos testes.
Os exemplos da palestra foram utilizando a linguagem Ruby

Vinicius Dias

July 23, 2020
Tweet

More Decks by Vinicius Dias

Other Decks in Technology

Transcript

  1. Quem é Vinicius Dias? • Zend Certified (PHP) Engineer; •

    iMasters Certified PHP Professional; • Um dos administradores do PHP Rio; • Desenvolvedor Full Stack na TemboSocial; • Instrutor na Alura Cursos Online; • LinkedIn: https://linkedin.com/in/vinícius-dias/ • GitHub: https://github.com/CViniciusSDias • Twitter: @cviniciussdias • Dev.to: https://dev.to/cviniciussdias/ • YouTube: Programando com Vinicius Dias
  2. Dê feedback Os palestrantes gostam de saber como melhorar suas

    apresentações Nenhuma apresentação é perfeita e nós que criamos conteúdo sabemos disso. Nossa intenção é passar conteúdo da melhor forma possível e sua opinião é muito importante para isso.
  3. Mutações comuns • Mudar limite de condicional (< para <=

    ou > para >=); • Inverter condicional (< para > ou > para <); • Negar condicional (== para !=); • Remover condicional (mudar para if (true)); • Retirar chamada a algum método; • Mutação no retorno (trocar retorno por null); • Inteiros 0-1 1-0 (mudar 0 para 1 e 1 para 0); • Etc.
  4. Possíveis resultados 1. Se um código mutado (ou o mutante)

    passou em todos os testes; 2. Se um mutante fez algum teste quebrar; 3. Se a mutação deste mutante não foi executada por nenhum teste; 1. Significa que esse código mutado (ou o mutante) escapou; 2. Significa que o mutante foi morto; 3. Significa que esse mutante não está coberto por nenhum teste;
  5. Suíte grande: Bota pra rodar e vai tomar um café,

    ou deixa pro servidor de CI. ;-)