Testando seus testes
com Stryker .net
Olá!
Robson Amorim
desenvolvedor na Lambda3
organizador do High5Devs
MCT, MCSA e MCSD
@amorimrob – rsamorim.azurewebsites.net
Obrigado!
Escrever testes vs testar
https://www.mauricioaniche.com/talks/escrever-testes-vs-
testar/
Mauricio Aniche
O que é um bom
teste?
Um teste que nunca
falha?
Um testes que
sempre falha?
TESTAR É PROCURAR
POR BUGS
1.
Por que escrevemos testes?
✘ Validar a regra de negócio
✘ Segurança para refatorar
✘ Line Coverage lá encima!
✘ Evitar testes manuais
✘ Escrever um código melhor
2.
Como você escreve seus testes?
TDD?
Teste
falha
Refatora
Testa
passa
E como dividimos nossos testes?
IntegraçãoUnidade Aceitação
3.
Pensamos todos os
cenários?
4.
Buscando bugs
16
“
“Uma suite de testes forte é
aquela que te revela bugs,
quando bugs acontecem” –
Mauricio Aniche
Testes
6.
Mutantes?
✘ Pequenos problemas, grande bugs
2 Hipóteses
✘ O código é escrito por programadores competentes
✘ Mutante sobrevivente -> Os testes passaram
✘ Mutante -> A mudança no código
✘ Mutante morto -> Os testes falharam
6.
Stryker .NET
Stryker.net
✘ Open source
✘ .NET Core / Full Framework
✘ Relatório visual ao fim da execução
✘ Command line
Command line tool
✘ Global -> dotnet tool install -g dotnet-stryker
✘ Pro projeto -> dotnet new tool-manifest > dotnet tool install
dotnet-stryker
Mutators
✘ Igualdade (==, !=, >, >=, <, <=)
✘ Operadores Lógicos (&&, ||)
✘ Aritiméticos (+, -, *, /, %)
✘ Atribuição (+=, -=, *=, …)
✘ Booleanos (true, false, list.any(), !lista.any())
Mas vai mudar tudo?
✘ Git diff -> dotnet stryker --diff
✘ Exclua arquivos específicos -> !Classe.cs
✘ Exclua métodos -> *Log*
Configuração via json
✘ Versionado junto com o projeto
✘ Simples de configurar
✘ Não obrigatório
DEMO
Obrigado!
Perguntas ?
@amorimrob
rsamorim.azurewebsites.net

Testando seus testes com Stryker.NET