Buscar

Testes de Software: Conceitos e Tipos

Prévia do material em texto

Testes de SoftwareTestes de Software
Andrew Diniz da Costa 
andrew@les.inf.puc-rio.br
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
1 a 2
5
10
20
50
200
EstEstáágiogio
Requisitos
Projeto
Codificação
Teste de Unidade
Teste de Aceitação
Manutenção
Custo Relativo de ReparoCusto Relativo de Reparo
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
™ Teste de Interface com o usuário
™ Teste de desempenho
™ Teste de Carga
™ Teste de Stress
™ Teste de Segurança
™ Teste de Tolerância a Falhas
™ Teste de Recuperação
™ Teste de Configuração
™ ... 
•Diferenças entre alguns tipos de 
testes não são muito claras
•Ex.: Teste Funcional X Teste 
de Sistema X Teste de 
Aceitação
•Você provavelmente deve ter em 
mente algum tipo de teste que 
não está nessa lista ☺
•Diferenças entre alguns tipos de 
testes não são muito claras
•Ex.: Teste Funcional X Teste 
de Sistema X Teste de 
Aceitação
•Você provavelmente deve ter em 
mente algum tipo de teste que 
não está nessa lista ☺
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
Rua da Passagem 
122
João11111111
Rua Candido Mendes 
22
Maria22222222
Av. Ns. Copacabana 
131
Ana33333333
EndereçoNomeCPF
Rua da Passagem 
122
João11111111
Rua Candido Mendes 
22
Maria22222222
Av. Ns. Copacabana 
131
Ana33333345
EndereçoNomeCPF
Motivação
... ...
Motivação
xxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxx
Coluna3Coluna2Coluna1
Modelo Relacional
Procedure (.....)
xxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxx
Coluna3Coluna2Coluna1
Tabela Temporária Resultados Esperados
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

Continue navegando