Testes com xUnit + Coding Dojo

27
Testes com xUnit ------------------------------------------------------ Letticia Nicoli Paula Santos

Transcript of Testes com xUnit + Coding Dojo

Page 1: Testes com xUnit + Coding Dojo

Testes com xUnit------------------------------------------------------

Letticia Nicoli Paula Santos

Page 2: Testes com xUnit + Coding Dojo

Letticia Nicoli

● Desenvolvedora na Lambda3● [email protected]● @LetticiaNicoli

Quem somos

Paula Santos

● Desenvolvedora na Cubo Tecnologia● [email protected]● https://www.linkedin.com/in/pcrissantos/

Page 3: Testes com xUnit + Coding Dojo

MAIS SÉRIO DO QUE PARECE ...

Page 4: Testes com xUnit + Coding Dojo

Autodestruição ativada

O primeiro lançamento do foguete Ariane 5 falhou 37 segundos após sair do solo causando sua destruição.

Motivo: mau funcionamento no software de controle.

O valor de ponto flutuante era muito grande para ser representado por um inteiro de 16 bits.

Fonte:en.wikipedia.org/wiki/Ariane_5

Page 5: Testes com xUnit + Coding Dojo

Pareceu malware, mas não era

Em 2009, foi adicionada uma barra invertida em todas as URLs que eram direcionadas para o buscador da empresa.

Resultado: o site foi sinalizado como malware no mundo todo por cerca de 1 hora

Gerou prejuízo total de quase US$ 3 milhões

Page 6: Testes com xUnit + Coding Dojo

➔ Tempo➔ Planejamento➔ Hábito➔ Trabalhoso➔ Conflito com a área de negócios

Por que deixamos os testes para depois/nunca ?

Page 7: Testes com xUnit + Coding Dojo

➔ Retrabalho➔ Virar a noite codando➔ Alterar código antes da review➔ Encontrar bug minutos antes do deploy➔ Cobrir apenas o happy path

Impactos

Page 8: Testes com xUnit + Coding Dojo

ENTÃO ….

COMECE A TESTAR

Page 9: Testes com xUnit + Coding Dojo

Tipos de Testes

➔ Funcional

Tem o objetivo de validar as funcionalidades descritas na documentação.

➔ Interface

Testa se objetos de tela e a navegabilidade funcionam conforme o especificado.

➔ Regressão

Ocorre quando é feita alguma alteração na aplicação, por exemplo, uma nova funcionalidade. Neste caso a recomendação é executar todos os testes novamente.

Existem diversos tipos de testes de software. Os mais comuns são:

Page 10: Testes com xUnit + Coding Dojo

UNIDADE

INTEGRAÇÃO

UI

TESTES MANUAIS

Page 11: Testes com xUnit + Coding Dojo

Testes Unitários

➔ Testar a menor unidade de código possível, podendo ser uma classe ou um método.

➔ Mostrar que cada unidade atende corretamente sua especificação.

Page 12: Testes com xUnit + Coding Dojo

Testes Unitários

➔ A implementação é de responsabilidade do desenvolvedor, por se tratar de um teste com foco direto no código.

➔ Devem ser formulados para garantir que todos os pontos do fluxo a ser testado sejam verificados ao menos uma vez durante o teste.

Page 13: Testes com xUnit + Coding Dojo

Frameworks

Existem hoje no mercado vários frameworks de teste para a plataforma .NET. Podemos citar alguns:

➔ MsTest: É a biblioteca de testes padrão do .NET integrada ao Visual Studio.

➔ NUnit: Projeto open source derivado do JUnit, que é um framework de testes para Java.

➔ xUnit.net: É biblioteca de testes também open source que surgiu como uma evolução do NUnit para testar linguagens da plataforma .NET (C#, VB.NET, F# e outras).

Page 14: Testes com xUnit + Coding Dojo
Page 15: Testes com xUnit + Coding Dojo

Programação Orientada a Testes

TDD (Test-Driven Development)

➔ Escreva testes antes mesmo de escrever o código de produção

➔ Assegurar que boa parte do seu sistema tenha um teste que garanta o seu funcionamento

Page 16: Testes com xUnit + Coding Dojo

Como funciona?

➔ Escreva um teste que falha, faça-o passar da maneira mais simples possível e, por fim, refatore o código.

➔ Esse ciclo é conhecido como Ciclo Vermelho-Verde-Refatora.

Page 17: Testes com xUnit + Coding Dojo

O que eu ganho?

➔ Agilidade nos testes automatizados (mais rápido que testes manuais);

➔ Menor quantidade de bugs;

➔ Redução de custos com manutenção;

➔ Segurança ao desenvolvedor na hora de mudanças;

➔ Auxilia na documentação do sistema, pois o teste indica qual deve ser

o comportamento esperado para a unidade a ser testada;

➔ Código de produção de qualidade;

Se está difícil escrever um teste automatizado, é porque provavelmente o código de produção está complicado !

Page 18: Testes com xUnit + Coding Dojo

CODING DOJO

Page 19: Testes com xUnit + Coding Dojo

DESENVOLVEDORES REUNIDOS PARA RESOLVER

UM DESAFIO

Page 20: Testes com xUnit + Coding Dojo

NÃO É UMA COMPETIÇÃO !

EXPERIMENTAR e TESTAR

TODOS PARTICIPAM

Page 21: Testes com xUnit + Coding Dojo

Piloto e Co-Piloto

Todos podem participar

5 minutos

Randori Kata

Page 22: Testes com xUnit + Coding Dojo

PLATÉIA FICA EM SILÊNCIO ENQUANTO ALGUM DOS TESTES

NÃO ESTIVER PASSANDO

Page 23: Testes com xUnit + Coding Dojo

RETROSPECTIVA

AVALIAÇÃO

PONTOS POSITIVOS E NEGATIVOS

Page 24: Testes com xUnit + Coding Dojo

Desafio

Ano BissextoUm ano é bissexto se ele for divisível por 400

ou se ele for divisível por 4 e não por 100.

Exemplos de anos Bissexto: 1980, 1984, 1988, 1992, 1996 e 2000.

Page 25: Testes com xUnit + Coding Dojo

Sugestões

tdd.caelum.com.br

Page 27: Testes com xUnit + Coding Dojo

Obrigada !------------------------------------------------------

Letticia NicoliPaula Santos