Instituto Tecnolgico da Aeronutica
Diviso de Ps-Graduao
Curso de Engenharia Eletrnica e Computao
rea Informtica (EEC-I)
CE-229: TESTE DE SOFTWARE
LISTEX 03
Prof. Dr. Luiz Alberto Vieira Dias
Prof. Dr. Fabio Fagundes Silveira
Equipe Alpha:
Breno Lisi Romano
Caio Monteiro Barbosa da Silva
Glucia Braga e Silva
Henrique Fernandes de Campos
Juliano de Almeida Monte-Mor
1 Sem / 2008
1. INTRODUO
Este relatrio apresenta a resoluo da Listex 03 que compreende duas atividades. Estas
atividades se referem, respectivamente, ao levantamento dos requisitos de testes, utilizando
Pairwise Testing, e anlise de valor limite, com os respectivos casos de teste, para
operaes especificadas.
2. DESENVOLVIMENTO
O detalhamento das resolues de cada uma das atividades encontra-se nas prximas sees.
2.1.
Determinao de Requisitos de Teste (Pairwise Testing)
2.1.1. O Caso do Banco
Determinar quantos casos de teste sero necessrios com a tcnica Pairwise Testing. Sem a
tcnica seriam necessrios 120 casos de teste.
Descrio: Um banco criou um novo sistema de processamento de dados.
Este banco tem clientes de quatro tipos: (1) consumidores comuns, (2) very
important consumers (VIC), (3) comerciantes e (4) sem fins lucrativos (SFL).
Ele tem cinco tipos de contas: (1) corrente, (2) poupana, (3) hipoteca, emprstimo
ao (4) consumidor e (5) comercial.
Ele opera em cinco estados (USA): CA, NV, UT, AR, NM
Total = 4 x 5 x 5 = 100 combinaes
A realizao de todos os casos de teste torna-se invivel devido ao grande nmero de
combinaes possveis.
2.1.1. Tcnicas utilizadas
Duas tcnicas so utilizadas para determinar os casos de teste em Pairwise Testing:
Orthogonal arrays (matrizes ortogonais)
Algoritmo Allpairs (todos os pares)
[Link].
Orthogonal Arrays (OA)
Para este exemplo do Banco, a OA perfeita seria Lx(415151), mas como no existem
matematicamente OAs para todos os ndices, a que mais se aproxima a Lx(4152), mais
especificamente a L25(53). Embora a OA seja maior que o necessrio, ainda menor que os
100 casos de teste necessrios sem a utilizao da tcnica.
[Link].
Algoritmo Allpairs
Tambm foi utilizado o Algoritmo Allpairs para o exemplo do Banco (Tabela 1).
CLIENTES
CONTAS
ESTADOS
CONSUMIDORES COMUNS
CORRENTE
CA
VERY IMPORTANT CONSUMERS
POUPANCA
NV
COMERCIANTES
HIPOTECA
UT
CONSUMIDOR
AR
COMERCIAL
NM
SEM FINS LUCRATIVOS
O propsito principal do software desenvolvido por James Bach determinar o
nmero mnimo, necessrio e suficiente de casos de teste. O algoritmo de Bach escolhe
inicialmente o valor que foi colocado em par o menor nmero de vezes em relao aos outros.
Quando um resultado no importa, pois todos os pares j foram testados, isto indicado na
tabela com um ~ (til).
A sada do programa contm a lista de todos os casos de teste dos pares das funes a
serem testadas, conforme Tabela 2 abaixo:
Caso
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Casos de Teste
CLIENTES
CONTAS
CONSUMIDORES COMUNS
CORRENTE
VERY IMPORTANT CONSUMERS
CORRENTE
COMERCIANTES
CORRENTE
SEM FINS LUCRATIVOS
CORRENTE
VERY IMPORTANT CONSUMERS
POUPANCA
CONSUMIDORES COMUNS
POUPANCA
SEM FINS LUCRATIVOS
POUPANCA
COMERCIANTES
POUPANCA
COMERCIANTES
HIPOTECA
SEM FINS LUCRATIVOS
HIPOTECA
CONSUMIDORES COMUNS
HIPOTECA
VERY IMPORTANT CONSUMERS
HIPOTECA
SEM FINS LUCRATIVOS
CONSUMIDOR
COMERCIANTES
CONSUMIDOR
VERY IMPORTANT CONSUMERS
CONSUMIDOR
CONSUMIDORES COMUNS
CONSUMIDOR
CONSUMIDORES COMUNS
COMERCIAL
VERY IMPORTANT CONSUMERS
COMERCIAL
COMERCIANTES
COMERCIAL
SEM FINS LUCRATIVOS
COMERCIAL
VERY IMPORTANT CONSUMERS
CORRENTE
COMERCIANTES
POUPANCA
SEM FINS LUCRATIVOS
HIPOTECA
~CONSUMIDORES COMUNS
CONSUMIDOR
~CONSUMIDORES COMUNS
COMERCIAL
ESTADOS Pairings
CA
3
NV
3
UT
3
AR
3
CA
3
NV
3
UT
3
AR
3
CA
3
NV
3
UT
3
AR
3
CA
3
NV
3
UT
3
AR
3
NM
3
CA
2
NV
2
UT
2
NM
2
NM
2
NM
2
NM
1
AR
1
Os detalhes das combinaes par a par so mostrados na Tabela 3.
Detalhes do PAIRING
Varivel 1
Varivel 2
Valor 1
Valor 2
Ocorrncia
Casos
CONTAS
ESTADOS
CORRENTE
CA
CONTAS
ESTADOS
CORRENTE
NV
CONTAS
ESTADOS
CORRENTE
UT
CONTAS
ESTADOS
CORRENTE
AR
CONTAS
ESTADOS
CORRENTE
NM
21
CONTAS
ESTADOS
POUPANCA
CA
CONTAS
ESTADOS
POUPANCA
NV
CONTAS
ESTADOS
POUPANCA
UT
CONTAS
ESTADOS
POUPANCA
AR
CONTAS
ESTADOS
POUPANCA
NM
22
CONTAS
ESTADOS
HIPOTECA
CA
CONTAS
ESTADOS
HIPOTECA
NV
10
CONTAS
ESTADOS
HIPOTECA
UT
11
CONTAS
ESTADOS
HIPOTECA
AR
12
CONTAS
ESTADOS
HIPOTECA
NM
23
CONTAS
ESTADOS
CONSUMIDOR
CA
13
CONTAS
ESTADOS
CONSUMIDOR
NV
14
CONTAS
ESTADOS
CONSUMIDOR
UT
15
CONTAS
ESTADOS
CONSUMIDOR
AR
16
CONTAS
ESTADOS
CONSUMIDOR
NM
24
CONTAS
ESTADOS
COMERCIAL
CA
18
CONTAS
ESTADOS
COMERCIAL
NV
19
CONTAS
ESTADOS
COMERCIAL
UT
20
CONTAS
ESTADOS
COMERCIAL
AR
25
CONTAS
ESTADOS
COMERCIAL
NM
17
CONTAS
CLIENTES
CORRENTE
CONSUMIDORES COMUNS
CONTAS
CLIENTES
CORRENTE
VERY IMPORTANT CONSUMERS
2 2, 21
CONTAS
CLIENTES
CORRENTE
COMERCIANTES
CONTAS
CLIENTES
CORRENTE
SEM FINS LUCRATIVOS
CONTAS
CLIENTES
POUPANCA
CONSUMIDORES COMUNS
CONTAS
CLIENTES
POUPANCA
VERY IMPORTANT CONSUMERS
CONTAS
CLIENTES
POUPANCA
COMERCIANTES
2 8, 22
CONTAS
CLIENTES
POUPANCA
SEM FINS LUCRATIVOS
CONTAS
CLIENTES
HIPOTECA
CONSUMIDORES COMUNS
11
CONTAS
CLIENTES
HIPOTECA
VERY IMPORTANT CONSUMERS
12
CONTAS
CLIENTES
HIPOTECA
COMERCIANTES
CONTAS
CLIENTES
HIPOTECA
SEM FINS LUCRATIVOS
2 10, 23
CONTAS
CLIENTES
CONSUMIDOR
CONSUMIDORES COMUNS
2 16, 24
CONTAS
CLIENTES
CONSUMIDOR
VERY IMPORTANT CONSUMERS
15
CONTAS
CLIENTES
CONSUMIDOR
COMERCIANTES
14
CONTAS
CLIENTES
CONSUMIDOR
SEM FINS LUCRATIVOS
13
CONTAS
CLIENTES
COMERCIAL
CONSUMIDORES COMUNS
2 17, 25
CONTAS
CLIENTES
COMERCIAL
VERY IMPORTANT CONSUMERS
18
CONTAS
CLIENTES
COMERCIAL
COMERCIANTES
19
CONTAS
CLIENTES
COMERCIAL
SEM FINS LUCRATIVOS
20
ESTADOS
CLIENTES
CA
CONSUMIDORES COMUNS
ESTADOS
CLIENTES
CA
VERY IMPORTANT CONSUMERS
2 5, 18
ESTADOS
CLIENTES
CA
COMERCIANTES
ESTADOS
CLIENTES
CA
SEM FINS LUCRATIVOS
13
ESTADOS
CLIENTES
NV
CONSUMIDORES COMUNS
ESTADOS
CLIENTES
NV
VERY IMPORTANT CONSUMERS
ESTADOS
CLIENTES
NV
COMERCIANTES
2 14, 19
ESTADOS
CLIENTES
NV
SEM FINS LUCRATIVOS
10
ESTADOS
CLIENTES
UT
CONSUMIDORES COMUNS
11
ESTADOS
CLIENTES
UT
VERY IMPORTANT CONSUMERS
15
ESTADOS
CLIENTES
UT
COMERCIANTES
ESTADOS
CLIENTES
UT
SEM FINS LUCRATIVOS
2 7, 20
ESTADOS
CLIENTES
AR
CONSUMIDORES COMUNS
2 16, 25
ESTADOS
CLIENTES
AR
VERY IMPORTANT CONSUMERS
12
ESTADOS
CLIENTES
AR
COMERCIANTES
ESTADOS
CLIENTES
AR
SEM FINS LUCRATIVOS
ESTADOS
CLIENTES
NM
CONSUMIDORES COMUNS
2 17, 24
ESTADOS
CLIENTES
NM
VERY IMPORTANT CONSUMERS
21
ESTADOS
CLIENTES
NM
COMERCIANTES
22
ESTADOS
CLIENTES
NM
SEM FINS LUCRATIVOS
23
2.2.
ANLISE DO VALOR LIMITE E OBTENO DOS CASOS DE TESTE
A Anlise do Valor Limite busca por valores que esto sobre ou imediatamente acima ou
abaixo dos limitantes das classes de equivalncia.
2.2.1. Processamento de Linha de Texto
Uma rotina que recebe como entrada uma linha de texto, de no mximo 80 caracteres, e
conta o nmero de caracteres no brancos desta linha.
Variveis de Entrada
linha = caracteres de entrada
nroCaracteres = nro mximo de caracteres
Variveis de Sada
nroNaoBrancos = nro de caracteres no brancos da linha
Definio das Classes de Equivalncia
Variveis de Entrada
nroCaracteres
Classes de Equivalncia Vlidas
nroCaracteres 80
Classes de Equivalncia Invlidas
nroCaracteres > 80
Definio dos Casos de Teste
Variveis de Entrada
linha
G
Diviso de Ps-GraduaoCurso de Engenharia
Eletrnica e ComputaoInformtica
Diviso de Ps-GraduaoCurso de Engenharia
Eletrnica e Computao/Informtica
Diviso de Ps-Graduao em Engenharia
Eletrnica e Computao rea/Informtica
nroCaracteres
0
1
Sada Esperada
nroNaoBrancos
0
1
79
72
80
73
81
72
2.2.2. Operaes com Vetor de Inteiros
Um vetor definido como sendo um subconjunto de elementos do tipo inteiro. Esse vetor
tem um limite inferior e um limite superior. Pode-se ter acesso a elementos individuais desse
vetor atravs de ndices. As seguintes operaes so definidas para esse vetor:
a) criar (lim_inf, lim_sup) cria um vetor tendo como limites os parmetros fornecidos; os
valores iniciais de seus elementos so indefinidos
Variveis de Entrada
lim_inf = limite inferior
lim_sup = limite superior
Variveis de Sada
OK = Sucesso na criao do vetor
ERRO = Erro na criao do vetor
Definio das Classes de Equivalncia
Variveis de Entrada
lim_inf
lim_sup
Classes de Equivalncia Vlidas
0 lim_inf lim_sup
lim_sup 0
Classes de Equivalncia Invlidas
lim_inf < 0 e lim_inf > lim_sup
lim_sup < 0 e lim_sup < lim_inf
Definio dos Casos de Teste
Variveis de Entrada
lim_inf
lim_sup
-1
1
0
0
-1
-5
5
1
5
5
-5
-5
0
-5
-1
-1
5
1
Sada Esperada
Erro
Erro
Erro
OK
Erro
Erro
Erro
OK
Erro
b) guardar (vetor, elem, valor1) armazena valor no elemento especificado do vetor.
Variveis de Entrada
vetor = vetor de entrada
elem = ndice do vetor
valor = valor a ser inserido
Variveis de Sada
OK = Valor Inserido
Erro Elemento = Posio Invlida
Erro Valor = Valor Invlido
Definio das Classes de Equivalncia
Variveis de Entrada
elem
valor
Classes de Equivalncia Vlidas
lim_inf elem lim_sup
valor Z (Conjunto de Inteiros)
Classes de Equivalncia Invlidas
elem < lim_inf e elem > lim_sup
valor Z
Definio dos Casos de Teste
Variveis de Entrada
elem
lim_inf 1
lim_inf
lim_sup
lim_sup + 1
Sada Esperada
valor
5
7
13
5
Erro Elemento
OK
OK
Erro Elemento
c) inferior (vetor) fornece o limite inferior do vetor
Variveis de Entrada
vetor = vetor de entrada
Variveis de Sada
lim_inf = Limite inferior encontrado
Definio das Classes de Equivalncia
Considerando que a entrada um vetor de inteiros, previamente criado, sempre ser
encontrado o limite inferior correspondente e, portanto, no so determinadas classes de
equivalncia neste caso.
Definio dos Casos de Teste
Variveis de Entrada
vetor
{3}, sendo lim_inf = 1 e lim_sup = 1
{3, 5}, sendo lim_inf = 1 e lim_sup = 2
Sada Esperada
lim_inf = 1
lim_inf = 1
Substituio do parmetro lim_sup na operao guardar por valor, considerando um provvel erro de
digitao.
d) valor (vetor, elem) fornece o valor armazenado no elemento especificado do vetor. O
acesso a um elemento fora dos limites do vetor faz com que seja retornado um valor
indefinido.
Variveis de Entrada
vetor = vetor de entrada
elem = ndice do vetor
Variveis de Sada
Valor obtido = valor encontrado na posio elem do vetor
Valor indefinido = valor no encontrado na posio elem do vetor
Definindo as Classes de Equivalncia
Variveis de Entrada
elem
Classes de Equivalncia Vlidas
lim_inf elem lim_sup
Classes de Equivalncia Invlidas
elem < lim_inf e elem > lim_sup
Definindo os Casos de Teste
Variveis de Entrada
elem
Sada Esperada
lim_inf
lim_inf - 1
lim_inf + 1
lim_sup - 1
lim_sup
lim_sup + 1
Valor obtido
Valor Indefinido
Valor Obtido se ( lim_inf= lim_sup)
Valor Obtido se (lim_sup= lim_inf )
Valor obtido
Valor Indefinido
3. CONCLUSO
Com a resoluo desta Listex 03 foi possvel aplicar os conceitos relativos a Testes de
Software, por meio da utilizao da tcnica de Pairwise Testing, que auxilia na determinao
de um subconjunto razovel de testes dentro das possibilidades existentes.
Observou-se tambm, por meio da aplicao da Anlise de Valor Limite, juntamente com o
particionamento em Classes de Equivalncia, a maior probabilidade de encontrar defeitos em
casos de teste que exploram condies limites.
4. BIBLIOGRAFIA
DELAMARO, M. E.; MALDONADO, J. C.; JINO, M. Introduo ao Teste de Software.
Rio de Janeiro, RJ: Editora Campus, 2007
COPELAND, L. A Practioners Guide to Software Test Design". Norwood, MA, USA:
Artech House Publishers, 2007
CZERWONKA, J.. Pairwise Testing - Combinatorial Test Case Generation. Disponvel em:
[Link] (Acesso: 26/03/08)
8