2. Objectivos
identificar diferentes tipos de testes
●
descrever conceito de teste unitário
●
perceber vantagens de utilização de testes
●
unitários
conhecer estrutura de testes (test-fixtures ou
●
test-suites)
conhecer ferramentas disponiveis para .net e
●
progress
3. Objectivos
saber criar testes em .net
●
saber criar testes em progress
●
4. Tipos de testes
Teste de Caixa Branca (qualidade do código)
●
Teste de Caixa Preta (entradas e saídas)
●
Teste de Interface (funcional e usabilidade)
●
Teste de Integração (inter-componentes)
●
Teste de Sistema (inter-sistemas)
●
5. A Abordagem Clássica
A forma mais tradicional de teste consiste em
●
adoptar um revisor (par ou especialista em
teste) após cada atividade => Auditoria
Nono nonono nono
No nonono nono no
No nono nono no
Nono nono no
Nono nonono nono
Artefato
Desenvolvedor Revisor
Nono nonono nono
No nonono nono no
No nono nono no
Nono nono no
Nono nonono nono
Log Erros
6. A Abordagem Clássica
O Revisor normalmente é alguém com maior
●
experiência e conhecimento do produto, capaz
de identificar erros mais complexos
O Revisor é, normalmente, mais caro para a
●
empresa
Desenvolvedores menos experientes geram
●
mais erros
Mais erros exigem mais horas de revisão e
●
setup (além do custo do retrabalho)
Desenvolvedores Inexperientes => $$$$$$$$$
●
7. Nova perspectiva
Testes Unitários
●
servem para validar um pedaço de código
–
(tipicamente um modulo caixa preta).
devem ser possiveis de correr automaticamente
–
devem ser executados muito rapidamente
–
(centenas ou milhares de testes em poucos segundos)
●
são sempre preparados pelo programador.
–
garantem que um bocado de codigo criado é válido.
–
Exemplo: teste que verifica
se a execução de um
procedimento que soma dois
números funciona
8. Comparação
Testes funcionais / de aceitação / integação /
●
homologação
preparados por alguém fora da equipa de
–
desenvolvimento.
garantem que a execução do código produzido
–
para resolver a tarefa faz sentido, ou seja traduz
completamente para software o requisito que foi
definido pelo cliente.
Exemplo: na aplicação é
necessário existir alguma
função que some dois
números?
9. Quando é a fase de testes?
Durante o desenvolvimento e não após o
●
desenvolvimento!
algumas metodologias advogam até a criação dos
–
testes antes do desenvolvimento (Test-Driven
Development)
10. Porquê Testar durante o
Desenvolvimento?
reduz o tempo que se irá gastar com
●
ferramentas de debug
esforço de correcção de um defeito cresce
●
exponencialmente ao longo do tempo
cria confiança
●
sabemos que estamos a construir pedaços de
–
código em que podemos confiar
11. Desculpas habituais para não criar
testes
Demora muito tempo
●
é evidente que fazer um teste, ou seja ter mais uma
–
tarefa, vai gastar mais tempo do que só fizesse o
programa
no entanto se essa tarefa for sendo feita durante o
–
periodo de desenvolvimento a produtividade global
será superior
12. Desculpas habituais para não criar
testes
Não é trabalho do programador criar testes, ou,
●
o programador é pago para programar e não
●
para escrever testes
concordamos que:
–
o programador deve criar código
●
mas código que funcione
●
se não o testou como sabe que funciona?
●
será que é mais rentável passar n horas à caça de
–
bugs do que n horas a criar os testes que os
evitem?
13. Desculpas habituais para não criar
testes
Não posso testar porque ainda não tenho os
●
requisitos todos
então também não pode criar o código
–
correspondente a esse pedido...
14. Testes Unitários
formalizam os testes
●
numa linguagem que o programador domina
●
porque são feitos na mesma linguagem de
–
programação que o programa a testar
e auto documentam o código
●
mostram programaticamente exemplos concretos
–
da utilização dos módulos a testar
16. Testes Unitários com .Net
criar nova solução
●
criar projecto do tipo class library chamado
●
testes unitarios
acrescentar classe chamada Helper
●
17. Testes Unitários com .Net
criar projecto do tipo class library chamado
●
testeprojecto
adicionar referencia a nunit.framework.dll
●
adicionar referencia ao projecto testesunitarios
●
24. Revisão – Testes Unitários
formalizam os testes
●
numa linguagem que o
●
programador domina
porque são feitos na mesma
–
linguagem de programação que
o programa a testar
e auto documentam o código
●
mostram programaticamente
–
exemplos concretos da
utilização dos módulos a testar
25. Testes Unitários com .Net
já agora experimentem inicializar o array com
●
-1, -2 e -3 e vejam se continua a funcionar...
27. Testes Unitários em Progress
desenvolver o mesmo teste com uma das
●
frameworks indicada
28. Objectivos
identificar diferentes tipos de testes
●
descrever conceito de teste unitário
●
perceber vantagens de utilização de testes
●
unitários
conhecer estrutura de testes (test-fixtures ou
●
test-suites)
conhecer ferramentas disponiveis para .net e
●
progress
29. Objectivos
saber criar testes em .net
●
saber criar testes em progress
●