Générer des jeux de tests pour les développeurs à partir des bases de production

Date de publication : 30 juin 2009 , Date de mise à jour : 11 août 2009 (Document édité pour mises à jour des URLs)

Par Whiler (Mes contributions) (Blog)
 

Régulièrement, les modèles et les données évoluent, impactant des changements sur les différentes réplications des bases, en développement, test, production, ...
Afin de garantir l'utilisation de données qui soient fidèles à la production, pour être dans un contexte similaire, dans ce tutoriel, nous allons générer des données pour une base de développement/recette à partir d'une base de production, tout en masquant les données jugées sensibles.
Pour cela, nous allons utiliser fr Change Manager 5.1, de la société fr Embarcadero, outil pour la gestion du changement des bases de données.

               Version PDF (Miroir)   Version hors-ligne (Miroir)

I. Avant de commencer...
II. Téléchargement de Change Manager
III. Installation de Change Manager
III-A. Installation des fichiers
III-B. Enregistrement
IV. Enregistrement des sources de données
IV-A. Ajout d'une source de données Oracle 10g
IV-B. Ajout d'une source de données Microsoft SQL Server
V. Paramétrage pour la création des données
VI. Génération des données sur la base de développement
VII. Vérification des données générées
VIII. Automatisation pour une génération planifiée
IX. Liens utiles
X. Conclusion


I. Avant de commencer...

Pour mettre en pratique ce tutoriel, nous avons au minimum besoin de :

  • une base de données (IBM® DB2® pour LUW, Microsoft® SQL Server, Oracle® et/ou Sybase®)
  • les clients associés aux bases de données utilisées
  • Embarcadero Change Manager Ultimate Edition (Masquage des données uniquement disponible dans cette édition)
  • un poste de travail (500 Mo d'espace disque, 1 Go de mémoire) (en Informations complémentaires)
Concrêtement, nous allons utiliser :

  • une base de données Oracle 10g
  • Client pour Oracle 10g
  • une base de données Microsoft SQL Server
  • Client natif pour Microsoft SQL Server
  • Embarcadero Change Manager Ultimate Edition avec une version d'évaluation de 14 jours
info Il existe 4 éditions différentes d'Embarcadero Change Manager : Personal, Standard, Professional & Ultimate.
Les différences entre les éditions sont décrites sur en cette page.

II. Téléchargement de Change Manager

Pour télécharger Embarcadero Change Manager, il suffit d'aller sur le site suivant : en Télécharger une versions d'évaluation de Change Manager

info Une licence d'évaluation est valide pour une durée de 14 jours à compter du téléchargement.
On clique sur le lien Téléchargement correspondant à son système d'exploitation ; dans ce tutoriel, on utilisera WindowsWindows.
On accepte les restrictions d'exportation (Agree), et le téléchargement se lance.
Sur la page Web, on spécifie son utilisateur en EDN ou pour les nouveaux, on en crée un, afin de recevoir une licence d'évaluation :

Sign-in
Sign-in
On vérifie ses emails afin de trouver un email intitulé, "Enregistrement de produit Embarcadero", envoyé par "Embarcadero-licensing [activation@embarcadero.com]". On procède ensuite à l'installation du produit...

warning Certains clients de messagerie peuvent considérer cet email comme du spam et le classer dans le répertoire des courriers indésirables / spams !
Si vous ne le voyez pas arriver dans les 5 minutes, pensez à vérifier...

III. Installation de Change Manager


III-A. Installation des fichiers

Après avoir télécharger le produit on exécute le programme d'installation : cm51

InstallAnywhere décompresse les fichiers et le programme d'installation affiche son premier écran :

Introduction
Introduction
On clique sur Next :

Licence
Licence
On accepte les termes de la licence, on clique sur Next :

Type
Type d'installation
Change Manager peut s'installer de deux façons :

  • Application autonome
  • Extension dans un Eclipse existant (3.3 - Europa)
Dans ce tutoriel, on installera l'application autonome, on clique sur Next :

Répertoire
Répertoire d'installation
Après avoir choisi le répertoire dans lequel on veut installer Change Manager, on clique sur Next :

Raccourcis
Raccourcis
On choisit les raccourcis souhaités et on clique sur Next :

Résumé
Résumé de l'installation
warning On vérifie les paramètres d'installation puis on lance l'installation en cliquant sur Install :
Installation en cours
Installation en cours
Une fois l'installation terminée, cet écran s'affiche :

Installation terminée
Installation terminée
On coche la case pour lancer Embarcadero Change Manager automatiquement et on clique sur Done.
L'installation est alors terminée. On peut passer à l'enregistrement...


III-B. Enregistrement

Lorsqu'Embarcadero Change Manager se lance pour la première fois, un expert permettant l'enregistrement s'exécute :

Registration
Expert d'enregistrement
On renseigne les différents champs avec les informations reçues par email, et on clique sur Register.
L'interface d'Embarcadero Change Manager se lance...

Change Manager
Embarcadero Change Manager 5.1

IV. Enregistrement des sources de données

Avec la version 5.1, lorsque Change Manager se lance, un expert vous permet d'effectuer les tâches courantes, d'accéder très rapidement à vos précédents travaux, d'importer les sources d'une version précédente, ...

Démarrage
Expert au démarrage de Change Manager
Pour ce tutoriel, nous allons manuellement ajouter deux sources de données distinctes :

  • 1 source pour une base de données Oracle 10g de production contenant les données réelles
  • 1 source pour la base de données Microsoft SQL Server utilisée par les développeurs/testeurs
Pour manuellement ajouter nos sources de données, nous fermons l'expert de bienvenue en cliquant sur Close.


IV-A. Ajout d'une source de données Oracle 10g

Afin d'ajouter une nouvelle source de données, nous allons utiliser le menu contextuel du répertoire Managed Data Sources. Pour cela, on va sur l'onglet Data Source Explorer :

Datasource-Explorer
Onglet Data Source Explorer
On fait un click avec le bouton droit sur le répertoire Managed Data Sources et on clique sur New / Data Source :

new-datasource
Menu contextuel pour créer une nouvelle source de données
Un expert pour nous guider lors de la création de cette nouvelle source de données se lance alors. Notre base de production étant sur Oracle 10g, nous choisissons ce type de base de données.
Nous cochons également la case pour que Change Manager nous crée un répertoire par type de base :

Datasource-wizard
Nouvelle source de données
Les écrans suivant varient en fonction du type de base de données choisi. On constate par exemple qu'en ayant choisi Oracle, on a le choix entre l'utilisation du TNS Name ou de renseigner directement les différentes informations :

oracle-parameters
Paramétrage d'une nouvelle source de données Oracle
warning Pour accéder à un type de base de données, le client de cette base doit être installé sur la machine qui héberge Embarcadero Change Manager (dans le cadre de ce tutoriel, un client Oracle 10g et un client Microsoft SQL Server sont installés).
On clique sur le bouton Test Connection et si vos paramètres sont correctement renseignés, vous devez obtenir cet écran :

connexion-reussie
Connexion réussie
Il ne reste plus qu'à cliquer sur le bouton Finish pour finaliser la création de cette nouvelle source de données et la visualiser ainsi dans l'explorateur des sources de données :

datasource-ajoutee
Nouvelle source de données Oracle 10g ajoutée
Nous pouvons maintenant procéder à l'enregistrement de la source de données Microsoft SQL Server...


IV-B. Ajout d'une source de données Microsoft SQL Server

Pour procéder à l'ajout de la source de données de développement, on peut procéder de la même manière que pour la première. Nous allons opérer différemment.

Nous allons cliquer sur le menu : File / New / Other...

file-new-other
Menu File / New / Other...
Puis nous allons choisir l'élément Data Source dans le répertoire SQL Development :

new-datasource-wizard
Choix de l'expert pour la création d'une nouvelle source de données
On retrouve alors le même écran que lors de l'enregistrement de la première source de données :

Datasource-wizard
Nouvelle source de données
On définit les différents paramètres spécifiques à Microsoft SQL Server :

mssql-parameters
Paramétrage d'une nouvelle source de données Microsoft SQL Server
On valide que les paramètres sont corrects en cliquant sur le bouton Test Connection :

connexion-reussie
Connexion réussie
Puis on clique sur le bouton Finish pour visualiser les deux sources maintenant configurées dans Embarcadero Change Manager :

2-datasources
Sources de données enregistrées
info Comme j'ai coché la case pour la création d'un répertoire par type de base, on constate la création des sous-répertoires par type de base (Oracle & Microsoft SQL Server).

V. Paramétrage pour la création des données

Maintenant que nous avons configuré nos deux sources de données, nous allons créer un job afin de copier les données de notre serveur de production sur notre serveur de développement. Nous allons également paramétrer ce job afin que cette copie, ne contiennent pas de données sensibles, mais des données similaires, utilisables par les développeurs/testeurs.

Pour cela nous créons un nouveau job de comparaison des données, Data Comparison Job. De nombreuses méthodes existent pour créer un nouveau job. Nous allons le créer en utilisant le menu principal de Change Manager et en cliquant sur File / New / Data Comparison Job :

new-data-comparison-job
Créer un nouveau job de comparaison des données
Un nouvel expert s'affiche dans la partie centrale. Il se décompose au départ en 5 parties principales : Overview (vue d'ensemble), Options, Mapping (Mappage des données), Notifications, History (Historique). Une 6ème partie affichera les résultats (Results) après l'exécution du job.

On donne un nom à notre job, éventuellement une description.
Puis on spécifie les deux sources de données à utiliser ainsi que la base de données sur laquelle on souhaite effectuer le traitement (GIM dans ce tutoriel) :

data-copy-overview
Paramétrage du nom du job et des sources de données
On clique ensuite sur l'onglet Options.
On coche la case Automatically Synchronize qui va nous permettre, non seulement d'automatiser la synchronisation, mais également d'utiliser les règles de masquage lors de la future copie.

data-copy-options
Paramétrage de la synchronisation automatique
idea Parcourez les différentes options pour voir les possibilités proposées lors de la copie des données.
On clique ensuite sur l'onglet Mapping.
Vous pouvez ajouter d'autres bases si vous le souhaitez ou on clique directement sur celle que l'on a choisi dans le premier écran, afin de la sélectionner pour faire apparaître le lien Yes, retrieve the objects in this pair dans la seconde partie du cadre (Table Mapping) :

data-copy-mapping-databases
Sélection de la base pour pouvoir afficher ses tables
On clique sur le lien Yes, retrieve the objects in this pair et Change Manager récupère les différentes tables et les affiche :

data-copy-mapping-tables
Sélection de la table pour pouvoir afficher ses colonnes
On clique sur le lien View Column Mapping pour afficher les différentes colonnes et masquer les données sensibles :

data-copy-mapping-columns
Mappage des colonnes de la table CLIENT
Nous choisissons de mélanger les données entre les différentes lignes de la table de production pour les prénoms et les noms dans la table de la plateforme de développement ainsi que de générer une valeur aléatoire pour les numéros de téléphones :

data-copy-masking-data
Masquage des colonnes sensibles de la table CLIENT de production

masking-data-options
Options pour les règles de masquage des données
 

Pour le masquage des données, il existe 4 options :
  • None : Recopie la donnée d'origine
  • Randomize : Génère une donnée aléatoire dans le même format que les données d'origine
  • Shuffle : Mélange les lignes
  • Use Default : Utilise le paramètre de masquage défini sur la table elle-même
Voici quelques courts exemples pour illustrer :

Numéro de ligneSourceNoneRandomizeShuffle
1AAAAAAB4ZQP7BBB18W
2BBBBBBS871D0AAABBB
3C1FC1F1S6DB418W123
41231238W932DC1FAAA
518W18WTY81S6123C1F
Numéro de ligneSourceNoneRandomizeShuffle
1123123423612789334
2456456410384456123
3789789231619124456
4124124941457334789
5334334651314123124
Numéro de ligneSourceNoneRandomizeShuffle
1123-456123-456845-124612-941123-456124-951
2124-951124-951107-035384-078124-951123-456
Lorsque l'on a terminé les différents mappages, on clique sur l'onglet Notification si on souhaite être notifié lors de l'exécution du job.
Nous allons simplement paramétrer le job pour que celui-ci génère des fichiers afin que nous puissions contrôler son exécution :

data-copy-notification
Paramétrage des notifications
Nous demandons la génération de fichiers lorsque nous utiliserons un batch en ligne de commande uniquement, quelque soit le résultat. Les fichiers générés seront systématiquement un état sous forme de PDF, et des fichiers de logs en cas de problème.

Nous sommes prêts à générer les données sur la base de développement...
L'onglet History comporte une liste actuellement vide puisque l'on n'a encore jamais exécuté le job.


VI. Génération des données sur la base de développement

Pour exécuter le job que l'on vient de paramétrer, on clique sur le bouton Run Job, situé en haut à droite run-job-button pour lancer la synchronisation entre les deux bases de données. Un message de confirmation vous demande de confirmer avant que toutes les données d'origine de la base de développement ne soient supprimées (dans le contexte de ce tutoriel, seule la table CLIENT est mappée, et sera donc la seule impactée) :

synchronize-confirmation
Confirmation avant la suppression des données mappées dans la source de données Destination
warning Soyez certain d'effectuer vos manipulations sur les bonnes bases de données !
Lorsque le transfert est terminé, on obtient le 6ème onglet Results avec les résultats :

synchronization-results
Résultats de la synchronisation
On peut cliquer sur View Report afin de générer un état :

custom-report
Etat personnalisé
On sauvegarde le job afin de pouvoir le réutiliser ultérieurement en cliquant sur l'icône en forme de disquette de la barre d'outils ou avec le menu principal de Change Manager (File / Save) :

save-job
Sauvegarder le job de comparaison des donnnées
On peut alors voir notre première sauvegarde apparaitre dans l'onglet History (Historique) :

history
Historique des sauvegardes

VII. Vérification des données générées

On a constaté dans les résultats du job que l'on vient d'exécuter que 5600 lignes avaient été générées.
Nous allons maintenant comparer les données entre ces deux bases pour visualiser les différences. Pour cela, nous allons créer un nouveau job de comparaison des données.
A partir du menu contextuel des comparaisons de données de la source de données de production, nous créons un nouveau job de comparaison des données :

contextual-menu-data-comparison-job
Nouveau job de comparaison des données
Paramétrage du job en fonction des besoins. Dans notre contexte, nous choisissons les mêmes sources de données & donnons un nom au job :

new-data-copy-overview
Paramétrage du nom du job et des sources de données
Le mappage par défaut convient et nous n'avons pas besoin de notification. Nous pouvons directement exécuter ce job et visualiser les résultats :

new-data-results
Résultats de la comparaison des données : Aucune ligne similaire
En cliquant sur le lien View, on fait apparaitre un onglet supplémentaire, Database Results. En choisissant la table que l'on avait précédemment synchronisée, on va pouvoir comparer côte-à-côte les lignes des deux bases de données :

data-database-results
Comparaison des données dans l'onglet Database Results
On constate que les prénoms et les noms sont mélangés, tandis que les numéros de téléphones :

data-database-results-phone
Numéros de téléphones aléatoires
... sont complètement aléatoires.

Nos données ainsi générées pour le développement sont parfaites. Nous allons maintenant pouvoir l'automatiser afin d'avoir régulièrement des données similaires à celles de production.

idea Embarcadero Change Manager permet également de comparer des schémas. On pourrait par conséquent également automatiser la modification des schémas avant la synchronisation des données...

VIII. Automatisation pour une génération planifiée

Notre premier job a généré les données que nous attendions. Nous allons donc automatiser celui-ci.
Pour cela, nous allons générer un script que l'on pourra exécuter en ligne de commande, donc sans avoir à lancer Change Manager manuellement. Plusieurs méthodes existent pour générer ce script en ligne de commande. Lorsque le job est ouvert, on peut par exemples, cliquer sur le bouton Generate Command Line ou à partir du menu contextuel du job dans l'explorateur de job (Job Explorer) :

context-menu-generate_command_line
Générer un script en ligne de commande
Un expert pour la génération du script se lance. Il permet de définir les états que l'on veut générer :

script-generation-wizard-report
Expert pour la génération de script en ligne de commande
... ainsi que le fichier (Commande DOS ou ANT) :

script-generation-wizard-file
Script en ligne de commande
Lorsque l'on clique sur le bouton Finish, le fichier est alors généré à l'emplacement préalablement choisi :

script-generation-file
Fichier généré
On peut automatiser ce script en le planifiant dans le planificateur des tâches de Windows par exemple.
Nous allons commencer par le tester à partir d'une invite de commande MS-DOS :

batch
Exécution en ligne de commande du job
Le script s'est parfaitement déroulé. Nous pouvons vérifié également un des états que nous avons paramétré lors de la génération du script :

report
Extrait de l'état HTML
Une fois le script planifié pour s'exécuter à intervalles réguliers, on a terminé !

scheduled-tasks
Tâches planifiées
info L'exécution du script en ligne de commande ne nécessite pas que l'interface de Change Manager soit lancée sur la machine.

IX. Liens utiles

Quelques liens pour obtenir davantage d'informations :


X. Conclusion

Durant ce tutoriel, nous aurons vu quelques-unes des fonctionnalités d'Embarcadero Change Manager, dont :

  • Création de sources de données (experts dédiés par type de source)
  • Job pour la synchronisation des données
  • Job pour la comparaison des données
  • Comparaison manuelle côte-à-côte des différences
  • Script pour la synchronisation automatique des données
De nombreuses autres fonctionnalités toutes aussi utiles sont également disponibles : pour les configurations, les schémas, l'archivage, la comparaison avec des références, ...
Regardez les vidéos du dernier en lien ! Même si votre anglais n'était pas des meilleurs, les images parlent souvent d'elles-mêmes. Ce tutoriel est fortement inspiré de l'une d'elles !



               Version PDF (Miroir)   Version hors-ligne (Miroir)

(1) (Document édité pour mises à jour des URLs)

Valid XHTML 1.0 TransitionalValid CSS!

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 © 2009 Whiler. 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. Cette page est déposée.

 
 
 
 
Partenaires

Hébergement Web