Partager via


Génération de données de test pour des bases de données à l'aide de générateurs de données

Vous pouvez utiliser Visual Studio Premium pour créer des données de test nécessaires à la vérification du comportement des objets de base de données de votre projet de base de données. Vous pouvez générer des données qui sont appropriées pour le schéma de la base de données, mais non liées aux données de production. Cette approche peut vous permettre de protéger la confidentialité ou la sécurité des données de production.

Définissez un plan de génération de données qui spécifie les détails concernant la génération des données pour des tables et des colonnes spécifiques. Pour chaque colonne, spécifiez un générateur de données qui produit des données d'un type particulier.

Lorsque vous créez un plan de génération de données dans un projet de base de données, le plan est basé sur le schéma du projet. Si vous créez un plan de génération de données et que le schéma est modifié, vous êtes alors invité à mettre le plan à jour.

Important

Si vous ne mettez pas le plan de génération de données à jour en fonction des modifications du schéma, vous ne pouvez pas continuer à modifier le plan. Vous ne pouvez que fermer et rouvrir le plan de génération de données pour afficher à nouveau l'invite.

Lorsque vous exécutez des tests unitaires de base de données, vous pouvez spécifier un autre plan de génération de données pour chaque projet de test. Par conséquent, vous pouvez initialiser la base de données à un état différent pour chaque groupe de tests.

Générateurs de données

Visual Studio Premium inclut plusieurs générateurs de données intégrés pour la génération de différents genres de données. Par exemple, le générateur d'entiers fournit des valeurs entières aléatoires, le générateur de chaînes fournit des chaînes aléatoires et le générateur d'expressions régulières fournit des chaînes qui correspondent à un modèle que vous spécifiez. Pour plus d'informations et pour obtenir la liste complète des générateurs de données standard, consultez Types de générateurs de données standard et Spécifier les détails de génération de données pour une colonne.

Si les générateurs inclus à Visual Studio Premium ne fournissent pas de données qui répondent à vos exigences, vous pouvez créer des générateurs personnalisés. Par exemple, il se peut que vous souhaitiez créer un générateur de données personnalisé si votre base de données contient une colonne qui possède une contrainte de validation qui fait référence à une autre colonne. Pour plus d'informations, consultez Générer des données de test spécialisées à l'aide d'un générateur de données personnalisé.

Vous pouvez recevoir des erreurs si vous tentez de générer des données pour une table qui contient des colonnes SPARSE et un jeu COLUMN SET. Pour plus d'informations, consultez Dépannage des problèmes liés à la génération de données.

Plans de génération de données dans un environnement de travail en équipe

Un plan de génération de données est un fichier XML qui contient des informations sur le schéma de base de données ainsi que des informations de configuration qui contrôlent la génération de données pour chaque colonne de chaque table que vous spécifiez. Un plan de génération de données pour une base de données qui contient environ 40 tables peut afficher une taille d'approximativement 8 Mo et contenir plus de 100 000 lignes.

Vous ne pouvez pas automatiquement fusionner des modifications dans un fichier .dgen à l'aide du contrôle de version Team Foundation ou d'un autre système de contrôle de version. Le processus que vous devez utiliser pour fusionner manuellement des fichiers XML volumineux est difficile et sujet aux erreurs. Vous pouvez réduire les problèmes liés à votre plan de génération de données grâce à la validation exclusive du plan lorsque vous devez le modifier.

Sécurité des générateurs de données

Vous pouvez partager des plans de génération de données et personnaliser des générateurs de données dans un environnement de travail en équipe. Avant de partager ou d'utiliser des fichiers de génération de données partagés, vous devez tenir compte des problèmes de sécurité suivants :

  • Informations de schéma dans les plans de génération de données
    Lorsque vous créez un plan de génération de données, le fichier .dgen contient le schéma des tables, ce qui peut être un secret professionnel sensible. Lorsque vous partagez un fichier .dgen, la personne avec qui vous partagez le fichier peut consulter votre schéma. Vous devez partager des plans de génération de données uniquement avec des sources fiables.

  • Code malveillant dans les plans de génération de données
    Lorsqu'un plan de génération de données contient un générateur lié aux données, vous écrivez une requête Transact-SQL qui s'exécute lors de l'exécution du plan. Cette approche permet à un Transact-SQL arbitraire de s'exécuter à partir d'un plan de génération de données. Vous devez obtenir des plans de génération de données uniquement à partir de sources fiables et devez prévenir les utilisateurs finals de ne pas exécuter les plans de génération de données en provenance de sources non fiables.

  • Informations de connexion et générateurs de données personnalisés
    Tous les générateurs de données personnalisés ont accès à la chaîne de connexion de base de données au moment de l'exécution. Un générateur personnalisé malveillant pourrait exposer les informations de la chaîne de connexion. Vous devez obtenir des générateurs de données personnalisés uniquement à partir de sources fiables et devez prévenir les utilisateurs finals de ne pas utiliser ceux en provenance de sources non fiables.

  • Code malveillant dans les générateurs de données personnalisés
    Les générateurs de données personnalisés sont des classes qui peuvent contenir du code arbitraire. Lorsque vous utilisez un générateur de données personnalisé, il est exécuté avec les mêmes autorisations que l'utilisateur actif. Cette approche peut exécuter du code malveillant en mode FullTrust. Vous devez obtenir des générateurs de données personnalisés uniquement à partir de sources fiables et devez prévenir les utilisateurs finals de ne pas utiliser ceux en provenance de sources non fiables.

  • Code malveillant dans les programmes d'installation de générateurs de données personnalisés
    Vous pouvez créer des projets de déploiement pour installer les générateurs de données personnalisés. Les projets de déploiement peuvent contenir du code arbitraire. Lorsque vous exécutez un programme d'installation de générateur de données personnalisé, il s'exécute avec des autorisations élevées. Cette approche peut exécuter du code malveillant avec des autorisations élevées. Vous devez obtenir des programmes d'installation de générateurs de données personnalisés uniquement à partir de sources fiables et devez prévenir les utilisateurs finals de ne pas exécuter de programmes d'installation de générateurs de données personnalisés en provenance de sources non fiables.

Tâches courantes

Tâches courantes

Contenu de support

Apprendre en faisant : vous pouvez suivre une première procédure pas à pas pour vous familiariser avec la création et l'exécution d'un test unitaire de base de données simple.

Créer un plan de génération de données : créez un plan de génération de données pour chaque projet de test unitaire ou pour les tests d'application spécifiques. Vous pouvez également définir un plan de génération de données qui a comme valeur par défaut toutes les colonnes pour réutiliser les données d'une autre base de données que vous spécifiez.

Mettre à niveau un plan de génération de données d'une version antérieure : vous pouvez utiliser des plans de génération de données que vous avez créés avec une version antérieure de Visual Studio Premium. Toutefois, vous devez mettre le plan à niveau immédiatement après l'avoir ouvert.

Spécifier les tables que vous souhaitez générer : vous pouvez générer des données pour toutes les tables ou uniquement pour celles que vous spécifiez. Pour chaque table, vous pouvez spécifier plusieurs lignes à générer. Vous pouvez également générer des lignes dans un quotient basé sur le nombre de lignes que vous générez pour une autre table.

Configurer la génération des données pour chaque colonne dans les tables que vous spécifiez : spécifiez le type de générateur de données pour chaque colonne. Vous pouvez également fournir des contraintes sur la plage de valeurs de données. Pour les générateurs de données plus avancés, vous pouvez fournir des informations de configuration supplémentaires pour encore affiner les données que vous générez.

Afficher un aperçu des données générées : avant d'écrire des données dans votre base de données, vous pouvez en afficher un aperçu pour les tables incluses à votre plan de génération de données. En affichant un aperçu des données, vous pouvez adapter votre plan de génération de données sans devoir générer de données de manière itérative.

Générer des données de test : après avoir affiché un aperçu et vérifié les données à générer, vous pouvez exécuter le plan de génération de données pour générer les données de test. Vous pouvez également configurer votre projet de test unitaire afin que les données soient générées automatiquement, chaque fois que vous exécutez vos tests unitaires.

Archiver des plans de génération de données : exactement comme vous devez archiver vos tests unitaires grâce à un contrôle de version pour pouvoir les partager avec votre équipe, vous devez également archiver vos plans de génération de données.

Modifier les options et les valeurs par défaut des générateurs de données : vous pouvez spécifier des valeurs par défaut pour la valeur aléatoire de départ et le nombre de lignes à insérer. Vous pouvez également spécifier des options qui contrôlent les aspects des générateurs de données, tels que le nombre de lignes à afficher dans la fenêtre d'aperçu et le nombre maximal d'erreurs acceptables qui peuvent être affichées pendant la génération des données pour une table individuelle avant l'échec de l'opération.

Résoudre les problèmes : vous pouvez apprendre à résoudre les problèmes courants liés à la création et à l'utilisation des plans de génération de données.

Scénarios connexes