testes de unidade - conhecendo e aplicando

29
Testes de Unidade Conhecendo e aplicando

Upload: apbertoletti

Post on 11-Jun-2015

124 views

Category:

Technology


1 download

DESCRIPTION

Um breve apresentação sobre alguns conceitos de Teste de unidade em Software, e exemplos de aplicação.

TRANSCRIPT

Page 1: Testes de unidade - Conhecendo e aplicando

Testes de Unidade Conhecendo e aplicando

Page 3: Testes de unidade - Conhecendo e aplicando

Pra começo de conversa...

O que é testar mesmo?!

Page 4: Testes de unidade - Conhecendo e aplicando

Um processo feito de forma

responsável precisa ser

testado sempre, a fim de

garantir que o resultado obtido confere com o

resultado esperado

Page 5: Testes de unidade - Conhecendo e aplicando

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.

Page 6: Testes de unidade - Conhecendo e aplicando

Processo: “Pendurar quadro na parede”

Qual seria o teste de unidade deste processo?

Page 7: Testes de unidade - Conhecendo e aplicando

Passou no Teste - OK!!!

Resultado esperado = quadro na parede

Page 8: Testes de unidade - Conhecendo e aplicando

Qualquer outro processo manual também possui um

resultado esperado

passível de teste!

Page 9: Testes de unidade - Conhecendo e aplicando

Software: é aqui que entramos...

Page 10: Testes de unidade - Conhecendo e aplicando

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

Page 11: Testes de unidade - Conhecendo e aplicando

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

Page 12: Testes de unidade - Conhecendo e aplicando

Colocando a mão no código!!!

Page 13: Testes de unidade - Conhecendo e aplicando

Conclusão...

Vocês acham que foram realizados os testes de unidade em nosso software?

SIM

Page 14: Testes de unidade - Conhecendo e aplicando

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

Page 15: Testes de unidade - Conhecendo e aplicando

Além disso, outros fatores que

dificultam o teste manual...

Page 16: Testes de unidade - Conhecendo e aplicando

Pensando além do F5... se nós já automatizamos o

processo, será que não conseguimos

também

automatizar o seu

teste???

Page 17: Testes de unidade - Conhecendo e aplicando

um software testando...

Aqui entra o Teste de Unidade

Automatizado que nada mais é...

...outro software

Page 18: Testes de unidade - Conhecendo e aplicando

Quando rodamos um teste automatizado, fica sob

responsabilidade dele nos informar

quais testes passaram ou não

Page 19: Testes de unidade - Conhecendo e aplicando

Colocando a mão no código!!!

Page 20: Testes de unidade - Conhecendo e aplicando

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.

Page 21: Testes de unidade - Conhecendo e aplicando

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)

Page 22: Testes de unidade - Conhecendo e aplicando

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;

Page 23: Testes de unidade - Conhecendo e aplicando

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.

Page 24: Testes de unidade - Conhecendo e aplicando

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:

Page 25: Testes de unidade - Conhecendo e aplicando

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)

Page 26: Testes de unidade - Conhecendo e aplicando

Nem tudo são flores...

• Como toda mudança, o primeiro passo é sairmos da zona de conforto

Page 27: Testes de unidade - Conhecendo e aplicando

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

Page 28: Testes de unidade - Conhecendo e aplicando

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.

Page 29: Testes de unidade - Conhecendo e aplicando

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