geração de casos de teste apoiados em banco de dados projeto final de graduação aluno: alexandre...
TRANSCRIPT
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
11/04/23 2Alexandre L. Silva © LES/PUC - Rio
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
11/04/23 3Alexandre L. Silva © LES/PUC - Rio
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.
11/04/23 4Alexandre L. Silva © LES/PUC - Rio
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
11/04/23 5Alexandre L. Silva © LES/PUC - Rio
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
11/04/23 6Alexandre L. Silva © LES/PUC - Rio
Estudos conceituais e de tecnologia
• Visão geral do processo de geração de casos de teste
Test tool
specification
Boundary
conditions
criterion
Test case
selection
criterion
Test log &
findings
Test script
generator
Test case
generator
Automated
test scripts
Test
cases
XML
Architect
Designer
Interface
designer
Developer
Marked up
use cases
Interface
sketch
Decision
table
generator
Specifier
&
Reviewer
Standard
use cases
Decision
tables
XMLDecision
table
editorTyped deci-
sion tables
XML
User
Interface
State
machines
XMLState
machine
editor
Design
user
interface
Mark up
use cases
Boundary
conditions
adder
XML
Performable
test cases
Manual
test cases
Format & print
tool
Data
dictionary
SWB
Develop
artifactTest
artifact
Artifact
11/04/23 7Alexandre L. Silva © LES/PUC - Rio
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
A1Ir de carro
X X X
A2Ir à pé
X
• Cada coluna da tabela de decisão define uma regra;
• Cada regra representa um caso de teste;
11/04/23 8Alexandre L. Silva © LES/PUC - Rio
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
Estudos conceituais e de tecnologia
• Grupo Condicional:– Permite que determinadas condições dividam restrições entre si;
• Exemplo:– Sem o uso de grupo condicional:
– Com o uso de grupo condicional mutuamente exclusivo obrigatório:
Condições Situações
Condição 1 V V F F
Condição 2 V F V F
Condições Situações
Condição 1 V V F F
Condição 2 V F V F
11/04/23 9Alexandre L. Silva © LES/PUC - Rio
11/04/23 10Alexandre L. Silva © LES/PUC - Rio
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
a.a
aba
a{a
aPa
AB?A
AB
(PQR){1,2}PQR
PQRPQR
boa-(noite | tarde)boa-noite
boa-tarde
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
11/04/23 11Alexandre L. Silva © LES/PUC - Rio
Grupo Condicional Extensível (GCE)
código da disciplina
1ª disciplina
2ª disciplina
3ª disciplina
• Requisitos:
– Preparar o banco de dados - DBUnit;
– Estender o grupo condicional;
• 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
11/04/23 12Alexandre L. Silva © LES/PUC - Rio
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:• Tabela com dados corretos:
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<corretos disciplina="INF1687" />
<corretos disciplina="INF1425" />
<corretos disciplina="INF3458" />
</dataset>
• Tabela com dados incorretos:
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<corretos disciplina="INF1413" />
<corretos disciplina="INF1416" />
<corretos disciplina="INF2112" />
</dataset>
11/04/23 13Alexandre L. Silva © LES/PUC - Rio
Grupo Condicional Extensível (GCE)
• Preparar o banco de dados:
– Definir a conexão com o banco de dados:protected IDatabaseConnection getConnection() throws Exception{
…
}
protected IDataSet getDataSet() throws Exception{
...
}
– Recuperar os dados do banco:
– Popular as estruturas de dados:• Dados corretos;
• Dados incorretos;
11/04/23 14Alexandre L. Silva © LES/PUC - Rio
Grupo Condicional Extensível (GCE)
• Extensão do Grupo Condicional:
– Oferecer o grupo condicional extensível:
– Estender a validação da tabela;
11/04/23 15Alexandre L. Silva © LES/PUC - Rio
Grupo Condicional Extensível (GCE)
• Exemplo de tabela
11/04/23 16Alexandre L. Silva © LES/PUC - Rio
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;11/04/23 17Alexandre L. Silva © LES/PUC - Rio
11/04/23 18Alexandre L. Silva © LES/PUC - Rio
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
11/04/23 19Alexandre L. Silva © LES/PUC - Rio
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;
11/04/23 20Alexandre L. Silva © LES/PUC - Rio
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
11/04/23 21Alexandre L. Silva © LES/PUC - Rio
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