Teste de banco de dados - Tipos
Com base na função e estrutura de um banco de dados, o teste de banco de dados pode ser categorizado em três categorias -
Structural Database Testing - Lida com teste de tabela e coluna, teste de esquema, procedimentos armazenados e teste de visualizações, verificação de gatilhos, etc.
Functional Testing- Envolve a verificação da funcionalidade do banco de dados do ponto de vista do usuário. Os tipos mais comuns de teste funcional são os testes de caixa branca e caixa preta.
Nonfunctional Testing - Envolve teste de carga, teste de risco em banco de dados, teste de estresse, requisitos mínimos de sistema e lida com o desempenho do banco de dados.
Teste de banco de dados estrutural
O teste de banco de dados estrutural envolve a verificação dos componentes do banco de dados, que não são expostos aos usuários finais. Envolve todos os componentes do repositório, que são usados para armazenar os dados e não são alterados pelos usuários finais. Os administradores de banco de dados com bom comando sobre procedimentos armazenados SQL e outros conceitos normalmente executam esse teste.
Discutidos são os componentes comuns testados com relação aos testes estruturais -
Teste de esquema / mapeamento
Envolve a validação dos objetos do aplicativo front-end com o mapeamento de objetos do banco de dados.
No Teste de Esquema -
Às vezes, acontece que os objetos do aplicativo do usuário final não são mapeados corretamente ou não são compatíveis com os objetos do banco de dados. Portanto, é necessário verificar a validação dos vários formatos de esquema associados aos bancos de dados.
É necessário encontrar os objetos não mapeados no banco de dados, como tabelas, visualizações, colunas etc.
Existem várias ferramentas no mercado que podem ser utilizadas para realizar o mapeamento de objetos em esquemas.
Example - No Microsoft SQL Server, um testador pode escrever consultas simples para verificar e validar esquemas no banco de dados.
Se o testador quiser fazer alterações na estrutura de uma tabela, ele deve garantir que todos os stored procedimentos que possuem essa tabela são compatíveis com esta mudança.
Procedimentos armazenados e testes de visualizações
Nesse teste, um testador garante que a execução manual de procedimentos armazenados e visualizações gere o resultado necessário.
O testador garante -
Se permitir que os gatilhos necessários sejam executados conforme o esperado.
Se a equipe de desenvolvimento cobriu todos os loops e condições, passando a entrada para os aplicativos nos procedimentos.
Se houver algum procedimento armazenado não utilizado no banco de dados.
As operações TRIM são aplicadas corretamente quando os dados são buscados nas tabelas necessárias no banco de dados.
Validação da integração geral dos módulos de procedimento armazenado de acordo com os requisitos do aplicativo em teste.
Mecanismos de exceção e tratamento de erros são seguidos.
As ferramentas mais comuns usadas para realizar testes de procedimentos armazenados são LINQ, SP Test tooletc.
Teste de gatilho
No teste de gatilho, um testador precisa garantir o seguinte -
Se as convenções de codificação são seguidas durante a fase de codificação dos gatilhos.
Veja se os gatilhos executados atendem às condições exigidas.
Se o gatilho atualiza os dados corretamente, uma vez que eles foram executados.
Validação da funcionalidade de gatilhos Atualizar / Inserir / Excluir do aplicativo em teste.
Teste de tabelas e colunas
As principais áreas cobertas neste teste são -
Validando os tipos de dados no banco de dados para valores de campo no aplicativo front-end.
Validando o comprimento do campo de dados no banco de dados para o comprimento dos tipos de dados no aplicativo.
Verificar se existem tabelas ou colunas não mapeadas no banco de dados de objetos de campo de aplicativo.
As convenções de nomenclatura das tabelas e colunas do banco de dados são verificadas, se estão de acordo com os requisitos do negócio ou não.
Validando as Chaves e Índices no banco de dados, ou seja, as chaves primárias e estrangeiras nas tabelas são definidas conforme a necessidade.
Verifique se as chaves primárias e suas chaves estrangeiras correspondentes são iguais nas duas tabelas.
Verifique se as características Unique e NOT NULL das chaves são mantidas.
O comprimento e o tipo de dados das chaves e índices são mantidos de acordo com o requisito.
Verificação do servidor de banco de dados
A verificação do servidor de banco de dados envolve verificar -
Se o servidor de banco de dados pode lidar com o número esperado de transações de acordo com os requisitos de negócios.
Se os detalhes de configuração dos servidores de banco de dados atendem aos requisitos de negócios.
Se a autorização do usuário for mantida de acordo com o requisito.
Teste funcional
O teste funcional é executado tendo em mente o ponto de vista do usuário final; se as transações e operações necessárias executadas pelos usuários finais atendem às especificações de negócios.
Teste de caixa preta
O teste da caixa preta envolve a verificação da integração do banco de dados para verificar a funcionalidade. Os casos de teste são simples e são usados para verificar os dados de entrada e de saída da função.
Várias técnicas, como técnica de gráfico de causa e efeito, particionamento de equivalência e análise de valor limite, são usadas para testar a funcionalidade do banco de dados.
Está advantages são os seguintes -
- É bastante simples e é executado nos estágios iniciais de desenvolvimento.
- O custo de desenvolver casos de teste é menor em comparação com o teste de caixa branca.
Suas desvantagens são as seguintes -
- Alguns erros não podem ser detectados
- Não se sabe quanto programa precisa ser testado.
Teste de caixa branca
O teste de caixa branca lida com a estrutura interna do banco de dados e os detalhes das especificações são ocultados dos usuários. 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.
Ele realiza testes de módulo de funções de banco de dados, gatilhos, visualizações, consultas SQL etc. Este tipo de teste valida tabelas de banco de dados, modelos de dados, esquema de banco de dados etc. Ele verifica as regras de integridade referencial. Ele seleciona os valores da tabela padrão para verificar a consistência do banco de dados.
As técnicas mais comuns usadas para realizar o teste de caixa branca são cobertura de condição, cobertura de decisão, cobertura de declaração, etc.
Erros de codificação podem ser detectados em testes de caixa branca, de forma que bugs internos no banco de dados possam ser eliminados. A limitação do teste de caixa branca é que as instruções SQL não são cobertas.
Teste Não Funcional
O teste não funcional envolve a realização de teste de carga, teste de estresse, verificação dos requisitos mínimos do sistema para atender às especificações do negócio, descoberta de risco e otimização de desempenho do banco de dados.
Teste de carga
O objetivo principal do teste de carga é verificar se a maioria das transações em execução tem impacto no desempenho do banco de dados.
No teste de carga, o testador verifica -
- O tempo de resposta para executar as transações para vários usuários remotos.
- Tempo gasto pelo banco de dados para buscar registros específicos.
Examples of load testing in different testing types -
- Executando a transação mais usada repetidamente para ver o desempenho do sistema de banco de dados.
- Baixando uma série de arquivos grandes da Internet.
- Executar vários aplicativos em um computador ou servidor simultaneamente.
Teste de Estresse
O teste de estresse é executado para identificar o ponto de interrupção do sistema. Nesse teste, o aplicativo é carregado de forma que o sistema falhe em um ponto. Este ponto é chamado debreakpoint do sistema de banco de dados.
Determinar o estado das transações do banco de dados envolve uma quantidade significativa de esforço. O planejamento adequado é necessário para evitar problemas de tempo e custos.
As ferramentas de teste de estresse mais comumente usadas são LoadRunner e WinRunner.
Vamos dar uma examplede teste de estresse. Um aplicativo de CRM pode ter uma carga máxima de 50.000 usuários simultâneos. Suponha que você aumente a carga para 51000 e faça algumas transações, como atualizar registros ou adicionar uma entrada. Assim que você fizer a transação, o aplicativo pode sincronizar com o sistema de banco de dados. Portanto, o próximo teste é executado com uma carga de usuário de 52.000. Às vezes, o teste de estresse também é chamadoFatigue Testing.