Slide 1

Slide 1 text

Você confia que os testes da sua aplicação vão garantir a qualidade do seu projeto?

Slide 2

Slide 2 text

100% de cobertura de código já é suficiente?

Slide 3

Slide 3 text

100% de cobertura é uma mentira!

Slide 4

Slide 4 text

Melhorando a qualidade derrotando um mutante por vez

Slide 5

Slide 5 text

LUCAS ALENCAR RESULTADOS DIGITAIS FULL STACK RUBY ENGINEER

Slide 6

Slide 6 text

O que é teste de mutação?

Slide 7

Slide 7 text

Testes unitários garantem que o código está correto

Slide 8

Slide 8 text

Testes de mutação garantem que os testes estão corretos

Slide 9

Slide 9 text

O que é uma mutação? Original Mutação Condicional x >= 20 x > 20

Slide 10

Slide 10 text

O que é uma mutação? Original Mutação Condicional x >= 20 x > 20 Operações 2 + 40 2 - 40

Slide 11

Slide 11 text

O que é uma mutação? Original Mutação Condicional x >= 20 x > 20 Operações 2 + 40 2 - 40 Parâmetros func(name = 'hello') func(name = nil)

Slide 12

Slide 12 text

Teste Original Código Original

Slide 13

Slide 13 text

Teste Original Teste Falha Teste Passa Código Original ! "

Slide 14

Slide 14 text

Teste Original Teste Falha Teste Passa Código Mutante Código Original ! "

Slide 15

Slide 15 text

Teste Original Teste Falha Teste Passa Código Mutante ! " Código Original

Slide 16

Slide 16 text

Por que usar teste de mutação?

Slide 17

Slide 17 text

Código tem bugs Testes são código Testes tem bugs

Slide 18

Slide 18 text

Demo

Slide 19

Slide 19 text

https://github.com/lucasalencar/xmen-danger-room

Slide 20

Slide 20 text

Ruby : Mutest Java : PIT Python : Cosmic Ray Javascript : Stryker

Slide 21

Slide 21 text

Identificação de cenários não cobertos Fortalece cobertura da aplicação Melhora o código da aplicação Ajuda a encontrar código não utilizado

Slide 22

Slide 22 text

Melhorando a qualidade derrotando um mutante por vez

Slide 23

Slide 23 text

LUCAS ALENCAR RESULTADOS DIGITAIS FULL STACK RUBY ENGINEER LUCAS.ALENCAR@RESULTADOSDIGITAIS.COM.BR @LUCASALENCAR RESULTADOS DIGITAIS TEM VAGAS!