Teste em Esquemas de Dados

18
Teste em Esquemas de Dados Maria Cláudia Figueiredo Pereira Emer Universidade Federal do Paraná Departamento de Informática Seminário

description

Teste em Esquemas de Dados. Universidade Federal do Paraná Departamento de Informática Seminário. Maria Cláudia Figueiredo Pereira Emer. 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? - PowerPoint PPT Presentation

Transcript of Teste em Esquemas de Dados

Page 1: 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

Page 2: Teste em Esquemas de Dados

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

Page 3: Teste em Esquemas de 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)

Page 4: Teste em Esquemas de Dados

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

Page 5: Teste em Esquemas de Dados

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

Page 6: Teste em Esquemas de Dados

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

Page 7: Teste em Esquemas de Dados

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

Page 8: Teste em Esquemas 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

Page 9: Teste em Esquemas de Dados

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)

Page 10: Teste em Esquemas 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.

Page 11: Teste em Esquemas de Dados

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;

Page 12: Teste em Esquemas de Dados

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.

Page 13: Teste em Esquemas de Dados

13

Abordagem de Teste – Processo de Teste

Page 14: Teste em Esquemas de Dados

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.

Page 15: Teste em Esquemas de Dados

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),        …}

Page 16: Teste em Esquemas de Dados

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.

Page 17: Teste em Esquemas de Dados

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

Page 18: Teste em Esquemas de Dados

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