testes de unidade - conhecendo e aplicando

Post on 11-Jun-2015

124 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Testes de Unidade Conhecendo e aplicando

Pra começo de conversa...

O que é testar mesmo?!

Um processo feito de forma

responsável precisa ser

testado sempre, a fim de

garantir que o resultado obtido confere com o

resultado esperado

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.

Processo: “Pendurar quadro na parede”

Qual seria o teste de unidade deste processo?

Passou no Teste - OK!!!

Resultado esperado = quadro na parede

Qualquer outro processo manual também possui um

resultado esperado

passível de teste!

Software: é aqui que entramos...

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

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

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

Conclusão...

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

SIM

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

Além disso, outros fatores que

dificultam o teste manual...

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

processo, será que não conseguimos

também

automatizar o seu

teste???

um software testando...

Aqui entra o Teste de Unidade

Automatizado que nada mais é...

...outro software

Quando rodamos um teste automatizado, fica sob

responsabilidade dele nos informar

quais testes passaram ou não

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

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.

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)

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;

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.

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:

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)

Nem tudo são flores...

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

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

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.

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

top related