Slide 1

Slide 1 text

Como garantir que o teste unitário que estou escrevendo realmente possui qualidade? TDC TRANSFORMATION - Trilha Testes com Bárbara Rossalli & Daniela Yabe

Slide 2

Slide 2 text

Quem somos https://linktr.ee/Rossalli Bárbara Rossalli https://linktr.ee/DanielaYabe Daniela Yabe

Slide 3

Slide 3 text

Como garantir que o teste unitário que estou escrevendo realmente possui qualidade?

Slide 4

Slide 4 text

Test Coverage

Slide 5

Slide 5 text

É uma métrica que valida o quanto do código foi coberto pelos testes Quais linhas de código foram executadas ou seja

Slide 6

Slide 6 text

O problema do Coverage

Slide 7

Slide 7 text

A cobertura de código não valida a eficiência dos testes

Slide 8

Slide 8 text

Métrica de test coverage do meu projeto é 80%

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Testes mutantes em ação!

Slide 13

Slide 13 text

Porque testes mutantes?

Slide 14

Slide 14 text

Mutantes são inseridos no código Testes executados em cima do código mutado O que são testes mutantes? Se o teste falhar o mutante foi morto Se um mutante sobreviver, significa que você precisa melhorar seus testes unitários :)

Slide 15

Slide 15 text

Ferramentas

Slide 16

Slide 16 text

Versão 1.6.9 Release em 2014 Henry Coles Apache 2.0 Maven, Gradle, Ant Java 8 ou + (1.4.0) Junit4 e Junit5* TestNG 6.1.1 JMock, EasyMock, Mockito, PowerMock and JMockit. Eclipse, IntelliJ PITest pitest.org

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

KILL ALL COVERAGE TESTS!

Slide 19

Slide 19 text

Teste mutantes não substitui a cobertura de código! É um complemento!

Slide 20

Slide 20 text

Desvantagens: Poder Computacional & Tempo de Execução State of Mutation Testing at Google: https://research.google/pubs/pub46584

Slide 21

Slide 21 text

Qualidade dos meus testes mutantes depende da qualidade dos casos de testes escritos!

Slide 22

Slide 22 text

@Rossalli @YabeDaniela