Geração de casos de teste
apoiados em banco de dados
Projeto Final de Graduação
Aluno: Alexandre L. Silva
Orientador: Prof. Arndt von Staa
Agenda
• Estado da arte
• Motivação
• Estudos conceituais e de tecnologia
• Dados usados nos casos de teste
• Proposta: grupo condicional extensível
• Considerações finais
• Trabalhos futuros
• Referências bibliográficas
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
2
Estado da arte
• Teste de software: Testes visam controlar a qualidade do
software a partir da realização de experimentos controlados.
• Lachtemacher, 2010: Geração de scripts de casos de teste,
baseado em tabelas de decisão. O usuário deve definir as regras
que vão limitar os valores gerados para os casos de teste (dado
aleatório ou gramática regular).
• Caldeira, 2010: extensão do trabalho de [Lachtermacher, 2010].
Nesse trabalho, durante a edição da tabela de decisão é possível
definir explicitamente os valores dos casos de teste.
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
3
Motivação
• Aumentar a variedade de sistemas que utilizam tabelas de
decisão para a geração de scripts de teste.
• Tornar possível a escolha aleatória em conjuntos de valores préestabelecidos
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
4
Objetivo
• Propor a geração de casos de teste envolvendo banco de dados e
utilizando tabelas de decisão como técnica de projeto dos casos
de teste
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
5
Estudos conceituais e de tecnologia
• Visão geral do processo de geração de casos de teste
Architect
Specifier
&
Reviewer
Standard
use cases
Interface
sketch
Design
user
interface
Interface
designer
User
Interface
Mark up
use cases
State
machine
editor
Marked up
use cases
SWB
Designer
Decision
table
generator
Data
dictionary
Test case
generator
XML
Typed decision tables
XML
State
machines
Decision
table
editor
Test case
selection
criterion
XML
Decision
tables
Developer
XML
Develop
artifact
Test
cases
Boundary
conditions
adder
Test
artifact
XML
Performable
test cases
Test script
generator
05/11/2015
Manual
test cases
tool
Automated
test scripts
Test log &
findings
Format & print
Boundary
conditions
criterion
Artifact
Test tool
specification
Alexandre L. Silva © LES/PUC - Rio
6
Estudos conceituais e de tecnologia
• Uma tabela de decisão é uma ferramenta que tem como objetivo
expressar as combinações de condições necessárias para a execução de
um determinado conjunto de ações [MYERS, 2004];
• Característica: Não ambígua e completa
Como irá ao jogo?
R1
R2
R3
R4
C1
Estádio perto da residência?
Sim
Sim
Não
Não
C2
Dia chuvoso
Não
Sim
Sim
Não
X
X
X
A1
A2
Ir de carro
X
Ir à pé
• Cada coluna da tabela de decisão define uma regra;
• Cada regra representa um caso de teste;
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
7
Estudos conceituais e de tecnologia
• Exemplo de condição (na ferramenta):
• Uma condição é definida por:
– Tipo de campo
• Texto, clicável, marcador, seletor, seletor múltiplo ou nenhum;
– Identificador
• Por exemplo: id (elemento de HTML);
– Nome
– Grupo condicional
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
8
Estudos conceituais e de tecnologia
• Grupo Condicional:
– Permite que determinadas condições dividam restrições entre si;
• Exemplo:
– Sem o uso de grupo condicional:
Condições
Situações
Condição 1
V
V
F
F
Condição 2
V
F
V
F
– Com o uso de grupo condicional mutuamente exclusivo obrigatório:
Condições
05/11/2015
Situações
Condição 1
V
V
F
F
Condição 2
V
F
V
F
Alexandre L. Silva © LES/PUC - Rio
9
Dados usados nos casos de teste
• Geração randômica:
– Campo do tipo numérico;
– Campo do tipo numérico, com limitadores:
• Por exemplo, o valor deve estar entre 1 e 50;
• Geração de dados através de uma expressão regular:
Expressão Regular
Strings
aba
a.a
a{a
aPa
A
AB?
AB
PQR
(PQR){1,2}
PQRPQR
boa-noite
boa-(noite | tarde)
boa-tarde
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
10
Dados usados nos casos de teste
• Geração de dados de maneira explícita:
• Geração através da escolha randômica em um conjunto prédefinido
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
11
Grupo Condicional Extensível (GCE)
• Objetivos:
– Permitir a valoração dos casos de teste através de dados do banco
de dados;
– Permitir a valoração de casos corretos e incorretos;
• Exemplo: sistema de matrícula da PUC-Rio
código da disciplina
1ª disciplina
2ª disciplina
3ª disciplina
• Requisitos:
– Preparar o banco de dados - DBUnit;
– Estender o grupo condicional;
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
12
Grupo Condicional Extensível (GCE)
• Preparar o banco de dados:
– Estrutura da tabela:
Campo
Tipo
Nulo
Chave
Codigo
Inteiro
Não
Sim
Valor
String
Sim
Não
• Tabela com dados corretos:
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<corretos disciplina="INF1413" />
<corretos disciplina="INF1687" />
<corretos disciplina="INF1416" />
<corretos disciplina="INF1425" />
<corretos disciplina="INF2112" />
<corretos disciplina="INF3458" />
</dataset>
05/11/2015
• Tabela com dados incorretos:
</dataset>
Alexandre L. Silva © LES/PUC - Rio
13
Grupo Condicional Extensível (GCE)
• Preparar o banco de dados:
– Definir a conexão com o banco de dados:
protected IDatabaseConnection getConnection() throws Exception{
…
}
– Recuperar os dados do banco:
protected IDataSet getDataSet() throws Exception{
...
}
– Popular as estruturas de dados:
• Dados corretos;
• Dados incorretos;
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
14
Grupo Condicional Extensível (GCE)
• Extensão do Grupo Condicional:
– Oferecer o grupo condicional extensível:
– Estender a validação da tabela;
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
15
Grupo Condicional Extensível (GCE)
• Exemplo de tabela
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
16
Grupo Condicional Extensível (GCE)
• Resumo do processo de geração de scripts de teste
• Fluxo de valoração dos casos de teste
– Para cada condição da tabela de decisão:
• A condição pertence ao GCE?
– Sim:
» A condição é V?
» Sim: usa um valor da estrutura de dados corretos;
» Não: usar um valor da estrutura de dados incorretos;
– Não:
» Segue o fluxo das demais condições;
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
17
Grupo Condicional Extensível (GCE)
• Outras formas de valoração:
– Condições de condições de contorno [MYERS, 2004]:
• Por exemplo, se campo permite valores entre -1,0 e +1,0, devem ser
gerados casos de teste com os seguintes valores:
– -1,0; +1,0; -1,001 e +1,001;
• Por exemplo, se um campo permite entre 1 e 50 caracteres, devem ser
gerados casos com:
– Nenhum caractere, somente um caractere, 50 caracteres e 51 caracteres;
– Gramática livre de contexto (V -> w):
<Nome> ::= <InicioNome> <RestoNome>
<InicioNome> ::= ( <Letras> | ‘_’ )
<RestoNome> ::= 0 – 31 [ <CharCont> ]
<CharCont> ::= ( <Letras> | <Digitos> | ‘_’ )
<Letras> ::= ( <Maiusculas> | <Minusculas> )
<Digitos> ::= $Numerais
<Maiusculas> ::= $UpperCase_ASCII
<Minusculas> ::= $LowerCase_ASCII
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
18
Considerações finais
• Objetivos:
– Reduzir o volume de trabalho de definir dados explícitos na geração
de scripts de casos de teste;
– Aumentar a diversidade de sistemas que podem ser apoiados pela
geração de scripts de teste;
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
19
Trabalhos futuros
• Codificação da proposta;
• Permitir a atribuição de pesos entre os casos de teste com
sucesso e sem sucesso:
– Por exemplo: casos
• Aplicação de regras de negócio no momento da valoração dos
dados
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
20
Referências bibliográficas
•
Caldeira, Luiz Rodolfo N., Manual Editor de Tabelas de Decisão. Rio de Janeiro, 2010.
•
Delamaro, Márcio; Maldonado, Jose Carlos; Jino, Mario. Introdução ao teste de software. Rio de Janeiro:
Elsevier/ Campus, 2007. 394 p. (Série Sociedade Brasileira de Computação ) ISBN 9788535226348.
•
Jargas, Aurélio Marinho. Expressões Regulares - Guia de Consulta Rápida. Editora Nocatev, 2001.
•
Lachtermacher, Luana. O uso de tabelas de decisão para a automação da geração e da execução de
casos de teste. Rio de Janeiro, 2010. 110p. Dissertação de Mestrado - Departamento de Informática,
Pontifícia Universidade Católica do Rio de Janeiro.
•
Myers, G. J.,The Art of Software of Testing. 2nd edition; Hoboken, New Jersey: John Wiley & Sons; 2004.
•
Staa, Arndt v. Programação modular: desenvolvendo programas complexos de forma organizada e
segura. Rio de Janeiro: Campus, 2000. 690p. ISBN 8535206086.
•
Staa, Arndt v. Notas de aula de Teste de Software: Aula 24 Geração automática de casos de teste.
http://www.inf.pucrio.br/~inf1413/docs/INF1413_Aula24_GeracaoAutomaticaCasosTeste.pdf
•
Trabalho Acadêmico. http://pt.wikipedia.org/wiki/Trabalho_acadêmico
•
DBUnit. http://www.dbunit.org/
•
Database Testing with DbUnit http://www.roseindia.net/testingtools/DbUnit/index.shtml
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
21
Download

Geração de casos de teste apoiados em banco de dados