unit testing em .net - vdd 2011
DESCRIPTION
Slides da palestra de Vinicius Quaiato sobre Unit Testing na plataforma .NET no evento VDD 2011 - Virtual Developer Day. http://viniciusquaiato.comTRANSCRIPT
![Page 1: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/2.jpg)
Agenda
Virtual Developer Day 2011 | .NET Interior
![Page 3: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/3.jpg)
Fazer software dói
Virtual Developer Day 2011 | .NET Interior
![Page 4: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/4.jpg)
Como fazemos hoje(e sempre)
Virtual Developer Day 2011 | .NET Interior
![Page 5: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/5.jpg)
Será que está certo?
Virtual Developer Day 2011 | .NET Interior
![Page 6: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/7.jpg)
Temos medo
Virtual Developer Day 2011 | .NET Interior
![Page 8: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/8.jpg)
As coisas demoram
Virtual Developer Day 2011 | .NET Interior
![Page 9: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/9.jpg)
Nos sentimos incapazes
Virtual Developer Day 2011 | .NET Interior
![Page 10: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/10.jpg)
Por que?
Por que não testamos corretamente!
Virtual Developer Day 2011 | .NET Interior
![Page 11: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/13.jpg)
Por que estamos errados?
• Ctrl + Shift + B
Virtual Developer Day 2011 | .NET Interior
![Page 14: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/15.jpg)
Por que estamos errados?
• F5
Virtual Developer Day 2011 | .NET Interior
![Page 16: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/17.jpg)
Por que estamos errados?
• Macaco
Virtual Developer Day 2011 | .NET Interior
![Page 18: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/20.jpg)
Como fazer então?
Virtual Developer Day 2011 | .NET Interior
Testes automatizados
![Page 21: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/23.jpg)
Acredite
• Você não é tão bom quanto pensa!
Virtual Developer Day 2011 | .NET Interior
![Page 24: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/24.jpg)
Virtual Developer Day 2011 | .NET Interior
![Page 25: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/25.jpg)
Testes Unitários
• Não!• Testes de Unidade
Virtual Developer Day 2011 | .NET Interior
![Page 26: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/26.jpg)
Testes Unitários
• Não!• Testes de Unidade
Virtual Developer Day 2011 | .NET Interior
![Page 27: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/28.jpg)
É 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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/31.jpg)
Frameworks
• Moq– Framework de mocking(isolamento)
Virtual Developer Day 2011 | .NET Interior
![Page 32: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/33.jpg)
Stubs
• Usados para simular/fornecer estados para auxiliar nos testes
Virtual Developer Day 2011 | .NET Interior
![Page 34: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/34.jpg)
Stop talking
• Show the code!
Virtual Developer Day 2011 | .NET Interior
![Page 35: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/36.jpg)
Seja feliz!
Virtual Developer Day 2011 | .NET Interior
![Page 37: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/37.jpg)
Alguns livros
Virtual Developer Day 2011 | .NET Interior
![Page 38: Unit Testing em .NET - VDD 2011](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062312/5564b166d8b42a98268b4eef/html5/thumbnails/39.jpg)
Virtual Developer Day 2011 | .NET Interior
.NET Interior | Microsoft - CEA/MSDN | Silverlight Brasil | Silverlight Planet | Codificando .NET