projeto de banco de dados para a segurança

Propaganda
Evolvere Scientia, V. 2, N. 1, 2013
Evolvere Scientia
ARTIGO
UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO
PROJETO DE BANCO DE DADOS PARA A SEGURANÇA PÚBLICA DE PETROLINA
Felipe Pinheiro Correia1, Ricardo Argenton Ramos², Edmundo S. Spoto³, Rodolfo do
Nascimento Zacarias4, Rodrigo Moreira Bacurau5
1,2,5
Universidade Federal do Vale do São Francisco, 48902-300 Juazeiro, BA, Brasil.
3
Universidade Federal de Goiás, 75801-615 Goiânia, GO, Brasil.
4
Faculdade Paraíso do Ceará, 63260-000 Juazeiro do Norte, CE, Brasil.
1
4
2
[email protected],
[email protected],
5
[email protected] , [email protected]
3
[email protected],
Resumo: Este artigo trata das etapas de elaboração do projeto e da construção de um Banco de
Dados para a Secretaria de Segurança Pública da cidade de Petrolina, no estado de Pernambuco.
O trabalho teve como objetivo o estudo e o aperfeiçoamento de técnicas para o projeto de
Bancos de Dados de grande porte, seguindo as práticas de engenharia e teste de softwares e
utilizar os resultados para que fosse elaborado o Banco de Dados. A metodologia para o projeto,
implementação e testes do Banco de Dados é discutida. Para o desenvolvimento do Banco de
Dados, inicialmente, o levantamento dos requisitos e especificações dos objetos de dados foi
realizado. Em seguida, os Diagramas Entidade Relacionamento (DER) foram elaborados. O
próximo passo consistiu na definição de um plano de testes e execução dos casos de testes. Os
resultados obtidos foram avaliados e os erros detectados foram corrigidos. Obteve-se um Banco
de Dados com uma quantidade reduzida de erros e uma metodologia para o projeto e
implementação de Bancos de Dados de grande porte.
Palavras-chave: Banco de dados, teste, engenharia de software
Abstract: This article deals with the stages of design and construction of a database for the
Public Security of Petrolina city, in Pernambuco, Brazil. The work aimed to study and improve
the techniques for the design of large databases, following the practices of software engineering
and test engineering and use the results to prepare the database. The methodology for the
design, implementation and testing of the database is discussed. In order to develop the database
a survey of the requirements and specifications of the data objects was performed. Then the
120
Evolvere Science, V. 2, N. 1, 2013
Entity Relationship Diagrams (ERD) was prepared. The next step consisted of defining a test
plan and executing test cases. The results were evaluated and the errors detected were corrected.
It has been obtained a database with a reduced amount of errors and a methodology for the
design and implementation of large databases.
Keywords: Database, test, software engineering
INTRODUÇÃO
Um dos principais objetivos da
De acordo com Elmasri e Navathe
atividade de teste de software e de banco de
(2005), um Banco de Dados (BD) é um
dados é garantir que o sistema funcione
conjunto de dados relacionados que são
corretamente e atenda as especificações dos
fatos que podem ser gravados e possuem
usuários, porém é considerado o processo
um
o
mais caro no desenvolvimento de software
mesmo autor, os BDs relacionais foram
chegando a consumir mais de 30% dos
criados para separar o armazenamento
recursos necessários para este fim segundo
físico dos dados de sua representação
Hartman (2002). Chays (2000) comenta que
conceitual e provê uma fundamentação
existem vários aspectos que indicam se o
matemática para os bancos de dados. O uso
sistema está funcionando corretamente,
de BD relacionais nos mais variados setores
como, por exemplo, o comportamento da
possibilitou a organização, segurança e
aplicação, se o esquema do banco de dados
persistência de informações essenciais para
reflete
inúmeras
instituições
segurança e privacidade estão protegidos de
públicas, por exemplo, podem garantir,
forma correta e se o Sistema Gerenciador
fazendo uso de um Banco de Dados bem
de Banco de Dados (SGBD) realiza todas as
construídos, uma melhor eficiência e
operações corretamente.
significado
implícito.
atividades.
Segundo
As
o
mundo
real,
fatores
como
suas
Um sistema de segurança pública,
atividades. Para desenvolver um banco de
por exemplo, envolve todas as áreas de
dados de qualidade, segundo alguns autores
atendimento e gerência para tomadas de
como Silberchatz et al. (2006), e Elmasri e
decisão visando tornar o atendimento ágil,
Navathe (2005), devem ser seguidas as
controlar as ações, criar estratégias de
seguintes etapas: etapas de requisitos,
prevenção, construir relatos de execução e
projeto lógico e físico e finalizar com testes
poder gerenciar de forma rápida e segura
de verificação das principais características
todos os materiais e mão de obras
do BD.
envolvidas no atendimento. Levando esse
eficácia
no
desenvolvimento
de
fato em consideração, o objetivo deste
121
Evolvere Science, V. 2, N. 1, 2013
trabalho foi a construção de um Banco de
eles: casos de uso, atividades e classes. Os
Dados com qualidade para atender o setor
diagramas de casos de uso são visões que
de segurança pública em Petrolina. Devido
modelam as funcionalidades do sistema
às necessidades da Polícia Militar (PM) foi
observadas
implementado, inicialmente, um banco de
chamados atores. Um caso de uso é uma
dados para armazenar as informações do
unidade
Boletim
as
expressada como uma transação entre
informações pertinentes a todos os policiais
atores e o sistema, de acordo com
do 5º Batalhão. Para isso serão utilizados os
Rumbaugh
diagramas da Unified Modeling Language
diagrama de caso de uso é listar os atores e
(UML) e a técnica de teste funcional
casos de uso e mostrar qual ator participa
baseada nas características do projeto de
em cada caso de uso. Na Figura 1 é
banco de dados. É essencial para o setor de
apresentado o diagrama de casos de uso
Recursos Humanos (RH) da PM armazenar
modelado para o sistema da PM.
Interno
(BI)
e
cadastrar
pelos
usuários
coerente
de
(2004).
O
de
fora,
funcionalidade
propósito
do
várias informações que compõem o BI e
montam um histórico do policial dentro da
polícia.
UML
De acordo com Rumbaugh (2004), a
UML é uma família de notações gráficas
utilizada no projeto e na descrição de
sistemas de software, particularmente em
softwares orientados a objetos. A partir da
confecção desses diagramas é possível
entender melhor e sistema e ter uma visão
Figura 1 – Diagrama de Casos de Uso do
geral do comportamento de cada ator dentro
Sistema da PM
de seus limites, ou seja, é possível entender
melhor o mundo real, ou como é chamado
às vezes de mini-mundo ou Universo de
Discurso (UoD).
Com os diagramas da UML é
possível realizar o processo de modelagem.
Com o objetivo de visualizar, construir, e
documentar os artefatos do sistema, alguns
diagramas da UML foram utilizados, são
122
Segundo
diagrama
de
Rumbaugh
atividades
(2004),
o
descreve
o
comportamento paralelo e procedural do
sistema. Uma atividade corresponde a um
conjunto
de
organizadas
ações
de
responsabilidades,
que
devem
ser
acordo
com
as
descrito
em
como
Ramos (2006). Na Figura 2, é possível
Evolvere Science, V. 2, N. 1, 2013
observar como os atores agem em cada caso
modelagem conceitual, lógica e física dos
de uso (cada caso de uso possui um
dados.
diagrama
de
atividades)
para
que
determinada atividade possa ser realizada,
como, por exemplo, o cadastro de um
policial.
Figura 3 – Diagrama de Classes do Sistema
da PM
A criação de um projeto conceitual
é indispensável, para em seguida montar
Figura 2 – Diagrama de Atividades do
um esquema conceitual dos dados. Essa
sistema da PM .
etapa independe do SGBD e o maior
Um diagrama de classe (Rumbaugh,
propósito é tentar entender o mini-mundo.
2004) é uma apresentação gráfica da visão
O modelo conceitual proporciona uma
estática que mostra uma coleção de
visão
elementos de modelo informativo (estático),
relacionamentos do sistema, independente
como, por exemplo, classes, tipos, e seus
de como serão implementados. O resultado
conteúdos e relacionamentos. Na Figura 3 é
dessa fase do projeto é um esquema que
apresentado
representa a realidade das informações
o
diagrama
de
classes
confeccionado para o sistema da PM.
de fatos que refletem características do
mundo real. Em todo o momento o que está
registrado no banco representa uma visão
instantânea do mini-mundo (Machado,
2004). Para construir um banco de dados é
necessário algumas etapas de projeto:
123
dos
principais
dados e
existentes.
A próxima etapa, o projeto lógico,
BANCO DE DADOS RELACIONAL
Um banco de dados é um conjunto
global
consiste em descrever as estruturas contidas
no banco de dados, resultando em um
esquema lógico. Existem três abordagens de
modelo
lógico:
hierárquica,
rede
e
relacional. Neste trabalho foi utilizado o
modelo relacional.
Evolvere Science, V. 2, N. 1, 2013
Finalmente, a partir do modelo
A e B, a restrição de razão de
lógico, é criado o modelo físico onde são
cardinalidade
descritas
máximo
as
o
número
físicas
de
como
por
relacionamentos das entidades pode
exemplo, o tamanho dos campos, os índices
participar (Silberschatz e Korth., 2006;
e o tipo de preenchimento dos campos.
Elmasri e Navathe, 2005).
armazenamento
estruturas
especifica
de
dados,
que
a
instância
de
O banco de dados relacional possui
Ex.: No BD da PM existem várias
algumas características importantes como
tabelas, dentre elas: Policial, Punição e
as chaves, o domínio dos valores e as
Posto. Cada policial pode ter nenhuma
restrições
que
ou várias punições (notação: 1:N). Já
relacional.
As
compõem
chaves
o
modelo
permitem
o
com relação às tabelas posto e policial,
estabelecimento das relações entre linhas e
cada policial só pode ter apenas um
tabelas. Existem três tipos de chave: a
posto (notação: 1:1).
chave primária, a chave alternativa e a
chave estrangeira. O domínio dos valores
•
regras fundamentais de acordo com
de um campo é o conjunto de valores
Elmasri e Navathe (2005), são elas a
especificados para aquele campo, por
restrição de unicidade e a integridade
exemplo, o campo CPF da tabela policial da
de identidade. A restrição de unicidade
base de dados da PM não pode conter
determina que duas tuplas distintas não
valores nulos e deve possuir onze caracteres
possam ter o mesmo valor para todos os
que são validados de acordo com um
seus atributos chaves. A integridade de
algoritmo de validação do CPF.
identidade determina que uma chave
Existem muitas limitações ou restrições
primária não possa conter valores nulos
para os valores reais em um estado do
(nulls). Ex.: O código do policial (id)
banco de dados (Elmasri e Navathe, 2005).
deve ser único e não nulo.
As restrições limitam possíveis valores dos
estados de um banco de dados para que ele
reflita o mundo real com maior precisão
(Chays, 2000). Os critérios de testes são
baseados
nas
restrições
do
Modelo
Relacional e são estabelecidos a partir da
especificação
do
software.
Existem
basicamente seis tipos de restrições:
•
As restrições de chaves possuem duas
•
Segundo Elmasri e Navathe (2005) a
Integridade Referencial é classificada
entre duas relações e é usada para
manter a consistência entre as tuplas
nas duas relações. Informalmente, a
restrição de integridade referencial
declara que uma tupla em uma relação,
que faz referência à outra relação, deve-
Em um conjunto de relacionamento
se referir a uma tupla existente nessa
binário R entre conjuntos de entidades
relação. Ex.: Ao tentarmos inserir em
124
Evolvere Science, V. 2, N. 1, 2013
•
um policial um posto que não esteja
que devem ser testadas pelo sistema,
cadastrado, o banco de dados deve
para verificar se os tipos de domínios
rejeitar essa inserção.
são compatíveis (ou válidos), como
As restrições de integridade semântica,
também, possibilitam testar consultas
segundo Mello (2003), têm como
para assegurar que as comparações
objetivo
as
façam sentido. Ex.: O CPF do policial
restrições de tipos de dados de um
deve ser não nulo, e possuir exatamente
atributo, mas também, seus valores
onze caracteres.
abranger
não
apenas
permitidos e transições de valores
válidos, de modo a garantir sua
integridade especificada e imposta em
um
•
BD
relacional.
Ex.:
Ao
ser
Segundo Myers (1979), o teste de
programas
consiste
em
exercitar
o
cadastrado um novo policial a altura
programa através de dados de entrada
dele deve estar entre 100 cm e 300 cm
(dados de teste) e comparar os valores de
(não existem policiais com menos de 1
saída produzidos (resultado computacional)
metro nem com mais de 3 metros).
com o resultado esperado (definido pelas
Segundo Elmasri e Navathe (2005), a
especificações do programa). O objetivo do
Dependência Funcional (DF) é uma
teste é encontrar defeitos existentes no
restrição
de
programa e é um método muito difundido,
atributos do BD. Representa-se por
embora imperfeito, de garantia de qualidade
X→Y, no qual X e Y são conjuntos de
de software (AMMANN e OUTT, 1994).
entre
dois
conjuntos
atributos e subconjuntos de uma relação
R. O conjunto de atributos de Y é
chamado de lado à direita e o X de lado
à esquerda. Pode-se dizer que Y
depende
funcionalmente,
ou
são
determinados por valores do conjunto
de
X,
ou
seja,
funcionalmente
•
TESTE DE FUNCIONAL
os
X
determinam
valores
de
Y
A atividade de testes pode se tornar
bastante
complexa,
dependendo
das
características e dimensões do sistema a ser
criado. Por isso, está sujeita a diversos tipos
de problemas que acabam resultando na
obtenção de um produto diferente daquele
que se esperava (DELAMARO et al, 2007).
(Machado e Abreu, 1996; Elmasri e
A técnica de teste funcional é
Navathe, 2005). Ex.: CPF→Nome, ou
também conhecida por técnica de teste
seja, o CPF do policial determina
caixa preta, por não utilizar o código fonte e
funcionalmente o nome do policial.
sim extrair os requisitos de testes a partir da
Restrições
segundo
especificação. Neste trabalho, a técnica
Silberschatz e Korth (2006), são regras
funcional foi aplicada no projeto de banco
125
de
Domínio,
Evolvere Science, V. 2, N. 1, 2013
de dados, extraindo os elementos de testes
praticar na base de dados desenvolvida os
do
requisitos levantados durante a etapa de
documento
de
requisitos.
Outras
informações para aquisição dos elementos
de testes também serão consultadas os
diagramas da UML utilizados no projeto do
sistema.
As restrições implementadas no
banco de dados são usadas para proteger o
banco de possíveis erros gerados na
aplicação, e o teste garante que essas
restrições de fato o protegem. A aplicação
de um conjunto de operações de comandos
Structure
Query
Language
(SQL),
levantamento de requisitos.
Critério Baseado nas Estruturas de
Relacionamentos
Em um conjunto de relacionamento
binário R entre conjuntos de entidades A e
B, a restrição de razão de cardinalidade
especifica
pela
aplicação,
constitui
a
sistemática utilizada para testar o Banco de
foram
implementadas
corretamente.
Segundo
Delamaro
(1993),
os
critérios de testes são utilizados pelo
testador como uma forma de assegurar que
condições que devem ser satisfeitas para
que o teste seja realizado com sucesso, ou
seja, eles estabelecem regras quanto ao que
vai ser testado no programa e quando os
testes devem parar (SPOTO et al., 1995).
CRITÉRIOS DE TESTE
Em geral o teste contribui para a
a
2006; ELMASRI e NAVATHE, 2005).
Os
critérios
identificados
para
exercitar as estruturas de relacionamentos
estão definidos a seguir:
c1: todas-as-cardinalidade-máximainter-tabela;
c2: todas-as-cardinalidade-mínimainter-tabela;
Critério Baseado nas Chaves
programa foi testado suficientemente. Os
critérios estabelecem um conjunto de
que
pode participar (SILBERSCHATZ et al.,
Dados Relacional e verificam se essas
restrições
número máximo
instância de relacionamentos das entidades
explorando as principais consultas que são
realizadas
o
As restrições de chaves possuem
duas regras fundamentais de acordo com
Elsmari e Navathe (2005), são elas a
restrição de unicidade e a integridade de
identidade.
A
restrição
de
unicidade
determina que duas tuplas distintas não
possam ter o mesmo valor para todos os
seus atributos chaves. A integridade de
identidade
determina
que
uma
chave
obtenção da qualidade do banco de dados.
primária não possa conter valores nulos
Os critérios de teste apresentados a seguir
(nulls).
foram retirados de (Souza, 2008), visando
126
Evolvere Science, V. 2, N. 1, 2013
Os
critérios
identificados
para
exercitar as estruturas de relacionamentos
garantir sua integridade especificada e
imposta em um BD relacional.
estão definidos a seguir:
Os
c3: todas-as-chaves-primária;
Critério
Baseado
na
Integridade
intra-tabela e inter-tabela. Foram definidos
dois critérios de testes:
a Integridade Referencial é classificada
entre duas relações e é usada para manter a
c5:
relações.
c6:
critérios
identificados
para
exercitar as estruturas de relacionamentos
Critério
c4:
Baseado
no
Domínio
de
Atributos
estão definidos a seguir:
Restrições de domínio segundo
todas-as-chaves-estrangeira-
inter-tabela;
Silberschatz e Korth (2006), são regras que
devem ser testadas pelo sistema, para
critérios
identificados
para
exercitar as estruturas de relacionamentos
classificados
pelos
dois
fluxos
funcionais: intra-tabela e inter-tabela. Neste
foram
tratados
apenas
Baseado
na
verificar se os tipos de domínios são
compatíveis (ou válidos), como também,
possibilitam testar consultas para assegurar
que as comparações façam sentidos.
os
relacionamentos inter-tabela.
Foram
restrições
de
definidos
dois
critérios
baseados no domínio de atributos:
Integridade
Semântica
As
todas-as-semânticas-atributos-
inter-tabela;
Os
Critério
todas-as-semânticas-atributos-
intra-tabela;
consistência entre as tuplas nas duas
trabalho
para
classificados pelos dois fluxos funcionais:
Segundo Eslmari e Navathe (2005)
estão
identificados
exercitar a integridade semântica estão
Referencial
Os
critérios
integridade
c7:
todos-os-valores-padrão;
c8:
todos-os-dominios-atributos-
intra-tabela;
semântica, segundo Mello (2003), têm
como objetivo abranger não apenas as
restrições de tipos de dados de um atributo,
METODOLOGIA
mas também, seus valores permitidos e
transições de valores válidos, de modo a
As
seguintes
foram
utilizadas para desenvolvimento do projeto
de BD:
127
etapas
Evolvere Science, V. 2, N. 1, 2013
Etapa 1: Levantamento dos requisitos e
assegurando que eles compreenderão as
especificações dos objetos de dados a
implicações do novo sistema.
serem armazenados e gerenciados pela
PM
Para um maior conhecimento acerca do
problema a ser resolvido com a implantação
Consistiu no estudo do modelo de
do software no 5º BPM, inicialmente foram
dados a ser desenvolvido em conjunto com
realizadas visitas com o objetivo de colher
os policiais do 5º Batalhão da Polícia
informações sobre o local, fichas de
Militar (5º BPM). O levantamento de
cadastros, funcionamento dos processos e
requisitos englobou todas as tarefas que
perfil dos usuários. Essas informações
lidam com investigação, definição e escopo
foram colhidas por meio de entrevistas,
de novos sistemas ou alterações. Nessa
observação participante, questionários e
etapa
anotações.
foi
possível
identificar
as
necessidades do 5º BPM. Uma vez que os
requisitos do sistema foram identificados,
os desenvolvedores do sistema começaram
a fase de modelagem do sistema.
atividades:
dos computadores já existentes no local.
equipe
de
preparações
Elicitação de requisitos: é a tarefa de
comunicar-se com os usuários para
determinar quais são as necessidades.
•
colhidas informações sobre a configuração
Essas informações foram analisadas pela
Essa etapa incluiu dois tipos de
•
Durante as visitas também foram
projeto
para
para
as
devidas
implementação
do
software.
Etapa 3: Elaboração dos Diagramas de
Entidade e Relacionamento
Inicialmente
Análise de requisitos: nessa atividade
foram
levantados
foi verificado se o estado dos requisitos
todos os objetos de dados que foram
é obscuro, incompleto, ambíguo, ou
listados
contraditório.
foi
requisitos, em seguida foram construídas as
realizada durante as revisões que
tabelas e seus respectivos atributos e tipos
aconteciam
de dados de forma a atender o domínio da
Essa
atividade
semanalmente
com
os
Partindo-se do pressuposto de que
novos sistemas mudam o ambiente e a
relação entre as pessoas, então é importante
identificar todos os envolvidos, levando em
128
todas
as
suas
necessidades
etapa
da
engenharia
de
informação a ser manipulada neste projeto.
membros do grupo de pesquisa.
conta
na
e
Para a construção desta etapa foi utilizado
softwares abertos e o SGBD PostgreSQL
(também gratuito).
Evolvere Science, V. 2, N. 1, 2013
Etapa 4: Implementação do projeto
de dados (conceitual, lógica e física). Para a
Físico e Implementação do Banco de
modelagem conceitual dos dados foi feita a
Dados
análise de requisitos e a representação do
Foram criados os relacionamentos e
controles de avaliação dos atributos. Foram
feitas, também, adaptações dos objetos de
dados para atenderem ao propósito deste
projeto de acordo com os formulários que
modelo através do DER. A partir da
modelagem conceitual foram realizadas as
modelagens lógica e física adicionando os
devidos detalhes de implementação nos
respectivos modelos.
serão utilizados para a manipulação dos
A partir do modelo conceitual é
dados. Implementação do Banco de Dados
possível, então, fazer a modelagem lógica
no
do sistema, que consiste em normalizar as
SGBD
PostgreSQL
em
ambiente
cliente/servidor.
tabelas, determinar o nome dos atributos e
Etapa 5: Definições de um plano de teste
e Execução dos casos de testes funcionais
no banco de dados
Nesta etapa foram colhidas algumas
dezenas de informações reais utilizadas
para testar e avaliar as características de
integridade referencial, semântica, chaves,
domínio, multiplicidade e de tabela criando
entidades abreviados quando necessário e
contemplar a cada atributo o seu tipo de
dado, o tamanho e determinar as restrições
de unicidade, integridade de identidade e
verificar quais atributos possuem valor
padrão. A partir dos modelos conceitual e
lógico é possível confeccionar o DER
(Figura 4).
assim as devidas correções detectadas.
Nesta etapa foi gerado um plano de testes
com o qual foi possível extrair os casos de
testes.
Etapa
6:
Avaliação
dos
resultados
obtidos e correções dos erros detectados
Após a etapa de teste, foram
corrigidos os erros detectados, bem como as
regras de verificação.
RESULTADOS
Após o levantamento de
requisitos através das visitas ao 5ºBPM,
iniciou-se a etapa de modelagem do banco
129
Figura 4 – DER do Sistema da PM
Foram criados um plano de teste e
tabelas de execução dos casos de teste para
que as funcionalidades fossem postas a
prova. O plano de teste foi elaborado
conforme as orientações presentes no
Evolvere Science, V. 2, N. 1, 2013
padrão 829 do Instituto dos Engenheiros
foram prescritas a extensão, aproximação
Eletricistas e Eletrônicos (IEEE), em que
recursos e o horário de todas as atividades
Figura 5 – Exemplo de Estratégia de Teste para o Critério Funcional Baseado no Domínio de
Atributos
de teste. Na figura 5 há um exemplo de
dados deve estar protegido caso ocorra uma
estratégia de teste contida no documento de
entrada em que o CEP possua menos ou
testes.
mais de 8 números.
Nesse
exemplo,
os
elementos
requeridos definem como classe válida de
valores para altura que o dado inserido no
CONCLUSÃO
banco que não seja nulo (not null) e que a
Ao fim da primeira fase de testes,
altura esteja entre 100 cm e 300 cm,
quando a primeira versão do banco ficou
garantindo que os valores atendam a
pronta¸ foi constatado que eram necessário
semântica e reflitam o mundo real. O banco
realizar uma nova visita ao Batalhão da PM
deve estar preparado para rejeitar valores
para que fossem esclarecidos alguns dos
nulos para a altura e/ou que tenha altura
requisitos.
Feitas as entrevistas, o banco foi
menor que 100 cm ou maior que 300 cm.
Na figura 6, pode ser observado um
modificado e uma nova fase de testes foi
exemplo de parte da execução do teste, que
realizada. A figura 6 possibilita uma melhor
integra parte do documento Casos de Testes
visualização dos resultados obtidos ao
e
término da fase de testes da última versão
Execução,
confeccionado
após
a
finalização do plano de testes. Nela é
apresentada uma parte da execução dos
do BD.
A
metodologia
utilizada
para
o
testes, nos quais foram encontrados três
desenvolvimento do BD é importante para a
erros.
é
garantia da qualidade do sistema. O ciclo
ter
percorrido (plano de testes, execução dos
exatamente 8 números. Logo, o banco de
testes, correções) ao implementar o banco é
Nos
especificado
130
requisitos
que
o
levantados
CEP
deve
Evolvere Science, V. 2, N. 1, 2013
primordial para se atender ao máximo os
alterações foram realizadas para atender os
requisitos dos usuários. Após cada etapa de
novos requisitos identificados.
correções novas entrevistas foram feitas e
Figura 6 – Exemplo de parte da execução dos testes
Verificou-se, por exemplo, durante
apenas permitia a inserção de 8 dígitos.
a execução dos testes do sistema que foi
Esse defeito foi corrigido através da
possível inserir o mesmo curso diversas
alteração da cláusula check que foi
vezes para o mesmo policial (viola a
implementada incorretamente.
cardinalidade das tabelas policial e curso).
A seguir é apresentado o trecho incorreto
O defeito pôde ser corrigido colocando a
do código:
restrição de unicidade para o atributo
policial_id na tabela policial_curso.
CONSTRAINT policial_telefone_check
CHECK((telefone>10000000)AND(telefon
e<99999999))
Que após a correção ficou dessa maneira:
CONSTRAINT
policial_telefone_check
CHECK
Figura 7 – Dados estatísticos da atividade de
testes do Sistema COPOM
Outro exemplo de defeito encontrado foi
o erro apresentado no cadastro do telefone
que deveria possuir 10 dígitos e o banco
131
((telefone>1000000000)AND(telefone<999
9999999))
Evolvere Science, V. 2, N. 1, 2013
Além desses, outros defeitos foram
A detecção dos defeitos tem um
encontrados na base de dados e em seguida
objetivo construtivo e garante a melhora na
foram corrigidos. A qualidade do banco de
qualidade do software produzido para o 5º
dados neste caso foi incrementada e apesar
BPM. Como trabalhos futuros o teste
da atividade de testes não garantir que o
funcional e a metodologia utilizada para
sistema está livre de defeitos, o banco de
desenvolver o BD poderia ser usada em um
dados se encontra mais seguro.
Banco
de
Dados
Objeto-Relacional,
contudo seria necessária a identificação de
CONCLUSÃO
novos critérios de testes e ajustes na
Neste trabalho foi proposta a construção
sistemática devido ao paradigma OO.
e avaliação de um banco de dados para a
Todo esforço concentrado ao testar o
segurança pública de Petrolina, utilizando
Banco de Dados na etapa de construção é
um SGBD gratuito, o PostgreSQL, a fim de
fundamental para a correção de várias
criar materiais para o uso desses códigos
restrições não levantadas anteriormente,
abertos e tornar seu uso praticável nos
nem nas revisões formais e nem nas
meios públicos. Tendo isso em vista, a
reuniões entre os desenvolvedores. A partir
implementação do BD foi realizada usando
das etapas de testes os critérios alinham as
ferramentas gratuitas como o PgAdmin
divergências existentes e colocam uma série
[www.pgadmin.org,
Astha
de defeitos que persistiram ao longo do
e
desenvolvimento, bem como orientam a
2010],
[astah.change-vision.com,
o
2010]
o
DbWrench [www.dbwrench.com, 2010].
equipe de implementação do sistema a
Para garantir a qualidade do banco de
corrigir várias ações visando atender as
dados foi realizado um ciclo de testes
principais restrições existentes em um
funcionais que começa com a confecção do
banco de dados Relacional.
plano de testes, seguida da execução dos
testes e as correções dos defeitos da etapa
REFERÊNCIAS
de projeto. A partir das restrições do
modelo relacional foram definidos os
P. AMMANN AND A. J. OUTT. Using
critérios e estratégias. Os casos de testes
Formal Methods to Derive Test Frames
foram
para
in Category-partition Testing. Proc. of the
proporcionar uma forma sistemática de
9th Annual Conference on Computer
execução dos testes. Os casos de testes
Assurance (COMPASS 94), pages 69-80,
executados
Gaithersburg, MD, June 1994.
extraídos
neste
em
seguida
exemplo
detectaram
vários tipos de defeitos que poderiam ter
interferido em outras etapas de testes da
ASTAH.
aplicação posteriormente.
www.astah.change-vision.com, 2010.
132
Disponível
em
Evolvere Science, V. 2, N. 1, 2013
IEEE.
IEEE
Standard
of
CHAYS, D; DAN, S; FRANKL, P. G;
Software
VOKOLOS, F. I; WEYUKER, E. J. A
Standard 829, IEEE Computer Society
Framework
Press, 1990.
for
Testing
Database
Engineering
Glossary
Terminology.
Applications. In: 2000 ACM SIGSOFT
International
Symposium
Software
MACHADO, F. N. R; ABREU, M. P.
Testing and Analysis – ISSTA, 2000,
Projeto de Banco de Dados: uma visão
Portland, Proceedings. Portland, 2000. ]
prática. 11ª Ed. São Paulo: Érica, 1996.
DBWRENCH.
on
Disponível
em
www.dbwrench.com, 2010.
MALDONADO, J. C., DELAMARO, M.
E., FABBRI, S. C. P. F., SIMÃO, A. S.,
SUGETA, T., VINCEZI, A. M. R., and
DELAMARO,
Márcio
Eduardo;
MASIERO, P. C. � 2000). Proteum: A
MALDONADO, José Carlos; JINO, Mário.
family of tools to support specification
Introdução ao Teste de Software. Rio de
and program testing based on mutation.
Janeiro: Elsevier, 2007.
In Mutation 2000 Symposium – Tool
Session, pages 113–116, San Jose, CA.
DELAMARO, M. E. Proteum – Um
Kluwer Academic Publishers.
Ambiente de Teste Baseado na Análise
de Mutantes. 1993. 113 f. Dissertação
MACHADO, F.N.R., ABREU, M. Projeto
(Mestrado em Ciências de Computação e
de Banco de Dados: uma visão prática.
Matemática Computacional) – Instituto de
São Paulo: Érica, 2004.
Ciências Matemáticas e de Computação de
São Carlos – ICMC/USP, São Carlos, 1993.
MYERS, G,J. The art of software testing.
J. Giley, 1979.
ELSMARI, R; NAVATHE, S. B. Sistemas
de Banco de Dados. 4ª ed. São Paulo:
MELLO, R. S. Gerenciamento de Dados
Pearson Addison, 2005.
XML. In: Escola de Informática Norte da
SBC –ENCOINFO/EIN, 5, 2003, Palmas.
HARTMAN,
A.
Is
ISSTA
research
Anais...
Palmas:
Centro
Universitário
relevant to industry? Int.Symposium on
Luterano de Palmas – ULBRA, 2003, 20p.
Software Testing and Analysis, Industry
p.15-34.
panel.
ACM
SIGSOFT
Engineering Notes. 2002.
133
Software
Evolvere Science, V. 2, N. 1, 2013
J. RUMBAUGH, I. Jacobson e G. Booch.
Dados Relacional. 2000. 204 f. Tese
UML Reference Manual, Third Edition.
(Doutorado em Engenharia Elétrica) -
Addison Wesley Longman, 2004.
Faculdade de Engenharia Elétrica e de
Computação da Universidade Estadual de
RAMOS, R.A. Treinamento Prático em
Campinas - FEEC/UNICAMP, Campinas,
UML. Digerati Books, São Paulo 2006.
2000.
SILBERSCHATZ, A; KORTH, H. F;
PGADMIN.
SUDARSHAN, S. Sistema de Banco de
www.pgadmin.org, 2010.
Dados. 5ª ed. Rio de Janeiro: Elsevier,
2006.
SOMMERVILLE,
I.
Engenharia
de
Software. 6º ed. São Paulo: Pearson
Addison Wesley, 2003.
SOUZA, J. P. Teste Funcional em
Aplicação de Banco de Dados Baseado
nos Diagramas da UML. 2008. 149f.
Dissertação (Mestrado em Ciência da
Computação)
–
Centro
Universitário
Eurípides de Marília. Fundação de Ensino
Eurípides Soares da Rocha, Marília, 2008.
SPOTO, E. S; PERES, L. M; BUENO, P.
M. Um Estudo de Critérios de Teste de
Software Baseados Em Fluxo de Dados.
1995. 102 f. Trabalho de Conclusão de
Disciplina (Tópicos de Engenharia da
Computação II) - Faculdade de Engenharia
Elétrica e de Computação da Universidade
Estadual de Campinas - FEEC/UNICAMP,
Campinas, 1995.
SPOTO, E. S. Teste Estrutural de
Programas de Aplicação de Banco de
134
Disponível
em
Download