Você está na página 1de 27

Testes 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
Estágio

1a2 Requisitos

5 Projeto

10 Codificação

20 Teste de Unidade

50 Teste de Aceitação

200 Manutenção

Custo 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 •Diferenças
•Diferençasentre
entrealguns
algunstipos
tiposde
de
Teste de desempenho testes
testesnão
nãosão
sãomuito
muitoclaras
claras
Teste de Carga •Ex.:
•Ex.:Teste
TesteFuncional
FuncionalXXTeste
Teste
Teste de Stress de
deSistema
SistemaXXTeste
Testedede
Teste de Segurança Aceitação
Aceitação
Teste de Tolerância a Falhas •Você
•Vocêprovavelmente
provavelmentedevedeveterterem
em
Teste de Recuperação mente
mentealgum
algumtipo
tipodedeteste
testeque
que
Teste de Configuração
não
nãoestá
estánessa lista☺
nessalista ☺
...
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 (.....)

Tabela Temporária Resultados Esperados


Coluna1 Coluna2 Coluna3 Coluna1 Coluna2 Coluna3

xxxxxx xxxxx xxxxx xxxxxx xxxxx xxxxx

xxxxx xxx xx xxxxx xxx xx

xx xxx 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

Você também pode gostar