Você está na página 1de 8

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)
2.1.1.1.

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.
2.1.1.2.

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:
http://www.pairwise.org/ (Acesso: 26/03/08)
8