Teste de banco de dados - Database testing

O teste de banco de dados geralmente consiste em um processo em camadas, incluindo a camada de interface do usuário (IU), a camada de negócios, a camada de acesso a dados e o próprio banco de dados. A camada de IU lida com o design da interface do banco de dados, enquanto a camada de negócios inclui bancos de dados que dão suporte a estratégias de negócios .

Objetivos

Bancos de dados , a coleção de arquivos interconectados em um servidor, armazenando informações, podem não lidar com o mesmo tipo de dados, ou seja, os bancos de dados podem ser heterogêneos . Como resultado, muitos tipos de erros de implementação e integração podem ocorrer em grandes sistemas de banco de dados, o que afeta negativamente o desempenho, a confiabilidade, a consistência e a segurança do sistema. Assim, é importante testar para obter um sistema de banco de dados que satisfaça as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) de um sistema de gerenciamento de banco de dados .

Uma das camadas mais críticas é a camada de acesso a dados, que lida com bancos de dados diretamente durante o processo de comunicação. O teste de banco de dados ocorre principalmente nesta camada e envolve estratégias de teste, como controle de qualidade e garantia de qualidade dos bancos de dados do produto. O teste nessas diferentes camadas é frequentemente usado para manter a consistência dos sistemas de banco de dados, mais comumente visto nos exemplos a seguir:

  • Os dados são essenciais do ponto de vista do negócio. Empresas como Google ou Symantec , associadas ao armazenamento de dados , precisam ter um sistema de banco de dados durável e consistente. Se as operações do banco de dados, como inserir, excluir e atualizar, forem realizadas sem primeiro testar a consistência do banco de dados, a empresa corre o risco de travar todo o sistema.
  • Algumas empresas têm diferentes tipos de bancos de dados e também objetivos e missões diferentes. Para atingir um nível de funcionalidade que atenda a esses objetivos, eles precisam testar seu sistema de banco de dados.
  • A abordagem atual de teste pode não ser suficiente na qual os desenvolvedores testam formalmente os bancos de dados. No entanto, essa abordagem não é suficientemente eficaz, pois os desenvolvedores de banco de dados provavelmente retardarão o processo de teste devido a falhas de comunicação. Uma equipe de teste de banco de dados separada parece aconselhável.
  • O teste de banco de dados trata principalmente de encontrar erros nos bancos de dados para eliminá-los. Isso melhorará a qualidade do banco de dados ou do sistema baseado na web.
  • O teste de banco de dados deve ser diferenciado de estratégias para lidar com outros problemas, como travamentos do banco de dados, inserções quebradas, exclusões ou atualizações. Aqui, a refatoração de banco de dados é uma técnica evolutiva que pode ser aplicada.

Tipos de testes e processos

Teste de caixa preta e caixa branca no teste de banco de dados

A figura indica as áreas de teste envolvidas durante diferentes métodos de teste de banco de dados, como teste de caixa preta e teste de caixa branca .

Caixa preta

O teste de caixa preta envolve o teste de interfaces e a integração do banco de dados, que inclui:

  1. Mapeamento de dados (incluindo metadados )
  2. Verificando dados de entrada
  3. Verificando dados de saída de funções de consulta
  4. Várias técnicas, como técnica de gráfico de causa e efeito, particionamento de equivalência e análise de valor limite .

Com a ajuda dessas técnicas, a funcionalidade do banco de dados pode ser testada exaustivamente.

Prós e contras do teste de caixa preta incluem: A geração de casos de teste em testes de caixa preta é bastante simples. Sua geração é completamente independente do desenvolvimento de software e pode ser feita em um estágio inicial de desenvolvimento. Como consequência, o programador tem melhor conhecimento de como projetar o aplicativo de banco de dados e usa menos tempo para depuração. O custo para o desenvolvimento de casos de teste caixa preta é menor do que o desenvolvimento de casos de teste caixa branca. A principal desvantagem do teste da caixa preta é que não se sabe quanto do programa está sendo testado. Além disso, certos erros não podem ser detectados.

Caixa branca

O teste de caixa branca trata principalmente da estrutura interna do banco de dados. Os detalhes da especificação são ocultados do usuário.

  1. Envolve o teste de gatilhos de banco de dados e visualizações lógicas que irão suportar a refatoração de banco de dados .
  2. Ele realiza testes de módulo de funções de banco de dados, gatilhos, visualizações, consultas SQL etc.
  3. Ele valida tabelas de banco de dados, modelos de dados, esquema de banco de dados etc.
  4. Ele verifica as regras de integridade referencial .
  5. Ele seleciona os valores da tabela padrão para verificar a consistência do banco de dados.
  6. As técnicas usadas no teste de caixa branca são cobertura de condição, cobertura de decisão, cobertura de instrução e complexidade ciclomática .

A principal vantagem do teste de caixa branca no teste de banco de dados é que erros de codificação são detectados, de modo que bugs internos no banco de dados podem ser eliminados. A limitação do teste de caixa branca é que as instruções SQL não são cobertas.

A abordagem WHODATE

Abordagem WHODATE para transformação de instrução SQL

Ao gerar casos de teste para teste de banco de dados, a semântica da instrução SQL precisa ser refletida nos casos de teste. Para tal, é utilizada uma técnica denominada WHite bOx Database Application Technique "(WHODATE)". Conforme mostrado na figura, as instruções SQL são convertidas independentemente em instruções GPL, seguidas por testes tradicionais de caixa branca para gerar casos de teste que incluem semântica SQL.

Quatro etapas

  • Definir luminária
  • Execução de teste
  • Verificação de resultado
  • Destruir

Um conjunto de fixação descreve o estado inicial do banco de dados antes de entrar no teste. Após definir os acessórios, o comportamento do banco de dados é testado para casos de teste definidos. Dependendo do resultado, os casos de teste são modificados ou mantidos como estão. O estágio de "desmontagem" resulta no encerramento do teste ou na continuação de outros casos de teste.

Para um teste de banco de dados bem-sucedido, o seguinte fluxo de trabalho executado por cada teste individual é comumente executado:

  1. Limpe o banco de dados: Se os dados testáveis ​​já estiverem presentes no banco de dados, o banco de dados precisa ser esvaziado.
  2. Configurar Fixture: Uma ferramenta como o PHPUnit irá então iterar sobre fixtures e fazer inserções no banco de dados.
  3. Execute o teste, verifique o resultado e, em seguida, desmonte: Após redefinir o banco de dados para esvaziar e listar os acessórios, o teste é executado e a saída é verificada. Se a saída for a esperada, o processo de desmontagem segue, caso contrário, o teste é repetido.

Técnicas básicas

  • O SQL Query Analyzer é uma ferramenta útil ao usar o Microsoft SQL Server .
  • Uma função comumente usada,, create_input_dialog["label"] é usada para validar a saída com as entradas do usuário.
  • O design de formulários para teste automatizado de banco de dados, front-end e back-end de formulário, é útil para os trabalhadores de manutenção de banco de dados.
  • Teste de carga de dados :
    • Para o teste de carga de dados, é necessário conhecimento sobre o banco de dados de origem e o banco de dados de destino.
    • Os trabalhadores verificam a compatibilidade entre o banco de dados de origem e o banco de dados de destino usando o pacote DTS .
    • Ao atualizar o banco de dados de origem, os trabalhadores certifique-se de compará-lo com o banco de dados de destino.
    • O teste de carga do banco de dados mede a capacidade do servidor de banco de dados de lidar com as consultas, bem como o tempo de resposta do servidor e cliente do banco de dados.
  • Em testes de banco de dados, questões como atomicidade, consistência, isolamento, durabilidade, integridade, execução de gatilhos e recuperação são freqüentemente considerados.
  1. A configuração para teste de banco de dados é cara e complexa de manter porque os sistemas de banco de dados estão mudando constantemente com as operações de inserção, exclusão e atualização esperadas.
  2. A sobrecarga extra está envolvida para determinar o estado das transações do banco de dados.
  3. Depois de limpar o banco de dados, novos casos de teste devem ser projetados.
  4. Um gerador de SQL é necessário para transformar as instruções SQL a fim de incluir a semântica SQL em casos de teste de banco de dados.


Veja também

Referências

links externos