4. Um processo feito de forma
responsável precisa ser
testado sempre, a fim de
garantir que o resultado
obtido confere com o
resultado esperado
5. Aqui entra o teste de unidade
É a verificação da menor unidade
de um processo (ou das unidades
mais importantes), afim de
validar se os resultados de
entrada/saída conferem com o
esperado.
10. Construir um Software significa
automatizar um processo que
antes era feito manualmente
Dados de
Entrada
Processamento
Automático
(métodos C#)
Dados de
Saída
11. Da mesma forma, os processos automáticos
também precisam ser testados
REQUISITO:
Desenvolver um software que
calcule as quatro operações
aritméticas básicas entre dois
valores e mostre o resultado na
tela.
RESULTADO ESPERADO:
(operação de adição)
• Valor1 = 100
• Valor2 = 200
• Soma = 300
14. O problema é que os testes não
foram automáticos
... e tarefas complexas
feitas de forma manual
chatas... e tornando-se chatas,
uma hora ou outra, nós deixamos
de fazê-las.
e repetitiva tornam-se
20. Benefícios
• Desenvolver testes encoraja o programador a
fazer um bom design do seu código,
afim de facilitar o seu teste automatizado.
• Exemplo: separação dos métodos de regras de
negócio, da camada apresentação.
21. Benefícios
• Encoraja o programador a desenvolver
código limpo. Pois, se o método estiver
coberto com testes automatizados, é
garantida a sua refatoração. E isso é feito de
forma segura, garantindo que o mesmo
continuará funcionando.
• Exemplo: (mostrar no código)
22. Benefícios
• Independente do programador (iniciante ou
experiente) que esteja mexendo no código, o
produto final continuará funcionando
como era esperado. Por isso, o teste de
unidade automatizado, pode ser considerado
um “Ativo Fixo” de uma empresa de
software;
23. Benefícios
• Em sistemas complexos como um ERP,
onde há métodos reutilizáveis e com alto grau
de dependência entre eles, os testes
automatizados garantem que uma simples
manutenção não “quebre” aquilo que já
estava funcionando.
• Exemplo: Implementação da última Nota
Técnica da NFe.
24. Nem tudo são flores...
• Mais código para escrever, pois além do
próprio método original, haverá também o(s)
método(s) de testes que irá cobri-lo.
• Exemplo:
25. Nem tudo são flores...
• Mais código para manter, pois caso haja
alguma alteração nos resultados esperados
dos métodos já cobertos, os seus respectivos
testes também deverão ser reajustados.
• Exemplo: (mostrar no código)
26. Nem tudo são flores...
• Como toda mudança, o primeiro passo é
sairmos da zona de conforto
27. Técnicas diferentes, mas
relacionadas
• Teste de unidade manual
– Já fazemos no dia-a-dia (ou pelo menos,
deveríamos)
• Teste de unidade automatizado
– Automatizar aquilo que é repetitivo e crítico
• TDD: Test Driven Development
– Criar o teste antes do código
• BDD: Behavior Driven Development
– Pensar em cenários de teste
28. Lembretes importantes!
• NÃO existe software sem Bug! A ideia do teste
de unidade é MINIMIZAR AO MÁXIMO a
existência deles.
• Métodos de testes também são software!
Portanto cuidado: testes mal escritos podem
retornar falsos positivos ou falsos negativos!
• O alto número de testes automatizados pode
trazer uma falsa sensação de segurança. Pois a
garantia de qualidade exige também a prática de
outros testes, como integração, stress e
aceitação.
29. Referências
Só imaturos não testam!
http://nomedojogo.com/2009/04/08/so-os-imaturos-nao-testam-o-video/
Programadores profissionais escrevem testes, e
ponto final!
http://blog.fragmental.com.br/2007/10/31/programadores-profissionais-escrevem-testes-ponto-final/
Tudo o que você precisa saber sobre testes no Visual
Studio
(parte 1) http://www.youtube.com/watch?v=kGnlItZyOzY
(parte 2) http://www.youtube.com/watch?v=UgPMmR2LaZo
(parte 3) http://www.youtube.com/watch?v=oLFBPGuIqGk
Você testa o seu Software? Como?
http://luizcorrea.blogspot.com.br/2009/10/voce-testa-o-seu-software-como.html