Criando uma base de dados de teste - SQL Magazine 83

Apresentar uma discussão e exemplos a respeito da necessidade de geração de dados simulados.

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

Apresentar uma discussão e exemplos a respeito da necessidade de geração de dados simulados.

Para que serve:

O conteúdo apresentado neste artigo serve como um guia para auxiliar a tarefa de geração de dados simulados visando preencher um banco de dados.

Em que situação o tema é útil:

A análise das situações e alternativas apresentadas neste artigo é útil para os DBAs e desenvolvedores que lidam com ambientes diversos e a necessidade de testes para validação e homologação.

A utilização de qualquer banco de dados possui um pré-requisito básico: dados. Estes dados são armazenados de acordo com a especificação de um modelo de dados que é elaborado a partir da modelagem proveniente da necessidade de armazenamento. Por exemplo: um sistema que controla a entrada/saída de funcionários em uma empresa substituindo o antigo cartão de ponto vai possuir dados sobre pessoas, horários, datas, autorização, etc.

A maioria dos modelos de dados é preenchida através da utilização da interface de um sistema que permite a captura manual realizada por digitadores/usuários ou automática, realizada por sensores ou equipamentos especializados. Mas e quando é necessário preencher o banco de dados com dados simulados? Esta necessidade é muito comum durante validações, homologações, testes de desempenho, exportação da base de dados e outras situações. E, infelizmente, os principais bancos de dados disponíveis não apresentam recursos e ferramentas adequadas para a geração de dados simulados ou de testes suficientemente adequadas aos modelos de dados reais.

Baseado neste cenário, este artigo apresentará algumas alternativas de código livre para permitir a geração de dados simulados, também conhecidos como massa de testes. O artigo também mostrará como preencher dados em tabelas de três modelos de dados parciais que representam as necessidades de dados simulados. Gerar dados simulados é crucial para qualquer profissional que trabalha com desenvolvimento e administração de banco de dados, uma vez que a geração de dados está intimamente ligada com o processo de testes e homologação.

Planejando a geração de dados

Antes de começar a discutir como gerar dados simulados é preciso levar em consideração alguns pontos importantes sobre esta tarefa. Estes pontos incluem a necessidade de testes, a qualidade e quantidade dos dados, o ambiente, as implicações e os aspectos técnicos envolvidos neste tipo de tarefa.

A geração de dados ocorre tradicionalmente durante a fase de testes do banco de dados ou de um sistema recém-desenvolvido. Atualmente a área de testes está muito avançada se comparada ao que tínhamos alguns anos atrás: hoje contamos com metodologias ágeis, desenvolvimento orientado a testes, integração contínua, ferramentas especializadas para gestão e geração automática de testes, diferentes tipos de testes (testes unitários, caixa preta, caixa branca, etc.) e outras práticas que indicam como empregar diferentes tipos de dados visando verificação, validação, homologação e adequação a requisitos.

Uma parte importante da tarefa de realização de testes que envolve o banco de dados é a geração dos dados. A importância está relacionada com a representatividade dos dados quando se faz testes, ou seja, o quão fidedigno os dados são em relação ao ambiente real. Esta necessidade de representar a realidade é importante, pois o que está sendo testado deve ser avaliado com a máxima precisão em relação ao que realmente pode acontecer em um ambiente de produção, e não aos dados que o testador inventa na hora simplesmente para concluir o teste rapidamente.

Para exemplificar a falta de comprometimento com a geração de dados realísticos destaco que muitas vezes já encontrei desenvolvedores e testadores alheios à qualidade e quantidade dos dados, chegando até a fornecer valores completamente fora de contexto durante a digitação. Algo como colocar nomes de clientes que não representam a realidade, endereços com tipos de logradouros absurdos, datas inválidas, códigos fora de formato, valores fora das faixas pré-estabelecidas, preços absurdos e outras violações da representatividade da realidade. Por exemplo: uma vez encontrei em um cadastro de clientes o endereço “via láctea, segunda estrela à direita” ao invés de algo como “Rua X, nro 25 fundos”. Também é clássico encontrar situações onde foi colocado simplesmente um ponto (.) ou um espaço em branco (“ ”) para campos texto obrigatórios. Este tipo de atitude perante o preenchimento dos dados de teste deixa claro que não há a menor preocupação com o fato dos dados não representarem a realidade. Com certeza esta falta de representatividade dos dados é algo que pode contaminar o teste e fazer com que ele seja concluído com sucesso ao passo que com dados reais é possível que uma falha ocorra. O inverso também pode ocorrer, ou seja, testes com dados sem representatividade podem falhar ao passo que o mesmo teste com dados reais seria concluído com sucesso."

[...] continue lendo...

Artigos relacionados