Teste de unidade

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1448 palavras )
  • Download(s) : 0
  • Publicado : 7 de março de 2013
Ler documento completo
Amostra do texto
Testes de Software
Fases
Baseado em notas de aula da profa. Eliane Martins

Tópicos
• Testes de Unidades
• Testes de Integração
• Testes de Aceitação e de Sistemas
• Testes de Regressão

Testes de Unidades
Visam exercitar detalhadamente uma unidade do sistema:
módulo ou função; classe ou pequenos “clusters”
Aspectos a serem considerados :
interfaces: verificar parâmetros de entradae saída
estruturas de dados: verificar integridade dos dados
armazenados
condições de limite: verificar se a unidade opera
adequadamente nos limites estabelecidos
tratamento de erros

Componentes de testes-1

Unidade
em
Teste

Componentes de testes-2
Necessários quando se testam unidades isoladamente.
Podem ser:
driver (controlador): chama a unidade em teste
stub: substitui umaunidade que é chamada
Driver
Casos
de teste

Stub 1

Unidade
em
Teste
Stub 2

resultados

Stub 3

Componentes de testes
devem ser mais simples e mais rápidos de
desenvolver do que as unidades
substituídas
grau de facilidade ou dificuldade de
construí-los depende da qualidade do
projeto

Exemplo: stub
Módulo
A
vetor
desordenado

vetor
ordenado

Módulo
Ordena_Vetorstub para este procedimento ?

type VetorInt = array [1 .. N] of
integer;
...
procedure Ordena_Vetor (a : VetorInt);
...
begin
write (“Valores fornecidos”);
for i := 1 to N do write (a [ i ] );
write (“Forneça os valores
ordenados”);
for i := 1 to N do read (a [ i ] );
end;

Exemplo - Driver
Módulo
criaTab

Driver

Módulo
leItem
Módulo
insereItem
Módulo
mostraTabtype TabInt = array [ 1 .. N, 1 .. M ] of
integer;
...
var Tabela: TabInt,
x: integer;
...
criaTab ;
leItem ( x );
insereItem (x );
mostraTab ;
....

Testes de integração
Integram unidades já testadas
critério: exercitar cada unidade pelo menos
uma vez

Falhas de integração
interfaces incorretas
falta, sobreposição ou conflito de funcionalidades
violação da integridade dearquivos e estruturas de dados globais
seqüência incorreta de unidades
tratamento de erros (exceções) incorreto
problema de configuração / versões
falta de recursos para atender a demanda das unidades
objeto incorreto é associado a mensagem (polimorfismo)

Abordagens de integração
Não incremental (“big-bang”):
todas as unidades são integradas de uma só vez
esforço de preparação menor
esforçopara diagnóstico e correção de falhas é maior
Incremental
as unidades são integradas gradualmente
descendente (“top-down”)
ascendente (“bottom-up”)
por colaboração
mista

Abordagem incremental

T1
T2
T3

A
B

A
T1
T2
T3
T4

B
C

A
T1
T2
T3
T4
T5

B
C
D

Integração ascendente (“top-down”)

começa com a unidade
principal e vai aos
poucos integrando asunidades subordinadas
em OO: classes de
controle primeiro
utiliza stubs em lugar
das unidades
subordinadas

Unidade Principal

Subordinada 1

Subordinada 1a

Stub

Integração ascendente (“top-down”)
Pode ser feita em profundidade ou em largura
interfaces de mais alto nível são testadas mais cedo

Unidade Principal

Subordinada 1

Stub

Subordinada 1a

em profundidadeUnidade Principal

Subordinada 1

Subordinada 2

Stub
em largura

Integração descendente (“bottom-up”)

começa a integração pelas
unidades subordinadas
em OO: começar pelas
classes independentes ou
que usam poucas servidoras
utiliza drivers em lugar das
unidades de controle
algoritmos de mais baixo
nível são testados antes de
serem integrados ao resto do
sistema

Driver1aDriver1b

Subordinada 1a

Subordinada 1b

Unidade 1

Subordinada 1a

Subordinada 1b

Integração por colaborações
identifica colaborações: grupos de unidades que interagem para
realizar uma ação do sistema
escolhe uma colaboração integrando as unidades que a compõem
critério: integrar todas as colaborações identificadas
testes enfocam funcionalidades ⇒ podem ser reutilizados nos...
tracking img