Engenharia de Software 1
15 - Verifica¸c˜ao e Valida¸c˜ao: Teste de software
Alexandre de Andrade Barbosa
Objetivos
Exibir conceitos relacionados a atividade de teste
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
introdu¸c˜
ao
Testes devem mostrar que o software ´e bom o suficiente para uso
(confi´avel)
Apenas um subconjunto de casos poss´ıveis de teste ´e verificado
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
introdu¸c˜
ao
“Os testes podem apenas mostrar a presen¸ca de erros, n˜
ao
sua ausˆ
encia
completa
”
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Teste de software
Testes podem ser categorizados segundo uma s´erie de crit´erios:
Tipos de teste segundo objetivo: Teste de valida¸c˜ao ou Teste de
defeitos;
Tipos de testes segundo a fase de aplica¸c˜ao: Teste de unidade,
Teste de Integra¸c˜ao, Teste de Sistema ou Teste de regress˜ao
Tipos de teste segundo o crit´erio de aplica¸c˜ao: Teste funcional,
Teste estrutural e Teste baseado em defeito
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Teste de software
Tipos de teste segundo objetivo
Teste de valida¸c˜ao
Visa mostrar que o software atende aos requisitos;
Sucesso: Quando o teste mostra que o requisito foi implementado
corretamente
Teste de defeitos
Visa encontrar defeitos no sistema;
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Teste de software
Teste de unidade (ou de componente)
Teste de partes individuais do sistema
Realizado: desenvolvedor(es)
Teste de integra¸c˜ao
Teste de duas ou mais partes do sistema funcionando em conjunto
Realizado: desenvolvedor(es)
Teste de sistema
Ap´os realizar a integra¸c˜ao de todas as partes constituintes, o
sistema completo ´e testado
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Teste de software
Diferentes estr´ategias podem ser adotadas na realiza¸c˜ao de testes
Dois exemplos de estrat´egias de testes s˜ao:
Estrat´egia de teste em V
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Teste de Software
Estrat´egia de desenvolvimento guiada por testes
1Defina uma lista de tarefas a implementar
2
Escreva um teste
3
Execute o teste (s´
o para garantir que ele falha)
4
Implemente o c´
odigo mais simples que passe pelo teste
5
Refatore o c´
odigo para remover a duplica¸c˜
oes
6
Escreva mais um teste ou refine o teste existente
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Teste de Software
Como eu vou criar o teste antes do
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Introdu¸c˜
ao
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Introdu¸c˜
ao
A constru¸c˜ao de software ´e uma tarefa complexa...
... n˜ao pode ser totalmente automatizada...
... depende fortemente da habilidade dos desenvolvadores ...
...
Grande parte dos problemas encontrados em software ocorrem
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Introdu¸c˜
ao
T´ecnicas de VV&T existem para minimizar os danos inerentes `a
falha humana no ciclo de desenvolvimento
Atividades de VV&T podem ser realizadas a qualquer momento
no ciclo de desenvolvimento
Inspe¸c˜
oes podem ter in´ıcio desde a cria¸c˜ao do primeiro artefato
O planejamento de testes pode come¸car desde o levantamento de
requisitos
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Introdu¸c˜
ao
O teste de sofwtare ´e a atividade de VV&T mais conhecida e
amplamente utilizada
O objetivo do teste ´e exercitar uma vers˜ao do software de modo
que se avalie o comportamento apresentado
Se o comportamento exibido n˜ao est´a de acordo com o esperado,
um erro (ou defeito) ´e identificado
O objetivo do teste ´e identificar o erro
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Termos
Alguns termos s˜ao utilizados na literatura relacionada a testes
Defeito - produ¸c˜ao de dados incorretos
Engano - a¸c˜ao humana que resulta em um defeito
Erro - estado inconsistente apresentado durante a execu¸c˜ao do
programa
Falha - resultado incorreto que ´e produzido por um erro
Os termos n˜ao s˜ao unˆanimes e s˜ao utilizados informalmente
como sinˆ
onimos
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Termos
Dom´ınio de entrada (
D(P)
)
conjunto de todos os valores de entrada poss´ıveis para um programa
Dom´ınio de sa´ıda
conjunto de todos os resultados produzidos pelo programa
Dado de teste
um elemento de
D(P)
Caso de teste
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Termos
Um programa que calcula
x
y
Dom´ınio de entrada (
D(P)
)
x
∈
Z
e
y
∈
Z
(pares de inteiros)
Dado de teste
2
Caso de teste
<
(2
,
3)
,
8
>
Conjunto de teste
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Termos
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Fases da atividade de teste
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Fases da atividade de teste
Teste de unidade (ou de componente)
Teste de partes individuais do sistema (classes, m´etodos, ...)
Realizado: desenvolvedor(es)
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Fases da atividade de teste
Teste de integra¸c˜ao
Teste de duas ou mais partes do sistema funcionando em conjunto
Realizado: desenvolvedor(es)
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Fases da atividade de teste
Teste de sistema
Ap´os realizar a integra¸c˜ao de todas as partes constituintes, o
sistema completo ´e testado
Realizado: equipe de teste ou grupo de usu´arios
Teste de software
Teste de releases
´
E realizado sobre uma vers˜ao do sistema que ser´a liberada para o
cliente
´
E baseado somente na especifica¸c˜ao de sistema (caixa-preta)
Teste alfa - teste interno (no ambiente de desenvolvimento)
efetuado sobre uma vers˜ao do software que ser´a liberada aos
usu´arios finais
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Fases da atividade de teste
Para todas as fases deve-se realizar um conjunto de etapas:
Planejamento
Projeto de casos de teste
Execu¸c˜ao
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Fases da atividade de teste
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Crit´erios de teste
Uma das etapas do processo de teste de software ´e o “Projeto de
casos de teste”
O objetivo ´e gerar um conjunto de casos de teste que possa ser
utilizado de forma efetiva
Os projeto de teste engloba a descri¸c˜ao das pr´e-condi¸c˜oes
(entradas) e p´
os-condi¸c˜oes (sa´ıdas)
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Crit´erios de teste
Teste exaustivo - selecionar todos os elementos do conjunto de
teste
Para o programa que computa
x
y
Conjunto de teste: todos os pares de inteiros poss´ıveis...
Exemplo
o conjunto de teste possui cardinalidade 2
nx
2
nn, n´
umero de bits usados na representa¸c˜ao do inteiro
2
32x
2
32= 2
64= 18
.
446
.
744
.
073
.
709
.
551
.
616 de casos de teste
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Crit´erios de teste
Teste caixa-branca
o comportamento interno ´e checado
teste executado com conhecimento do c´
odigo
Teste caixa-preta
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Crit´erios de teste
T´ecnicas/Abordagens para selecionar elementos do conjunto de
teste
Teste aleat´
orio
Teste de parti¸c˜ao
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Crit´erios de teste
Teste de aleat´
orio
uma grande quantidade de casos de teste ´e selecionada
aleatoriamente
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Crit´erios de teste
Teste de parti¸c˜oes
Os dados de entrada e sa´ıda podem pertencer a uma mesma classe
Estas classes s˜ao chamadas de
parti¸c˜
oes
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Crit´erios de teste
Teste funcional (caixa-preta)
Casos de teste s˜ao derivados de acordo com a especifica¸c˜ao do
programa
Escolha de casos de teste baseada na escolha de elementso de
uma determinada parti¸c˜ao
Particionamento de equivalˆencia
An´
alise do valor limite
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Crit´erios de teste
Teste estrutural (caixa-branca)
Casos de teste s˜ao derivados de acordo com a estrutura do
programa
Exercitar todos as partes do programa
Verifica¸c˜
ao e Valida¸c˜
ao: Teste de software
Crit´erios de teste
Teste baseado em defeitos (caixa-branca)
Casos de teste s˜ao criados om base na estrutura interna do
programa
Cohecimento de defeitos comuns na atividade de codifica¸c˜ao s˜ao
utilizados para derivar casos de teste
Exerc´ıcio
1