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!