Unit Testing em .NET - VDD 2011

Preview:

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

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

Agenda

Virtual Developer Day 2011 | .NET Interior

Fazer software dói

Virtual Developer Day 2011 | .NET Interior

Como fazemos hoje(e sempre)

Virtual Developer Day 2011 | .NET Interior

Será que está certo?

Virtual Developer Day 2011 | .NET Interior

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

Temos medo

Virtual Developer Day 2011 | .NET Interior

As coisas demoram

Virtual Developer Day 2011 | .NET Interior

Nos sentimos incapazes

Virtual Developer Day 2011 | .NET Interior

Por que?

Por que não testamos corretamente!

Virtual Developer Day 2011 | .NET Interior

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

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

Por que estamos errados?

• Ctrl + Shift + B

Virtual Developer Day 2011 | .NET Interior

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

Por que estamos errados?

• F5

Virtual Developer Day 2011 | .NET Interior

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

“ ”

Por que estamos errados?

• Macaco

Virtual Developer Day 2011 | .NET Interior

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

Por que estamos errados?

Virtual Developer Day 2011 | .NET Interior

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

Como fazer então?

Virtual Developer Day 2011 | .NET Interior

Testes automatizados

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

Mas…

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

Virtual Developer Day 2011 | .NET Interior

Acredite

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

Virtual Developer Day 2011 | .NET Interior

Virtual Developer Day 2011 | .NET Interior

Testes Unitários

• Não!• Testes de Unidade

Virtual Developer Day 2011 | .NET Interior

Testes Unitários

• Não!• Testes de Unidade

Virtual Developer Day 2011 | .NET Interior

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

É 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

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

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

Frameworks

• Moq– Framework de mocking(isolamento)

Virtual Developer Day 2011 | .NET Interior

Mocks

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

Virtual Developer Day 2011 | .NET Interior

Stubs

• Usados para simular/fornecer estados para auxiliar nos testes

Virtual Developer Day 2011 | .NET Interior

Stop talking

• Show the code!

Virtual Developer Day 2011 | .NET Interior

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

Seja feliz!

Virtual Developer Day 2011 | .NET Interior

Alguns livros

Virtual Developer Day 2011 | .NET Interior

Contatos

• e-mail vinicius.quaiato@gmail.com

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

Virtual Developer Day 2011 | .NET Interior

Virtual Developer Day 2011 | .NET Interior

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