39
Unit Testing na plataforma .NET .NET Interior | Microsoft - CEA/MSDN | Silverlight Brasil | Silverlight Planet | Codificando .NET Vinicius Quaiato Geek, pai, vegetariano, santista. Trabalha com desenvolvimento de software há 4 anos, atualmente coordena o time de .NET na Gonow Tecnologia

Unit Testing em .NET - VDD 2011

Embed Size (px)

DESCRIPTION

Slides da palestra de Vinicius Quaiato sobre Unit Testing na plataforma .NET no evento VDD 2011 - Virtual Developer Day. http://viniciusquaiato.com

Citation preview

Page 1: Unit Testing em .NET - VDD 2011

Unit Testing na plataforma .NET

.NET Interior | Microsoft - CEA/MSDN | Silverlight Brasil | Silverlight Planet | Codificando .NET

Vinicius QuaiatoGeek, pai, vegetariano, santista. Trabalha com desenvolvimento de software há 4 anos, atualmente coordena o time de .NET na Gonow Tecnologia

Page 2: Unit Testing em .NET - VDD 2011

Agenda

Virtual Developer Day 2011 | .NET Interior

Page 3: Unit Testing em .NET - VDD 2011

Fazer software dói

Virtual Developer Day 2011 | .NET Interior

Page 4: Unit Testing em .NET - VDD 2011

Como fazemos hoje(e sempre)

Virtual Developer Day 2011 | .NET Interior

Page 5: Unit Testing em .NET - VDD 2011

Será que está certo?

Virtual Developer Day 2011 | .NET Interior

Page 6: Unit Testing em .NET - VDD 2011

Será que está certo?

• Não temos controle do código• Não temos segurança no código• Não temos previsibilidade

Virtual Developer Day 2011 | .NET Interior

Page 7: Unit Testing em .NET - VDD 2011

Temos medo

Virtual Developer Day 2011 | .NET Interior

Page 8: Unit Testing em .NET - VDD 2011

As coisas demoram

Virtual Developer Day 2011 | .NET Interior

Page 9: Unit Testing em .NET - VDD 2011

Nos sentimos incapazes

Virtual Developer Day 2011 | .NET Interior

Page 10: Unit Testing em .NET - VDD 2011

Por que?

Por que não testamos corretamente!

Virtual Developer Day 2011 | .NET Interior

Page 11: Unit Testing em .NET - VDD 2011

O que são testes?

• Maneira de garantir que o software:– atende aos requisitos de negócio– funciona como esperado

Virtual Developer Day 2011 | .NET Interior

Page 12: Unit Testing em .NET - VDD 2011

O que são testes?

• Maneira verificável de garantir que o software atende às necessidades de negócio e funciona como esperado.

Virtual Developer Day 2011 | .NET Interior

Page 13: Unit Testing em .NET - VDD 2011

Por que estamos errados?

• Ctrl + Shift + B

Virtual Developer Day 2011 | .NET Interior

Page 14: Unit Testing em .NET - VDD 2011

Por que estamos errados?

• Compilar NÃO é testar!• Apenas significa que o código atende ao

compilador, apenas isso!

Virtual Developer Day 2011 | .NET Interior

Page 15: Unit Testing em .NET - VDD 2011

Por que estamos errados?

• F5

Virtual Developer Day 2011 | .NET Interior

Page 16: Unit Testing em .NET - VDD 2011

Por que estamos errados?

• Executar a aplicação demora• No geral testa-se apenas o que você pensa

que alterou

Virtual Developer Day 2011 | .NET Interior

O bater de asas de uma borboleta em Tóquio pode provocar um furacão em Nova Iorque

“ ”

Page 17: Unit Testing em .NET - VDD 2011

Por que estamos errados?

• Macaco

Virtual Developer Day 2011 | .NET Interior

Page 18: Unit Testing em .NET - VDD 2011

Por que estamos errados?

• Executar a aplicação demora• É bom para encontrar alguns bugs

• Testes não são apenas sobre bugs!

Virtual Developer Day 2011 | .NET Interior

Page 19: Unit Testing em .NET - VDD 2011

Por que estamos errados?

Virtual Developer Day 2011 | .NET Interior

• Estas não são as únicas maneiras de fazermos isto.

Page 20: Unit Testing em .NET - VDD 2011

Como fazer então?

Virtual Developer Day 2011 | .NET Interior

Testes automatizados

Page 21: Unit Testing em .NET - VDD 2011

Por que automatizar?

• Verificável– Sabemos de forma clara se está certo ou

não

• Repetível– Executamos N vezes e obtemos o mesmo

resultado

• Executável– One click

• Rápido Virtual Developer Day 2011 | .NET Interior

Page 22: Unit Testing em .NET - VDD 2011

Mas…

• Eu sou bom no que eu faço, não preciso ficar testando tudo a todo momento.

Virtual Developer Day 2011 | .NET Interior

Page 23: Unit Testing em .NET - VDD 2011

Acredite

• Você não é tão bom quanto pensa!

Virtual Developer Day 2011 | .NET Interior

Page 24: Unit Testing em .NET - VDD 2011

Virtual Developer Day 2011 | .NET Interior

Page 25: Unit Testing em .NET - VDD 2011

Testes Unitários

• Não!• Testes de Unidade

Virtual Developer Day 2011 | .NET Interior

Page 26: Unit Testing em .NET - VDD 2011

Testes Unitários

• Não!• Testes de Unidade

Virtual Developer Day 2011 | .NET Interior

Page 27: Unit Testing em .NET - VDD 2011

Testes de Unidade

• Código executando código• Testam uma unidade de código– SUT – System Under Test

• Rápidos de executar– O feedback é quase instantâneo

• Auxiliam o design– Se está difícil testar é um sinal de

problema no códigoVirtual Developer Day 2011 | .NET Interior

Page 28: Unit Testing em .NET - VDD 2011

É sua obrigação

• Escrever testes deve fazer parte das suas tarefas

• Não considere uma tarefa pronta se não estiver testada

Virtual Developer Day 2011 | .NET Interior

Page 29: Unit Testing em .NET - VDD 2011

O tempo

• Deixar de testar não te faz mais rápido

• Deixar de testar te dá uma falsa sensação de velocidade

Virtual Developer Day 2011 | .NET Interior

Page 30: Unit Testing em .NET - VDD 2011

Frameworks

• MSTests– Framework de unit testing da Microsoft

• NUnit– Framework de unit testing open source

• Ambos são bastante parecidos

Virtual Developer Day 2011 | .NET Interior

Page 31: Unit Testing em .NET - VDD 2011

Frameworks

• Moq– Framework de mocking(isolamento)

Virtual Developer Day 2011 | .NET Interior

Page 32: Unit Testing em .NET - VDD 2011

Mocks

• Usados para testar a interação/comunicação entre objetos

Virtual Developer Day 2011 | .NET Interior

Page 33: Unit Testing em .NET - VDD 2011

Stubs

• Usados para simular/fornecer estados para auxiliar nos testes

Virtual Developer Day 2011 | .NET Interior

Page 34: Unit Testing em .NET - VDD 2011

Stop talking

• Show the code!

Virtual Developer Day 2011 | .NET Interior

Page 35: Unit Testing em .NET - VDD 2011

E é isso!

• Escrever testes é uma tarefa importante

• Deve fazer parte da nossa definição de pronto

• Nos dá segurança, confiança e qualidade de vida

• Nos faz mais sexy :P

Virtual Developer Day 2011 | .NET Interior

Page 36: Unit Testing em .NET - VDD 2011

Seja feliz!

Virtual Developer Day 2011 | .NET Interior

Page 37: Unit Testing em .NET - VDD 2011

Alguns livros

Virtual Developer Day 2011 | .NET Interior

Page 38: Unit Testing em .NET - VDD 2011

Contatos

• e-mail [email protected]

• blog http://viniciusquaiato.com • twitter @vquaiato

Virtual Developer Day 2011 | .NET Interior

Page 39: Unit Testing em .NET - VDD 2011

Virtual Developer Day 2011 | .NET Interior

.NET Interior | Microsoft - CEA/MSDN | Silverlight Brasil | Silverlight Planet | Codificando .NET