Вы находитесь на странице: 1из 69

Engenharia de Software II

Fundamentos do Teste de Software

Contedo
Tcnicas de Teste
Funcional
Estrutural
Baseada em Erros

Estratgias de Teste

Teste de Unidade
Teste de Integrao
Teste de Validao
Teste de Sistema
Depurao

Garantia de Qualidade de Software


um conjunto de atividades tcnicas aplicadas durante
todo o processo de desenvolvimento.
O objetivo garantir que tanto o processo de
desenvolvimento quanto o produto de software atinjam
nveis de qualidade especificados.
VV&T:
Verificao;
Validao;
Teste

Qualidade de Software
Conformidade com requisitos funcionais e de desempenho,
padres de desenvolvimento documentados, e caractersticas
implcitas esperadas de todo software profissionalmente
desenvolvido
Corretitude
Confiabilidade
Testabilidade

Garantia de Qualidade de Software


Validao:
Assegurar que o produto final corresponda aos requisitos do
software. Estamos construindo o produto certo?

Verificao:
Assegurar consistncia, completitude e corretitude do produto em
cada fase e entre fases consecutivas do ciclo de vida do software.
Estamos construindo corretamente o produto?

Teste:
Examina o comportamento do produto atravs de sua execuo

Definies
Defeito
Deficincia mecnica ou algortmica que se ativada pode levar
a uma falha.

Erro:
Item de informao ou estado de execuo inconsistente.

Falha
Evento notvel onde o sistema viola suas especificaes

Defeito

Erro

Falha

Defeitos no Processo de Desenvolvimento


A maior parte de origem humana;
So gerados na comunicao e na transformao de informaes;
Permanecem presentes nos diversos produtos de software
produzidos e liberados. (10 defeitos a cada 1000 linhas de cdigo);
A maioria encontram-se em partes do cdigo raramente executadas;
Quanto antes a presena do defeito for revelada, menor o custo de
correo do defeito e maior a probabilidade de corrigi-lo corretamente
Principal causa: traduo incorreta de informaes;
Soluo: introduzir atividades de VV&T ao longo de todo o ciclo de
desenvolvimento.

Defeitos no Processo de Desenvolvimento

Teste e Depurao
Teste
Processo de executar um programa com o objetivo de revelar a
presena de defeitos; ou, falhando nesse objetivo, aumentar a
confiana sobre o programa;

Depurao:
uma conseqncia no previsvel do teste. Aps revelada a
presena do defeito ele deve ser encontrado e corrigido

Principal Objetivo:
Refutar a assertiva de que o produto est correto
Determinar entradas que faam as sadas obtidas diferirem das
sadas esperadas segundo a especificao
um processo destrutivo, sob o ponto de vista psicolgico,
contrariamente s demais fases da Engenharia de Software, onde
constri-se um produto

Teste de Software
Uma das atividades mais onerosas do desenvolvimento de
software:
Teste timo
Custo do teste

Quantidade

supertestado

subtestado

Nmero de defeitos

Extenso do teste

Teste de Software
Atividade essencial para ascenso ao nvel 3 do Modelo
CMM/SEI;
Atividade relevante para avaliao de produtos de software
(ISO 9126, ISO 14598-5);

Teste de Software
Defeitos e erros ocultos" no software e no revelados

Falhas a se manifestarem na utilizao


pelos usurios e erros corrigidos
durante a manuteno.

CUSTOS ALTSSIMOS!

Teste de Software
Atividades de Teste
Planejamento

Tipos de testes;
Casos de teste;
Ciclos de teste;
Ferramentas de teste.

Projeto de Casos de Teste


Execuo de Casos de Teste
Anlise de Resultados

Inexistncia de erro:

Software de alta Qualidade?


Teste de baixa Qualidade?

Projeto de Casos de Teste


Projeto de teste pode ser to difcil quanto o projeto do prprio
produto a ser testado;
Poucos programadores/analistas gostam de teste; menos ainda
de projeto de casos de teste;
Tcnicas de Projeto de Casos de Teste
Maneira sistemtica e planejada para conduzir os testes ( Critrios
de Teste )
Conjunto de Casos de Teste:
Deve ser finito
O custo de aplicao deve ser razovel

Projeto de Casos de Teste


Informaes necessrias:

Nome do caso de teste (nico);


Descrio (objetivo do caso de teste);
Entradas (input);
Critrio de aceite (resultado esperado);
Resultado (resultado do teste).

Projeto de Casos de Teste


Exemplo de Caso de Teste
Nome: Cadastrar Atendimento
Descrio: Verificar o cadastro de um atendimento com todas
informaes vlidas
Entradas:

Nome Paciente: Antonio Marcos


Sintomas atuais: Dores de cabea
Diagnstico: Enxaqueca
Receita: Analgsicos comuns
Pressionar boto Cadastrar Atendimento

Critrio de aceite: Mensagem informando que o atendimento foi


cadastrado com sucesso (dados de entrada cadastrados no
banco de dados).
Resultado: Mensagem informando que cliente foi cadastrado
com sucesso (caso de teste executado com sucesso)

Projeto de Casos de Teste


Emitir receita
Descrio: Verificar a impresso de uma receita.
Entradas: Pressionado boto Emitir receita.
Critrio de Aceite: Impresso da receita.
Resultado: Receita emitida com sucesso (caso de teste executado com sucesso).

Cadastrar atendimento com banco de dados indisponvel


Descrio: Verificar o cadastro de um atendimento com banco de dados
indisponvel.
Entradas: Nome Paciente, Sintomas atuais, diagnstico, receita e pressionar
boto Cadastrar Atendimento.
Critrio de Aceite: Mensagem informando que o banco de dados est
indisponvel.
Resultado: Mensagem sem informao para o usurio sobre o que aconteceu no
sistema (caso de teste falhou).

Projeto de Casos de Teste


Identifique e descreva os casos de teste para o caso de uso
Manter Cliente.

Estratgias de Teste

Estratgias de Teste
Aspectos genricos das Estratgias de Teste
A atividade de teste inicia-se no nvel de mdulos e caminha na
direo da integrao de todo o sistema;
Diferentes tcnicas de teste so apropriadas para diferentes
situaes;
A atividade de teste, em geral, realizada pela equipe de
desenvolvimento e, no caso de grandes projetos, por um grupo
de teste independente
As atividades de teste e depurao so atividades diferentes,
mas a depurao necessria em qualquer estratgia de teste

Estratgias de Teste
Relao entre o processo de desenvolvimento e
uma estratgia de teste
Engenharia de Sistema
Requisitos
Projeto
Cdigo

S
R
P
C
U
I
V
TS

Teste de Unidade
Teste de Integrao
Teste de Validao
Teste de Sistema

Teste de Unidade

Concentra-se no mdulo
Utiliza a tcnica de teste estrutural
Pode ser realizado em paralelo para vrios mdulos
Aspectos considerados:

Mdulo
__________
__________
__________
__________
__________
_____

Interface
Estrutura de dados local
Condies limite
Caminhos independentes
Caminhos de tratamento de erros

Casos de teste

Teste de Unidade
Geralmente, um programa no um mdulo nico, mas
formado de diversos mdulos que, para efeito do teste de
unidade devem ser testados separadamente

Driver
Interface
Estrutura de dados local
Condies limite
Caminhos independentes
Caminhos de tratamento de erros

Mdulo a
ser testado

Stub

Stub

Resultados
Casos de teste

driver : um programa principal que


aceita dados de casos de teste, passa
esses dados para o mdulo a ser
testado e imprime os dados relevantes
que ele recebe do mdulo
stub : so mdulos que servem para
substituir outros mdulos que estejam
subordinados, isto , que so
chamados pelo mdulo testado; ele
usa a interface do mdulo
subordinado, faz o mnimo de
manipulao de dados, imprime uma
verificao da entrada e retorna

Teste de Integrao
Constri-se, de uma forma sistemtica, a estrutura do programa
realizando, ao mesmo tempo, testes para detectar erros de
interface;
Embora os mdulos, depois do teste de unidade, funcionem
corretamente de forma isolada, o teste de integrao necessrio
pois quando colocados juntos, vrias situaes inesperadas
podem acontecer;
Abordagem big-bang?
Correo difcil e isolamento complicado.

Integrao feita atravs de uma abordagem incremental


Erros fceis de isolar e corrigir;
integrao top-down
integrao bottom-up

Teste de Integrao
Integrao Top-down
A integrao dos mdulos feita de cima para baixo
Pode ser realizada de duas maneiras:
Por profundidade (M2, M5 e M8 ou M2, M5, M6 e M8)
Por largura (M2, M3 e M4)
M1

M2

M5

M8

M3

M6

M7

M4

Teste de Integrao
Integrao Top-down
O processo de integrao feito atravs de cinco passos:
1. o mdulo de controle principal usado como um driver e substituise por stubs todos os mdulos reais diretamente subordinados ao
mdulo principal;
2. dependendo da abordagem de integrao a ser utilizada por
profundidade ou largura os stubs so substitudos pelos mdulos
reais, um de cada vez;
3. so realizados testes para cada mdulo que seja integrado;
4. quando um teste concludo, outro stub substitudo pelo mdulo
real;
5. teste de regresso, isto , repetio de todos ou alguns dos testes
j realizados pode ser aplicado novamente para garantir que novos
erros no tenham sido introduzidos.

Teste de Integrao
Integrao Top-down
Por profundidade: permite que uma funo especfica do mdulo
principal possa ser testada por completo;
Nem sempre a construo de um stub uma tarefa fcil, pois se
a funo do mdulo real que ele representa for complexa, o stub
tem que tratar os aspectos principais desse mdulo para que o
teste seja significativo.

Teste de Integrao
Integrao Bottom-up
A integrao dos mdulos feita de baixo para cima
Quando os mdulos de nveis superiores vo ser testados, os
mdulos subordinados j esto prontos e portanto, no se torna
necessria a construo de stubs
Mc

Ma

D1

Mb
D2

D3

Cluster3
Cluster1
Cluster2

Teste de Integrao
Integrao Bottom-up
O processo de integrao feito atravs de quatro passos:
1. os mdulos de nvel mais baixo so combinados em clusters que
executam funes especficas do mdulo principal;
2. para cada cluster elaborado um driver que coordena a entrada e
sada dos casos de teste;
3. o cluster testado;
4. os drivers so substitudos pelos clusters que passam a interagir
com os mdulos acima, na estrutura do programa.

Teste de Integrao
Teste de Regresso
Cada vez que um novo mdulo adicionado como parte do teste
de integrao, o software se modifica;
Modificaes podem causar
previamente funcionavam;

problemas

com

funes

que

Teste de Regresso a re-execuo de algum subconjunto de


testes que j foi conduzido para garantir que as modificaes no
propagem efeitos colaterais;

Teste de Integrao
Teste de Fumaa
Abordagem de teste de integrao comumente usada em projetos
de software;
Atividades:
Componentes de software que foram construdos so integrados em
uma construo (build).
Uma srie de testes projetada para expor erros que impeam a
construo de desempenhar adequadamente sua funo.
A construo integrada com outras construes e o produto inteiro
passa pelo teste de fumaa diariamente.

Testes dirios permitem aos avaliarem de forma realstica o


progresso do teste de integrao.

Teste de Integrao
A escolha por uma das duas abordagens de integrao depende
do tipo de software e, s vezes, do cronograma do projeto
Em geral, uma integrao combinada - sanduche aconselhvel:
mdulos superiores
abordagem top-down
mdulos mais inferiores
abordagem bottom-up
Top-down

mais

vantagem: testar logo no incio as funes principais do software


desvantagem: os stubs e a dificuldade de teste quando eles so usados

Bottom-up

vantagem: no se precisa de stubs


desvantagem:o mdulo principal no existe enquanto todos mdulos no estiverem
testados

Teste de Validao
Aes visveis ao usurio e sadas reconhecidas pelo usurio;
O software est montado como um pacote e a validao
realizada atravs de uma srie de testes caixa preta;
Finalidade:
Demonstrar a conformidade aos requisitos funcionais e de
desempenho;
Verificar se a documentao est correta.

Duas possibilidades:
Aceito;
No est totalmente de acordo com os requisitos: negociar com
o usurio.

Teste de Validao
Engloba o Teste de Aceitao: realizado pelo prprio
usurio;
No caso de software desenvolvido para vrios usurios:
Teste alfa: realizado pelo usurio no ambiente do
desenvolvedor
Teste beta: realizado pelo usurio em seu prprio ambiente

Teste de Sistema
Considera o software dentro do seu ambiente mais amplo (todos
os aspectos de interao com ele, como outro hardware, software,
pessoas, etc.);
Corresponde a uma srie de testes que tem por objetivo verificar
se todos os elementos do sistema foram integrados
adequadamente e realizam corretamente suas funes:
teste de recuperao: tem por objetivo verificar se a recuperao do
software realizada de forma adequada
teste de segurana: tem por objetivo verificar se todos os mecanismos de
proteo protegem realmente o software de acessos indevidos.
teste de estresse: tem por objetivo confrontar os programas com
situaes anormais de freqncia, volume ou recursos em quantidade.
teste de desempenho: tem por objetivo testar o tempo de resposta do
sistema e aplicado, geralmente, para sistemas de tempo real

Depurao
Processo de Depurao

Resultados
Casos
de
Teste

Testes
adicionais

Causas
suspeitas

Testes de
regresso

Depurao
Correes

Causas
identificadas

Depurao
Abordagens para se conduzir a depurao:
fora bruta: quando o erro no analisado para se descobrir a
causa, tentando que o prprio computador a descubra,
inserindo, por exemplo, vrios comandos de escrita no
programa;
backtracking: inicia-se no local em que o sintoma foi detectado
e rastreia-se para trs, manualmente, at que o local da causa
seja encontrado;
eliminao da causa: supe-se uma causa e elaboram-se
casos de teste para comprovar ou refutar essa hiptese.

Pontos-Chaves
O objetivo do teste encontrar erros e se eles no forem
detectados, o teste no pode afirmar sua ausncia;
Testar tudo impossvel;
As tcnicas de teste so complementares, isto , devem
aplicadas conjuntamente ;
A execuo do teste criativa e difcil, pois para testar com
eficincia preciso conhecer o software a fundo.

Teste OO
mais simples por causa do reso?
NO!
Cada reso um novo contexto;
Retestar prudente;
Tudo indica que mais (e no menos) teste necessrio para se
obter alta confiabilidade em sistemas OO.

Teste OO
Para testar um sistema OO de maneira adequada:
O teste deve ser ampliado para incluir tcnicas para identificao
de erros que se apliquem aos modelos de AnliseOO e
ProjetoOO;
A estratgia de teste de unidade e de integrao deve mudar
significativamente;
O projeto de casos de teste deve considerar as caractersticas
de software OO.

Teste OO - Ampliando a Viso do Teste


Uma reviso dos modelos de AOO e POO importante pois
as mesmas construes semnticas (classes, atributos,
operaes e mensagens) aparecem nos nveis de anlise,
projeto e cdigo
Os modelos AOO e POO no podem ser testados de forma
convencional pois no so executveis, mas Revises Tcnicas
Formais podem ser aplicadas para examinar a corretitude e
consistncia deles
Corretitude semntica conformidade com o mundo real
Consistncia relacionamento consistente entre as entidades do
modelo (examinar cada classe e suas conexes
com outras classes)

Teste OO - Estratgias de Teste


Teste de Unidade
A menor unidade testvel em um sistema OO uma classe ou
objeto;
A classe pode conter vrias operaes e cada operao pode ser
parte de diferentes classes (herana);
Cada operao deve ser testada como parte de uma classe.

Teste OO - Estratgias de Teste


Teste de Integrao
Teste baseado em linha: integra o conjunto de classes
necessrias para responder a uma entrada ou evento do sistema.
Teste baseado em uso:
Inicia a construo do sistema pelas classes independentes que
usam muito pouco de outras classes servidoras;
Em segundo lugar testa as classes dependentes que so as que
usam as classes independentes.

Teste de Clusters: identificam-se clusters (conjuntos) de classes


colaborativas, de acordo com o modelo de relacionamento de
objetos, e projetam-se casos de teste para cobrir as
colaboraes.

Teste OO - Estratgias de Teste


Teste de Validao
Nesse nvel os
desaparecem;

detalhes

das

conexes

entre

classes

Como no teste convencional, o foco voltado para as entradas e


sadas produzidas pelo software;
Os dados de teste podem ser baseados em:
Use cases (selecionando cenrios que tenham probabilidade de
descobrir erros)
Mtodos convencionais de teste caixa preta

Tcnicas de Teste

Tcnicas de Teste
Funcional
Estrutural
Baseada em Erros

A diferena est na fonte utilizada para


estabelecer os requisitos de teste
O importante no definir qual usar, mas
saber us-las de forma complementar

Tcnicas de Teste
Funcional ou Teste Caixa Preta
baseada na especificao do software

Estrutural ou Teste Caixa Branca


baseada numa implementao em particular

Baseada em Erros
baseada nos erros tpicos e comuns cometidos
durante o desenvolvimento

Teste Estrutural ou Teste Caixa Branca

Teste Estrutural
Os requisitos de teste so
implementao em particular

extrados

de

uma

Teste dos detalhes procedimentais


A maioria dos critrios dessa tcnica utiliza uma
representao de programa conhecida como grafo de
programa ou grafo de fluxo de controle

Teste Estrutural
Teste Baseado em
Fluxo de Controle
Critrios:

Teste de Comandos
Teste de Ramos
Caminho DD
Teste de Condio
Teste de Deciso/Condio
Teste de Condio Mltipla
Teste do Caminho Bsico
Teste de Caminho

Teste Baseado em
Fluxo de Dados
Critrio:

Todos-usos

Teste Estrutural
Grafo de Fluxo de Controle ou Grafo de Programa
consiste de ns conectados por arcos com setas que mostram sua
direo
os ns representam blocos de comandos
bloco de comando: um conjunto de comandos tal que se o primeiro
comando for executado, ento todos os comandos subseqentes
tambm o sero

os arcos indicam precedncia, ou transferncia de controle


essa representao permite que o programa seja examinado
independentemente de sua funo

Teste Estrutural
Construes Bsicas do Grafo de Fluxo de Controle

seqncia

if

while

repeat

case

Teste Estrutural
Exemplo de Construo do Grafo de Fluxo de Controle

incio
leia nro
raiz = raiz-quadrada(nro)
escreva raiz
fim

Programa com um caminho

Teste Estrutural
Exemplo de Construo do Grafo de Fluxo de Controle

incio

leia nro
se nro > 0
raiz = raiz-quadrada(nro)
escreva raiz
seno
escreva mensagem de erro
fim-se
fim

Programa com dois caminhos

Teste Estrutural
Exemplo de Construo do Grafo de Fluxo de Controle
incio

leia nro
enquanto nro 0 2
3
se nro > 0
raiz = raiz-quadrada(nro) 4
escreva raiz
seno
escreva mensagem de erro
fim-se
6
leia nro
fim-enqto
fim

Programa com loop

Teste Estrutural
1 program exemplo(input, output);
2 var a: array[1..20] of char;
Programa com
3 x, i: integer;
blocos marcados
4 c, resposta: char;
5 achou: boolean;
6 begin
1
7
writeln (entre com um inteiro entre 1 e 20);
8
readln (x);
2
9
while (x < 1) or (x > 20) do
10
begin
3
11
writeln (entre com um inteiro entre 1 e 20);
12
readln (x)
13
end;
14 writeln (digite, x, caracteres); 4
5
15 for i := 1 to x do
16
read (a[ i ]); 6
7
17 readln;
18 repeat
19
writeln (digite o caracter a ser pesquisado: );
8
20
readln (c);
21
achou := FALSE;
22
i := 1;
23
while (not(achou)) and (i <= x) do
9
24
begin
10
25
if a[ i ] = c then
11
26
achou := TRUE
27
else
12
28
i := i + 1
29
end;
13
14
30
if achou then
31
writeln (o caracter , c, aparece na posicao, i) 15
32
else
33
writeln (o caracter , c, no ocorre na string fornecida);
34
writeln;
35
writeln (deseja fazer a procura para outro caracter? [s/n]);
36
readln (resposta);
37 until (resposta = n) or (resposta = N);
38 end.
18

a
2
b

Grafo de fluxo
de controle

e
5
g

f
h

7
i
8
j
9
k

r
l

10

11

12
n

13

14

16

17

16

15
u

17
w
18

Teste do Caminho Base


Descrio:
esse critrio fornece uma maneira de determinar um conjunto bsico de
caminhos linearmente independentes, de modo que executando-os
garante-se a execuo de todos os comandos ao menos uma vez
Esse nmero determinado pela frmula da Complexidade Ciclomtica
de McCabe

V(G) = a n + 2
ou

V(G) = P + 1
ou

V(G) = no. de regies


sendo:

G: um grafo direcionado
a: arestas (ramos)
n: ns
P: no. de ns predicativos

Um caminho linearmente independente aquele que contm ao menos


um novo n

Teste do Caminho Base


Aplicao:

V(G) = 23 - 18 + 2 = 7
V(G) = 6 +1 = 7
V(G) = no. de regies = 7
a partir desse nmero deve-se escolher 7 caminhos linearmente
independentes do grafo:

1.
2.
3.
4.
5.
6.
7.

1-2-4-5-7-8-9-14-15-17-18
1-2-4-5-7-8-9-14-16-17-18
2-3-2
5-6-5
9-10-11-13-9
9-10-12-13-9
8-9-14-15-17-8

Teste do Caminho Base


Observao:
esse conjunto conhecido como conjunto base a partir do qual
qualquer outro caminho pode ser construdo
Por exemplo, o caminho:
1-2-3-2-4-5-6-5-6-5-7-8-9-10-11-13-9-14-15-17-18

uma combinao dos caminhos 1, 3, 4 (2 vezes) e 5


neste caso, o conjunto de dados de teste o mesmo do Teste
de Ramos

Teste do Caminho Base


1

O grfico de fluxo tem 4 regies.

Ramo

V(G) = 11 ramos 9 ns + 2 = 4
N V(G) = 3 ns predicativos + 1 = 4

2
4
6

R2

R3

R1

Portanto a complexidade
ciclomtica 4

Regio

R4

- Caminho 1: 1-11
- Caminho 2: 1-2-3-4-5-10-1-11
- Caminho 3: 1-2-3-6-8-9-10-1-11
- Caminho 4: 1-2-3-6-7-9-10-1-11

Teste de Condio
Descrio:
Exercita as condies lgicas de um mdulo de programa.
Estabelece os requisitos de teste para que todas as condies em
uma deciso requeiram as duas sadas, verdadeiro e falso, se for
possvel, ao menos uma vez

Aplicao:
Devem ser consideradas todas as condies das decises
no loop while (linha 9), tem-se uma deciso com duas condies:
while (x<1) or (x>20) do
valores de x: 0 e 21 obtm-se a cobertura das condies
se
x=0 ento a primeira condio verdadeira e a segunda falsa; se
x=21 ento a primeira condio falsa e a segunda verdadeira

necessrio gerar um outro valor para x que esteja dentro do


intervalo, de forma que seja possvel a execuo do resto do
programa

Teste Funcional ou Teste Caixa Preta

Teste Funcional
Os requisitos de teste so extrados da especificao do
software
Aborda o software de um ponto de vista macroscpico
Problema:
Dificuldade em quantificar a atividade de teste - no se pode
garantir que partes essenciais ou crticas do software foram
executadas

Critrios:
Particionamento de Equivalncia
Anlise do Valor Limite
Grafo Causa-Efeito

Particionamento de Equivalncia
Descrio:
Divide o domnio de entrada em classes de dados das quais os
casos de teste podem ser derivados
Busca definir um caso de teste que descobre classes de erros,
reduzindo assim o nmero total de casos de teste.
As classes de dados, que podem ser vlidas ou invlidas, so
definidas de acordo com as seguintes diretrizes:
se a condio de entrada especifica um intervalo, so definidas uma
classe vlida e duas invlidas
se a condio de entrada exige um valor especfico, so definidas
uma classe vlida e duas invlidas
se a condio de entrada especifica um membro de um conjunto,
so definidas uma classe vlida e uma invlida
se a condio de entrada for booleana, so definidas uma classe
vlida e uma invlida

Particionamento de Equivalncia
Aplicao:
de acordo com sua especificao existem, basicamente, quatro
entradas:

um inteiro positivo (entre 1 e 20 3 parties)


uma cadeia de caracteres
um caracter a ser procurado
a opo por procurar por mais caracteres (duas parties: uma para
y e outra para n)

o domnio de sada consiste de duas respostas, que levam a


outra diviso do domnio de entrada:
a posio na qual o caracter foi encontrado na string (caracter de
entrada pertencente string)
uma mensagem declarando que ele no foi encontrado (caracter de
entrada no pertencente string)

Particionamento de Equivalncia

Dados de teste para o Teste de Particionamento de Equivalncia


x
34
0
3

entrada
a

abc

sada esperada
c

resposta
entre com um inteiro entre 1 e 20
entre com um inteiro entre 1 e 20
o caracter c aparece na posicao 3

c
s
k

o caracter k no ocorre na string fornecida


n

Particionamento de Equivalncia
Observao:
reduz o tamanho do domnio de entrada
concentra-se em criar dados de teste baseados unicamente na
especificao
especialmente adequado para aplicaes em que as variveis
de entrada podem ser facilmente identificadas e podem ter
valores distintos

Anlise do Valor Limite


Descrio:
complementa o Particionamento de Equivalncia
coloca sua ateno em uma fonte propcia a erros os limites de
uma classe ou partio de equivalncia

Partio de Equivalncia

Limites

Anlise do Valor Limite


Aplicao:
os valores inteiros 0, 1, 20 e 21
encontrar o caracter na primeira e na ltima posio da cadeia
de caracteres
Dados de teste para o Teste de Anlise do Valor Limite
x
21
0
1

entrada
a

sada esperada
c

resposta
entre com um inteiro entre 1 e 20
entre com um inteiro entre 1 e 20
o caracter a aparece na posicao 1

a
s
x

o caracter x no ocorre na string fornecida


n

20 abcdefghijklmnopqrst

o caracter a aparece na posicao 1


s

o caracter t aparece na posicao 20


n