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 Bissexto
Um 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
Referências
➔ http://testesdesoftware.com/tipos-de-teste-de-software/
➔ http://bit.ly/TesteUnitarioTesteIntegrado
➔ http://bit.ly/TestesUnitarios-xUnit
➔ http://bit.ly/TestesUnitarios
➔ http://www.codeatest.com/testes-unitarios-porque-escrever/
Obrigada !------------------------------------------------------
Letticia Nicoli
Paula Santos

Testes com xUnit + Coding Dojo

  • 1.
  • 2.
    Letticia Nicoli ● Desenvolvedorana Lambda3 ● letticia.nicoli@gmail.com ● @LetticiaNicoli Quem somos Paula Santos ● Desenvolvedora na Cubo Tecnologia ● paulacs21@hotmail.com ● https://www.linkedin.com/in/pcrissantos/
  • 3.
  • 4.
    Autodestruição ativada O primeirolanç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
  • 5.
    Pareceu malware, masnã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
  • 6.
    ➔ Tempo ➔ Planejamento ➔Hábito ➔ Trabalhoso ➔ Conflito com a área de negócios Por que deixamos os testes para depois/nunca ?
  • 7.
    ➔ Retrabalho ➔ Virara noite codando ➔ Alterar código antes da review ➔ Encontrar bug minutos antes do deploy ➔ Cobrir apenas o happy path Impactos
  • 8.
  • 9.
    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:
  • 10.
  • 11.
    Testes Unitários ➔ Testara menor unidade de código possível, podendo ser uma classe ou um método. ➔ Mostrar que cada unidade atende corretamente sua especificação.
  • 12.
    Testes Unitários ➔ Aimplementaçã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.
  • 13.
    Frameworks Existem hoje nomercado 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).
  • 15.
    Programação Orientada aTestes 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
  • 16.
    Como funciona? ➔ Escrevaum 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.
  • 17.
    O que euganho? ➔ 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 !
  • 18.
  • 19.
  • 20.
    NÃO É UMACOMPETIÇÃO ! EXPERIMENTAR e TESTAR TODOS PARTICIPAM
  • 21.
    Piloto e Co-Piloto Todospodem participar 5 minutos Randori Kata
  • 22.
    PLATÉIA FICA EMSILÊNCIO ENQUANTO ALGUM DOS TESTES NÃO ESTIVER PASSANDO
  • 23.
  • 24.
    Desafio Ano Bissexto Um 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.
  • 25.
  • 26.
    Referências ➔ http://testesdesoftware.com/tipos-de-teste-de-software/ ➔ http://bit.ly/TesteUnitarioTesteIntegrado ➔http://bit.ly/TestesUnitarios-xUnit ➔ http://bit.ly/TestesUnitarios ➔ http://www.codeatest.com/testes-unitarios-porque-escrever/
  • 27.