Testes com xUnit + Coding Dojo

Post on 12-Apr-2017

273 views 2 download

Transcript of Testes com xUnit + Coding Dojo

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

Letticia Nicoli Paula Santos

Letticia Nicoli

● Desenvolvedora na Lambda3● letticia.nicoli@gmail.com● @LetticiaNicoli

Quem somos

Paula Santos

● Desenvolvedora na Cubo Tecnologia● paulacs21@hotmail.com● https://www.linkedin.com/in/pcrissantos/

MAIS SÉRIO DO QUE PARECE ...

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

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

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

Por que deixamos os testes para depois/nunca ?

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

Impactos

ENTÃO ….

COMECE A TESTAR

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:

UNIDADE

INTEGRAÇÃO

UI

TESTES MANUAIS

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.

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.

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).

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

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.

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 !

CODING DOJO

DESENVOLVEDORES REUNIDOS PARA RESOLVER

UM DESAFIO

NÃO É UMA COMPETIÇÃO !

EXPERIMENTAR e TESTAR

TODOS PARTICIPAM

Piloto e Co-Piloto

Todos podem participar

5 minutos

Randori Kata

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

NÃO ESTIVER PASSANDO

RETROSPECTIVA

AVALIAÇÃO

PONTOS POSITIVOS E NEGATIVOS

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.

Sugestões

tdd.caelum.com.br

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

Letticia NicoliPaula Santos