A atividade de teste consiste em uma análise
dinâmica do produto e é uma atividade
relevante para a identificação e eliminação de
erros que persistem (DELAMARO, 2007).
Niveis de Teste
Teste de Sistema
Nota:
avalia o software em
busca de falhas por meio da utilização do
mesmo, como se fosse um usuário final.
Dessa maneira, os testes são executados nos
mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada
que um usuário utilizaria no seu dia-a-dia
de manipulação do software. Verifica se o
produto satisfaz seus requisitos.
Teste de Aceitação
Nota:
são realizados
geralmente por um restrito grupo de usuários finais do sistema. Esses simulam
operações de rotina do sistema de modo
a verificar se seu comportamento está de
acordo com o solicitado
Teste de Unidade
Nota:
também conhecido
como testes unitários. Tem por objetivo
explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por
defeitos de lógica e de implementação em
cada módulo, separadamente. O universo
alvo desse tipo de teste são os métodos
dos objetos ou mesmo pequenos trechos
de código.
Teste de Integração
Nota:
visa provocar
falhas associadas às interfaces entre os
módulos quando esses são integrados
para construir a estrutura do software
que foi estabelecida na fase de projeto.
Teste de Regressão
Nota:
Teste de regressão
não corresponde a um nível de teste, mas
é uma estratégia importante para redução
de “efeitos colaterais”. Consiste em se
aplicar, a cada nova versão do software
ou a cada ciclo, todos os testes que já
foram aplicados nas versões ou ciclos
de teste anteriores do sistema. Pode ser
aplicado em qualquer nível de teste
Tipos de Teste
Carga
Stress
Confiabilidade
Desempenho
Usabilidade
Recuperação
Portabilidade
Técnicas de Teste
Funcional ou Caixa Preta
Nota:
Técnica de teste em que o componente
de software a ser testado é abordado
como se fosse uma caixa-preta, ou seja,
não se considera o comportamento interno do mesmo. Dados de entrada
são fornecidos, o teste é executado e o
resultado obtido é comparado a um resultado esperado previamente conhecido.
Haverá sucesso no teste se o resultado
obtido for igual ao resultado esperado.
O componente de software a ser testado
pode ser um método, uma função interna,
um programa, um componente, um conjunto de programas e/ou componentes ou
mesmo uma funcionalidade. A técnica
de teste funcional é aplicável a todos os
níveis de teste (PRESSMAN, 2005).
Análise do Valor Limite
Nota:
Por razões não completamente identificadas, um grande número de erros
tende a ocorrer nos limites do domínio de
entrada invés de no “centro”. Esse critério
de teste explora os limites dos valores de
cada classe de equivalência para preparar
os casos de teste (Pressman, 2005).
Se uma condição de entrada específica uma faixa de valores limitada em a e b,
casos de teste devem ser projetados com
valores a e b e imediatamente acima e
abaixo de a e b. Exemplo: Intervalo =
{1..10}; Casos de Teste Æ {1, 10, 0,11}.
Como exemplo, extraído de (BARBOSA
et al., 2000).
Particionamento em classes de Equivalência
Nota:
Esse critério divide o domínio de entrada
de um programa em classes de equivalência, a partir das quais os casos de teste são
derivados. Ele tem por objetivo minimizar
o número de casos de teste, selecionando
apenas um caso de teste de cada classe,
pois em princípio todos os elementos
de uma classe devem se comportar de
maneira equivalente. Eventualmente,
pode-se também considerar o domínio
de saída para a definição das classes de
equivalência (ROCHA et al., 2001).
Estrutural ou Caixa Branca
Nota:
Técnica de teste que avalia o comportamento interno do componente de
software. Essa técnica trabalha
diretamente sobre o código-fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de
fluxo de dados, teste de ciclos e teste de
caminhos lógicos (PRESSMAN, 2005).
Grafo de Causa Efeito
Nota:
Esse critério de teste verifica o efeito
combinado de dados de entrada. As
causas (condições de entrada) e os efeitos
(ações) são identificados e combinados
em um grafo a partir do qual é montada
uma tabela de decisão, e a partir desta,
são derivados os casos de teste e as saídas
(ROCHA et al., 2001).
Caixa Cinza
Nota:
Teste que funciona em uma mescla entre o teste caixa branca e o caixa preta, onde se fornecem insumos de entrada e também se verifica o comportamento interno do código.