Testes de Software
Andrew Diniz da Costa
[email protected]
Agenda
Conceitos gerais
Principais Tipos de Teste
Testes Unitários
Testes Funcionais
O que são testes de
software?
Atividades realizadas ao longo do desenvolvimento,que
verificam se o software e seus componentes
atendem às suas especificações.
Testes de Software garantem que o sistema foi
desenvolvido corretamente e o mesmo possui as
características de qualidade esperadas.
O que são testes de
software?
Atividades controladas visando
identificar problemas
Envolve ações que vão do levantamento
de requisitos até a execução dos testes
propriamente ditos
Verifica “resultados encontrados” X
“resultados esperados”
Prevenir, localizar e documentar
defeitos
Minimizar o impacto potencial de
defeitos, detectando-os antes da
entrega do produto ao cliente
Por que testar?
Aumentar a Qualidade dos produtos gerados,
através da prevenção de defeitos, realização de
testes e validações no desenvolvimento de
software.
Garantir que o produto gerado atenda às expectativas do
cliente.
Garantir que o produto gerado atende às especificações
(requisitos funcionais e não funcionais) do sistema.
Garantir que o produto gerado funciona corretamente no
ambiente de produção.
Garantir que alterações realizadas no sistema e em seus
componentes gerem os resultados esperados e não
comprometam a integridade do sistema.
Reduzir ao máximo a incidência de defeitos nos produtos
entregues, bem como a sua severidade.
Custo de Correção
O custo de 1 problema é 200 vezes maior
se for reparado após a implantação
Estágio
1a2
Requisitos
5
Projeto
10
Codificação
20
Teste de Unidade
50
Teste de Aceitação
200
Custo Relativo de Reparo
Manutenção
Tipos de Testes
Teste de Unidade
Teste de Integração
Teste de Regressão
Teste de Sistema
Teste de Aceitação
Teste de Integridade de Dados e de Banco de Dados
Teste Funcional
•Diferenças
Teste de Interface com o usuário
•Diferençasentre
entrealguns
algunstipos
tiposde
de
testes
Teste de desempenho
testesnão
nãosão
sãomuito
muitoclaras
claras
Teste de Carga
•Ex.:
•Ex.:Teste
TesteFuncional
FuncionalXXTeste
Teste
de
Teste de Stress
deSistema
SistemaXXTeste
Testede
de
Aceitação
Aceitação
Teste de Segurança
•Você
Teste de Tolerância a Falhas
•Vocêprovavelmente
provavelmentedeve
deveter
terem
em
mente
Teste de Recuperação
mentealgum
algumtipo
tipode
deteste
testeque
que
não
nãoestá
estánessa
nessalista
lista☺
☺
Teste de Configuração
...
Boa Prática
É importante fazer um bom levantamento de
Requisitos
Identificar os cenários
O que é obrigatório
Fazer protótipo de tela
Tirar ambigüidades
Bons casos de uso facilitam o trabalho dos
testes
Caso contrário, o trabalho que deveria ser
realizado no levantamento de requisitos vai ser
realizado no levantamento dos casos de testes.
Boas Práticas
Os testes devem ser repetíveis
Deve-se prevenir a propagação de defeitos entre as
fases do desenvolvimento
Testes de sistemas ou funcionais devem ser
executados por uma equipe preparada e independente
da equipe de desenvolvimento.
Devem existir ambientes isolados para a realização
dos diversos tipos de teste
Implementar testes automatizados
Focar os testes na parte crítica do sistema
Testes Unitários
Introdução
Teste Unitário
O teste unitário é implementado com base no
menor elemento testável (unidades) do
software.
Implica em testar a estrutura interna (como
fluxo lógico e de dados), a função da unidade e
os comportamentos observáveis.
O que é unidade?
Componente, classe, método, etc.
Caixa Branca
Tecnologias
JUnit e DBUnit
JUnit
Realiza testes unitários
Ex: Verifica se algum método realiza o cálculo
esperado.
API - http://www.junit.org/
Demonstração
E o DBUnit?
Motivação
CPF
Nome
Endereço
11111111
João
Rua da Passagem
122
22222222
Maria
Rua Candido Mendes
22
33333333
Ana
Av. Ns. Copacabana
131
CPF
Nome
Endereço
11111111
João
Rua da Passagem
122
22222222
Maria
Rua Candido Mendes
22
33333345
Ana
Av. Ns. Copacabana
131
Motivação
...
...
Motivação
Modelo Relacional
Procedure (.....)
Resultados Esperados
Tabela Temporária
Coluna1
Coluna2
Coluna3
Coluna1
Coluna2
Coluna3
xxxxxx
xxxxx
xxxxx
xxxxxx
xxxxx
xxxxx
xxxxx
xxx
xx
xxxxx
xxx
xx
xxx
xx
xx
xxx
DBUnit
Extensão dos casos de teste do JUnit
Consistência do modelo de dados
Oferece mecanismos de exportação
Carga do banco de dados antes dos
testes
Métodos de comparação
Demonstração
Conclusão
DBUnit é uma extensão do JUnit
DBUnit realiza testes unitários voltados
para banco de dados
DBUnit é uma API gratuita.
Testes Funcionais
Testes Funcionais
Teste caixa preta que simula a interação
do usuário com o sistema
Geralmente baseado em cenários de
testes extraídos dos casos de uso ou de
descrições das funcionalidades
Representam um dos testes de maior nível
de granularidade
Utilizado em fases mais avançadas do
ciclo de desenvolvimento
Teste Funcional
Documentação de Testes
Qual a importância de
documentar casos de teste?
Descrever o passo a passo de cada caso de teste.
Importante para permitir a disseminação do
conhecimento e para ajudar na manutenção.
Existem diversas ferramentas no mercado que
auxiliam nesse processo de documentação,
como:
Rational Test Manager
Rational Quality Manager
...
Demonstração do Rational
Test Manager
Fim!!
Perguntas?
1/8/2011
@LES/PUC-Rio
27
Download

Testes_1 - (LES) da PUC-Rio