Teste em Esquemas de Dados
description
Transcript of Teste em Esquemas de Dados
Teste em Esquemas de Dados
Maria Cláudia Figueiredo Pereira Emer
Universidade Federal do ParanáDepartamento de Informática
Seminário
2
Introdução - Contexto
Importância da atividade de teste Produtos confiáveis Avaliação do nível de qualidade
Por que testar esquemas de dados? Assegurar a integridade dos dados Evitar falhas na aplicação que utiliza os
dados
3
Introdução - Contexto
Esquemas XML Operadores de mutação – Li e Miller (2005) Teste aplicando o Critério Análise de Mutantes –
Franzotte e Vergilio (2006) Esquemas de base de dados
Uso de informações do esquema – Robbert e Maryanski (1991), Chan et al. (2005)
Teste aplicando Critério de Teste Baseado na Definição e Uso de atributos - Aranha et al. (2000)
4
Introdução – Motivação
Auxiliar na garantia de qualidade de software
Importância do esquema de documentos XML e de Base de dados
Necessidade de identificar defeitos em esquemas de dados
Exigência por abordagens e ferramentas específicas
Existência de poucos trabalhos que exploram esse assunto
5
Introdução – Objetivos
Investigar abordagens de teste envolvendo esquemas de dados
Propor classes de defeito para esquemas Introduzir uma abordagem de teste baseada
em defeitos Estudar aspectos de implementação Avaliar o custo e a eficácia da abordagem
6
XML
Linguagem de marcação para conteúdo
Bem-formado regras de XML Válido Esquema Esquema
Vocabulário com definição de elementos, atributos e restrições aos dados
Exemplos: DTD e XML Schema
7
Base de Dados
Conjunto de informações inter-relacionadas
Modelo de dados relacional, orientado a objetos, objeto-relacional
Instância conteúdo específico que varia com o tempo
Esquema definição da estrutura lógica da base de dados
8
Abordagem de Teste – Definição
Deriva casos de teste para mostrar a presença ou ausência de defeitos em esquemas de dados
Genérica, pode ser aplicada em qualquer esquema de dados
Baseada em defeitos, define Classes de Defeito que descrevem erros comuns e são usadas para obter os casos de teste
9
Abordagem de Teste - Definição
Gera instâncias de dados alternativas que representam possíveis defeitos
Produz consultas que são capazes de revelar os defeitos
Os casos de teste são formados por uma instância de dados alternativa associada a uma consulta e a especificação do resultado esperado
Defeito revelado resultados obtidos (consultas) diferentes dos esperados (especificação de dados)
10
Abordagem de Teste - Classes de Defeito
Classe 1 (C1) – Restrições de Domínio: defeitos relacionados a definição de domínio dos conteúdos de elementos ou atributos. Tipo de Dado Incorreto (TDI): definição incorreta de tipo de dado; Valor Incorreto (VI): definição incorreta de valor padrão ou fixo; Valor Enumerado Incorreto (VEI): definição incorreta de lista de valores
aceitáveis; Valor Máximo e Mínimo Incorreto (VMMI): definição incorreta de valores
limites; Tamanho Incorreto (TI): definição incorreta do número de caracteres
permitidos; Dígito Incorreto (DI): definição incorreta do total de dígitos ou dígitos
decimais permitidos; Padrão Incorreto (PI): definição incorreta da seqüência de caracteres ou
números permitidos; Caracteres de Espaço em Branco Incorretos (CEBI): definição incorreta
de como devem ser tratados caracteres de espaço em branco.
11
Abordagem de Teste - Classes de Defeito
Classe 2 (C2) – Restrições de Definição: defeitos relacionados a definição de atributos, relativos a integridade dos dados. Uso Incorreto (UI): o atributo está incorretamente definido como opcional
ou obrigatório; Unicidade Incorreta (NI): o atributo está incorretamente definido como
único; Chave Incorreta (CI): o atributo está incorretamente definido como
chave. Classe 3 (C3) – Restrições de Relacionamento: defeitos
relacionados a definição de relacionamento entre elementos. Ocorrência Incorreta (OI): definição incorreta do número de vezes que
um mesmo elemento pode ocorrer; Ordem Incorreta (RI): definição incorreta da ordem em que os elementos
podem ocorrer; Cardinalidade Incorreta (AI): definição incorreta do número de
ocorrências de um elemento em relação a outro elemento de acordo com um relacionamento;
12
Abordagem de Teste - Classes de Defeito
Classe 3 (C3) – Restrições de Relacionamento (continuação) Generalização/Especialização Incorreta (GSI): definição
incorreta de uma generalização/especialização; Agregação Incorreta (GI): definição incorreta de uma agregação; Elemento Associativo Incorreto (EAI): definição incorreta de um
elemento associativo. Classe 4 (C4) – Restrições Semânticas: defeitos
relacionados a definição de restrições em relação ao conteúdo dos dados, escritas por regras de negócio. Condição Incorreta (COI): definição incorreta de um predicado
que expressa uma condição que deve ser satisfeita pelo conteúdo de determinado atributo.
13
Abordagem de Teste – Processo de Teste
14
Abordagem de Teste – Contextos de Uso
XML Documentos XML que armazenam dados; Mensagens XML que trocam informações entre
aplicações Web; Resultados de consultas à base de dados em XML; Documentos XML atualizados; Serviços Web.
Base de Dados Relacional; Orientada a objetos; Objeto-relacional.
15
Abordagem de Teste – Contextos de XML – Exemplo
Fragmento do esquema pedido em XML Schema - pedidoID
…<xsd:attribute name="pedidoID"> <xsd:simpleType> <xsd:restriction
base="xsd:integer"> <xsd:minInclusive
value="0"/> <xsd:maxInclusive
value="999999"/> </xsd:restriction> </xsd:simpleType></xsd:attribute>…
S = (E,A,R,P)E = {pedido, cliente, itens, item,
codigo, descricao, quantidade, preco}
A = {pedidoID}R = {ordem, tipo de dado,
ocorrência, máximo/mínimo}P = {pedido(pedidoID cliente itens,
ordem: cliente itens), pedidoID(tipo de dado,
máximo/mínimo), …}
16
Abordagem de Teste – Contextos de Uso – Exemplo
Instância original…
<ordem pedidoID = "000134">
...
Instância alternativa - C1-DI…
<ordem pedidoID = "00013">
...
Segundo a especificação dos dados:
pedidoID: Uso é requerido e código com exatamente seis dígitos
Dois defeitos revelados em pedidoID: C2-UI e C1-DI
Classes de defeito identificadas em pedidoID:
C1-TDI; C1-VMMI; C1-DI; C2-UI.
17
Estágio Atual do Trabalho
Abordagem de teste genérica para esquemas de dados
Baseada em defeitos Classes de defeito Instâncias de dados alternativas Consultas
Ferramenta XTool Experimentos: XML Schema e esquema de base
de dados relacional Aplicabilidade, custo e eficácia em revelar defeitos
18
Estágio Atual do Trabalho
Experimento I: XML Schemas Experimento II: Abordagem X Teste de mutação –
XML Schemas Experimento III: Base de dados relacional (em
andamento) Considerações
Custo: análise dos resultados Eficácia: capaz de revelar defeitos Teste de mutação: defeitos revelados Vantagem da abordagem em relação ao teste de mutação
– geração automática de dados de teste