Nouveau : Test de DATAGEN, générateur de données

sjames

Test de DATAGEN, outil de génération de jeux de données SGBD

par Sylvain James, rédacteur expert senior de www.developpez.com.

♪

- Titre : Nouveau : Test de DATAGEN, générateur de données

- Auteur : sjames

- Parution : 10 avril 2005

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2005 Developpez. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Présentation de DATAGEN

- II. Comment ça marche ?

- II-A. La simulation des données

- II-B. Le contrôle des données

- II-C. Les plans de génération

- II-D. Les générateurs

- III. Démo

- IV. Notre avis…

I - Présentation de DATAGEN

Ce nouveau produit est une création de E-NAXOS, l'éditeur de MK Query Builder. DataGen est un produit totalement différent même si on reste dans le domaine des bases de données. C'est un générateur de données de test. À partir de la description d'une structure de table, il peut créer autant de lignes qu'on le désire. Les avantages de ce produit sont nombreux par rapport aux rares produits concurrents :

- reprise d'une structure de base existante, mais possibilité de générer une structure sans aucun lien avec une base de données ;

- génération directement dans la base ou bien en CSV, XML ou script SQL ;

- respect du relationnel (possibilité de générer des champs à partir des clés d'autres tables) ;

- nombreuses bases de données fournies (noms, prénoms, mots du dictionnaire, etc.) ;

- algorithmes permettant de générer à peu près tout ce qu'on veut, des choses simples aux champs complexes comme des balises HTML complètes et bien formées en passant par des champs composés ;

- possibilité d'utiliser des données personnelles externes comme base de génération ;

- support des dates, des timestamps, des décimaux, des mémos texte… ;

- enregistrement des paramètres pour chaque table générée et création de schémas complets pouvant être « rejoués » à volonté sur un seul clic ;

- simulation rapide de la sortie sur dix lignes pour contrôler la validité de la génération ;

- et de nombreuses autres choses qui rendent ce logiciel vraiment attractif comme la possibilité de générer des données ayant un aspect français ou anglais (comme les adresses, les mots du dictionnaire), un très bon point qui fait défaut à ses concurrents principalement américains.

Niveau prix, DataGen est plus cher que les petits générateurs aléatoires, mais ces derniers ne servent pas à grand-chose en réalité, car les données générées sont totalement aléatoires et sans aucune signification.
Mais il est moins cher que les rares produits professionnels du marché. Vendu 399 euros HT, il est donc assez attractif comparé à des produits comme TurboData (environ 550 $) ou GS Datagenerator (1950 $ en version pro !).

Et surtout c'est un produit français avec documentation française et anglaise !

II - Comment ça marche ?

Le produit se présente sous la forme d'une fiche unique à onglet. Le premier sert à se connecter à une base existante si on désire partir d'une structure existante. Les connexions se faisant via ADO/ODBC, on peut donc se connecter à une très large sélection de serveurs.

Une fois connecté à la base (toujours si on souhaite partir d'une base existante ce qui est optionnel) on obtient les informations détaillées de toutes les tables :

Commence alors le véritable paramétrage, celui du modèle de génération. Un modèle est une liste de générateurs. Un générateur peut être vu comme un petit robot spécialisé dans la génération d'un certain type de données, des e-mails, des adresses postales, etc. Un générateur est généralement relié à un champ de la table cible, mais cela n'est pas une obligation. Il est par exemple possible pour générer des champs complexes de créer plusieurs générateurs que l'on associe au travers d'un générateur spécial, le « combo ». En mélangeant générateur de constantes, de numériques, de chaînes, de mots choisis, etc., on peut virtuellement générer n'importe quel champ composé et aussi complexe que nécessaire.

L'image ci-dessus montre un modèle de génération en cours de conception. À gauche de l'écran se trouve la liste des générateurs déjà ajoutés au modèle. La partie droite est occupée par deux zones : en haut les informations propres au modèle : sa description, celle de la base de données cible, le nom physique de la table à générer, l'éventuel nom du fichier de sortie (CSV, XML ou script SQL) lorsqu'on ne souhaite pas un remplissage direct de la base de données et enfin le nombre de lignes à générer.

La partie inférieure contient le paramétrage du générateur en cours de sélection. On y trouve le nom du champ cible, celui du générateur (qui est souvent le même sauf lorsqu'on crée plusieurs générateurs pour créer une valeur composée), le type du générateur, la casse du texte généré (on peut forcer les minuscules, les majuscules, le « proper case » – première lettre en majuscule les autres en minuscules –), le nom de la source de données externes (optionnel). On peut indiquer si le champ accepte les valeurs nulles et fixer dans ce cas le pourcentage de nuls qu'on souhaite voir générer.

Sous cette zone se trouvent les paramètres propres au générateur en cours, chaque type de générateur ayant ses réglages.

II-A - La simulation des données

DataGen offre un mode de simulation à l'écran très pratique, car il permet d'éviter la génération d'un gros fichier pour s'apercevoir qu'on a oublié quelque chose. Ce mode simule la sortie du modèle en cours sur dix lignes.

La génération définitive des données s'effectue sur le même écran. On voit le bouton « Go » qui lance la génération ainsi que sous celui-ci la sélection du mode de sortie : Script SQL, fichier CSV, fichier XML ou remplissage direct de la base de données vie Ole DB.

II-B - Le contrôle des données

Lorsqu'on effectue la génération dans un fichier, il est possible via l'éditeur de texte intégré à DataGen de contrôler la sortie. Cet éditeur sert aussi à la création et la modification des fichiers de données personnalisés qui pourront être utilisés pour générer des données spécifiques.

II-C - Les plans de génération

Enfin, DataGen offre un mode de fonctionnement dit « plan de génération ». Un plan n'est qu'une liste ordonnée de modèles de génération qui seront exécutés automatiquement les uns à la suite des autres.

Cela est particulièrement pratique lorsqu'il s'agit d'être capable de générer plusieurs fois de suite des jeux de données différents pour une même structure de base de données.

II-D - Les générateurs

DataGen offre un grand nombre de générateurs spécialisés qui couvrent l'ensemble des besoins. Grâce à la possibilité d'utiliser des données externes personnalisées et grâce au générateur « combo » pour créer des champs complexes il y a peu de chances qu'une donnée ne puisse pas être générée à l'aide de ce logiciel. Pour vous faire une idée, voici les générateurs livrés dans la version actuelle :

Générateurs disponibles

- adresse postale avec choix « à la française » ou « à l'américaine » ;

- les bits. On peut paramétrer les deux valeurs (par défaut 0 ou 1, mais cela peut être oui / non, ou n'importe quoi d'autre) ;

- les villes avec choix de villes françaises ou étrangères ;

- les références de colonnes permettant de générer des données relationnelles (clé d'une autre table par exemple) ;

- le « combo » qui permet de mettre en série plusieurs générateurs pour créer une valeur complexe ;

- le générateur de constantes. Parfois utile, surtout au sein de champs composés ;

- les noms de pays avec choix du nom en français ou en anglais ou bien le code international du pays ;

- les dates avec sélection d'une fourchette et du format de sortie ;

- les date/heure avec fourchettes séparées pour les parties date et heure et choix du format de sortie ;

- les mots du dictionnaire avec choix de mots anglais ou français et la longueur maximale des mots à générer ;

- les adresses e-mails ;

- les nom et prénom en un seul champ. On peut fixer la position du prénom, la longueur maximale de chaque partie, la liste des phonèmes à utiliser pour générer les noms de famille ;

- les prénoms seuls ;

- les noms de famille seuls ;

- les floats, avec choix de la fourchette et du nombre de décimales ;

- les valeurs incrémentales dont on peut fixer la valeur de départ et l'incrément ;

- Les entiers avec sélection de la fourchette et du signe (que des positifs, que des négatifs, un mélange des deux) ;

- le générateur par masque qui génère des données aléatoires en fonction d'un masque fixe (par exemple « AAA-00 » pour un code produit sur trois lettres majuscules et un tiret suivi de deux chiffres) ;

- les mémos texte dont on peut fixer la longueur. Le texte est soit purement aléatoire soit une simulation de texte latin, le fameux Lorem Ipsum utilisé par les PAOistes et les concepteurs Web pour tester des mises en page ;

- les chaînes de caractères aléatoires dont on fixe la fourchette de taille ainsi que le jeu de caractères ;

- les heures avec fourchette de valeurs et sélection du format de sortie ;

- les noms d'états américains soit sous forme longue soit sous forme de code ;

- les URL de site web ;

- les codes postaux de tout type.

Chaque générateur peut être configuré pour forcer sa sortie en mode texte ou en mode numérique. Il est ainsi possible d'utiliser un générateur de float pour remplir un champ de type chaîne ou bien un générateur Bit forcer en numérique avec les valeurs 0/1 par exemple pour remplir un champ entier.

Comme on le voit ici, la liste des fonctionnalités est vraiment énorme et devrait séduire aussi bien les développeurs indépendants devant faire face à des situations très variées que les grandes équipes de développement ayant des besoins très pointus.

III - Démo

Il est possible de télécharger une démonstration complète à l'adresse suivante :
Démo DATAGEN

Vous pouvez accéder à toutes les explications (en français) et à l'achat en ligne à cette adresse : Documentation française et achat en ligne

IV - Notre avis…

Ce produit est réellement séduisant, tant par ses fonctionnalités, sa simplicité d'utilisation et son prix raisonnable. À notre sens il devrait faire partie de la panoplie de tout développeur professionnel soucieux de tester correctement ses applications et prévoir les différentes volumétries auxquelles ses applications seront susceptibles d'être confrontées.