Les tests de base de données comprennent l'exécution de la validité des données, les tests d'intégrité des données, le contrôle des performances liées à la base de données et le test des procédures, des déclencheurs et des fonctions de la base de données.

Il existe plusieurs raisons pour lesquelles les tests de base de données sont effectués. Il est nécessaire d'effectuer une vérification de l'intégrité, de la validation et de la cohérence des données sur la base de données car le système backend est responsable du stockage des données et est accessible à des fins multiples.

Certaines des raisons courantes pour lesquelles il faut effectuer des tests de base de données sont les suivantes:

  • Pour faciliter la complexité des appels au backend de la base de données, les développeurs augmentent l'utilisation de View et Stored Procédures.

  • Celles-ci Stored procédures et Viewscontiennent des tâches critiques telles que l'insertion des détails du client (nom, coordonnées, etc.) et des données de vente. Ces tâches doivent être testées à plusieurs niveaux.

  • Le test de la boîte noire effectué sur le front-end est important, mais il est difficile d'isoler le problème. Les tests au niveau du système backend augmentent la robustesse des données. C'est pourquoi les tests de base de données sont effectués sur le système principal.

  • Dans une base de données, les données proviennent de plusieurs applications et il est possible que des données nuisibles ou incorrectes soient stockées dans la base de données. Par conséquent, il est nécessaire de vérifier régulièrement les composants de la base de données. En outre, l'intégrité et la cohérence des données doivent être vérifiées régulièrement.

Les étapes à suivre lors du test de la base de données sont les suivantes:

  • Les données contenues dans la base de données doivent être vérifiées.
  • Vérifiez si les contraintes sont maintenues.
  • La performance des procédures et l'exécution des déclencheurs doivent être vérifiées.
  • L'annulation et la validation de la transaction doivent être vérifiées.

Sur la base de la fonction et de la structure d'une base de données, les tests DB peuvent être classés dans les catégories suivantes -

  • Structural Database testing - Il traite du test des tables et des colonnes, des tests de schéma, des procédures stockées et des tests de vues, de la vérification des déclencheurs, etc.

  • Functional Testing- Il s'agit de vérifier la fonctionnalité de la base de données du point de vue de l'utilisateur. Les tests fonctionnels les plus courants sont les tests en boîte blanche et en boîte noire.

  • Nonfunctional Testing - Cela implique des tests de charge, des tests de risque dans la base de données, des tests de résistance, une configuration système minimale et des performances de la base de données.

Les outils les plus courants utilisés pour effectuer des tests de procédures stockées sont LINQ, SP Test tool, etc.

Les jointures sont utilisées pour connecter deux ou plusieurs tables de manière logique. Les types courants de jointures incluent: jointure interne, jointure non équidistante, jointure externe, jointure automatique et jointure croisée.

Vous pouvez joindre une seule table à elle-même. Dans ce cas, vous utilisez la même table deux fois.

Step 1 - Connectez-vous à la base de données

db_connect(query1 DRIVER {drivername};SERVER server_name;UID uidname;
   PWD password;DBQ database_name );

Step 2 - Exécuter la requête de la base de données -

db_excecute_query (write the required query that is to execute); Specify the appropriate condition

Step 3 - Déconnectez la connexion à la base de données en utilisant

db_disconnect(query);

À l'aide des points de contrôle de la base de données de sortie, les options de requêtes manuelles SQL doivent être sélectionnées. Ici, la requête de sélection peut être écrite.

Tout d'abord, vérifiez l'exigence de la procédure stockée. L'étape suivante consiste à vérifier si les index, jointures, suppressions, mises à jour sont corrects par rapport aux tables mentionnées dans la procédure stockée.

Ensuite, effectuez les tâches suivantes -

  • Validez le nom de la procédure appelante, les paramètres d'appel et les réponses attendues pour différents ensembles de paramètres d'entrée.

  • Exécutez la procédure avec TOAD ou MySQL ou l'Analyseur de requêtes.

  • Réexécutez les procédures disponibles en envoyant différents paramètres et comparez les résultats aux valeurs attendues.

  • En conclusion du processus, automatisez les tests avec WinRunner.

Le testeur doit appeler la procédure stockée dans la base de données à l'aide de la commande EXEC. Si des paramètres sont requis, ils doivent être passés. Différentes valeurs de paramètres doivent être transmises pour confirmer si la procédure stockée est exécutée ou non. Lors de l'appel de cette commande, il doit vérifier et vérifier la nature et le comportement de la base de données.

Example - Si la procédure stockée est écrite pour remplir une table, les valeurs de la table doivent être vérifiées.

Nous avons trois types d'instructions SQL -

  • Langage de manipulation de données (DML)
  • Langage de définition de données (DDL)
  • Langage de contrôle des données (DCL)

Les instructions DDL sont utilisées pour définir la structure ou le schéma de la base de données. Quelques exemples -

  • CREATE - pour créer des objets dans la base de données

  • ALTER - modifie la structure de la base de données

  • DROP - supprimer des objets de la base de données

Les opérateurs sont utilisés pour spécifier des conditions dans une instruction SQL et pour servir de conjonctions pour plusieurs conditions dans une instruction.

  • Opérateurs arithmétiques
  • Comparaison / Opérateurs relationnels
  • Opérateurs logiques
  • Définir les opérateurs
  • Opérateurs utilisés pour annuler les conditions

Union est utilisée pour combiner les résultats de deux ou plusieurs instructions Select. Cependant, cela éliminera les lignes en double. Union est un opérateur fixe.

Unionest utilisé pour combiner les résultats de deux ou plusieurs instructions Select. Cependant, cela éliminera les lignes en double

Union All L'opération est similaire à Union, mais elle montre également les lignes en double.

Les déclencheurs sont utilisés pour maintenir l'intégrité de la base de données. Pour vérifier que le déclencheur est déclenché ou non, vous pouvez archiver les journaux d'audit.

Les déclencheurs ne peuvent pas être appelés à la demande. Ils sont invoqués lorsqu'une action associée (insertion, suppression et mise à jour) se produit sur la table sur laquelle ils sont définis. Les déclencheurs sont utilisés pour appliquer les règles métier, l'audit et également pour les contrôles d'intégrité référentielle.

Tout d'abord, obtenez l'exigence fonctionnelle. Ensuite, comprenez la structure de la table, les jointures, les curseurs et les déclencheurs, la procédure stockée utilisée et d'autres paramètres. Ensuite, vous pouvez écrire un cas de test avec des valeurs différentes comme entrée pour ces objets.

Le test de base de données implique le test de composants back-end qui ne sont pas visibles pour les utilisateurs. Il comprend des composants de base de données et des systèmes de SGBD tels que MySQL et Oracle.

Les tests frontaux consistent à vérifier les fonctionnalités d'une application et de ses composants tels que des formulaires, des graphiques, des menus, des rapports, etc.

Le processus de test de base de données est similaire au test d'autres applications. Les tests DB peuvent être décrits avec les processus clés suivants -

  • Mise en place de l'environnement
  • Lancer un test
  • Vérifiez le résultat du test
  • Valider selon les résultats attendus
  • Rapporter les résultats aux parties prenantes respectives

Diverses instructions SQL sont utilisées pour développer les cas de test. L'instruction SQL la plus courante utilisée pour effectuer des tests de base de données est l'instruction select. En dehors de ces diverses instructions DDL, DML, DCL peuvent également être utilisées.

Example - Créer, insérer, sélectionner, mettre à jour, etc.

Une vue est une table qui n'existe pas vraiment en elle-même mais qui est à la place dérivée d'une ou de plusieurs tables de base. En d'autres termes, il n'y a pas de fichier stocké qui représente directement la vue au lieu d'une définition de vue est stockée dans le dictionnaire de données.

La croissance et la restructuration des tables de base ne se reflètent pas dans les vues. Ainsi, la vue peut isoler les utilisateurs des modifications de la base de données. Par conséquent, tient compte de l'indépendance des données logiques.

Il spécifie les vues utilisateur et leurs mappages avec le schéma conceptuel.

C'est un processus de décomposition d'une table en plusieurs tables sans perdre aucune information. La normalisation est effectuée pour atteindre les objectifs suivants -

  • Pour minimiser la redondance.
  • Pour minimiser les anomalies d'insertion, de suppression et de mise à jour.

L'indexation est une technique permettant de déterminer la rapidité avec laquelle des données spécifiques peuvent être trouvées. Il est utilisé pour l'optimisation des performances des requêtes. L'indexation peut être des types suivants -

  • Indexation du style de recherche binaire
  • Indexation B-Tree
  • Indexation de liste inversée
  • Table résidente en mémoire
  • Indexation de table

SQL est un langage de requête structurée spécialement conçu pour les opérations d'accès aux données sur des structures de base de données relationnelles normalisées.

La principale différence entre SQL et les autres langages de programmation conventionnels est que les instructions SQL spécifient quelles opérations sur les données doivent être effectuées plutôt que comment les exécuter.

Les procédures stockées sont utilisées pour effectuer une opération définie par l'utilisateur. Une procédure stockée peut avoir un ensemble d'instructions SQL composées. Une procédure stockée exécute les commandes SQL et renvoie le résultat au client.

PL / SQL utilise des curseurs pour toutes les instructions d'accès aux informations de base de données. Le langage prend en charge l'utilisation de deux types de curseurs - implicites et explicites.

Cold Backup- Le retour à froid est connu comme la sauvegarde des fichiers de base de données, des journaux de rétablissement et du fichier de contrôle lorsque l'instance est arrêtée. Il s'agit d'une copie de fichier, généralement du disque directement sur bande. Vous devez arrêter l'instance pour garantir une copie cohérente.

Si une sauvegarde à froid est effectuée, la seule option disponible en cas de perte de fichiers de données est de restaurer tous les fichiers de la dernière sauvegarde. Toutes les modifications effectuées après la dernière sauvegarde sont perdues.

Hot Backup- Certaines bases de données ne peuvent pas s'arrêter lors de la création d'une copie de sauvegarde des fichiers, donc la sauvegarde à froid n'est pas une option disponible. Pour ces types de bases de données, nous utilisons une sauvegarde à chaud.

La sous-requête SQL est un moyen d'interroger deux ou plusieurs tables en même temps. La sous-requête elle-même est une instruction SQL SELECT contenue dans la clause WHERE d'une autre instruction SQL SELECT et séparée en étant placée entre parenthèses. Certaines sous-requêtes ont des structures de jointure SQL équivalentes, mais les sous-requêtes corrélées ne peuvent pas être dupliquées par une jointure

Dans un tel cas, vous devez tester les aspects suivants -

  • Dépendances à valeurs multiples
  • Dépendances fonctionnelles
  • Clés des candidats
  • Clés primaires
  • Clés étrangères

Vous pouvez accéder à la base de données et exécuter une requête SQL appropriée. Dans WinRunner, vous pouvez utiliser la fonction de point de contrôle de base de données. Si l'application fournit une fonction d'affichage, vous pouvez vérifier la même chose depuis le front-end.

Les tests basés sur les données sont définis comme un processus de test d'automatisation où l'application sera testée avec plusieurs données de test. C'est simple et facile que de retester où le testeur est juste assis devant le système et entre différentes nouvelles valeurs d'entrée manuellement à partir de l'interface frontale.

Une fois que vous exécutez les cas de test et trouvez les défauts qui ont déjà été détectés et corrigés. La ré-exécution du même test avec des valeurs d'entrée différentes pour confirmer que le défaut d'origine a été supprimé avec succès est appelée nouveau test.

Le nouveau test est également appelé test basé sur les données avec une petite différence -

  • Retesting - Il s'agit d'un processus de test manuel tandis que les tests d'application sont effectués avec un nouvel ensemble de données.

  • Data-driven Testing- Il s'agit d'un processus de test d'automatisation où l'application sera testée avec plusieurs données de test. C'est simple et facile que de retester où le testeur est juste assis devant le système et entre différentes nouvelles valeurs d'entrée manuellement à partir de l'interface frontale.

Il existe quatre types de tests basés sur les données:

  • Soumission dynamique des données de test via le clavier
  • Tests pilotés par les données via des fichiers plats .txt, .doc
  • Tests pilotés par les données via des objets frontaux
  • Tests pilotés par les données via feuille Excel

Le test de performance est une technique de test logiciel permettant de déterminer les performances d'un système en termes de vitesse, de sensibilité et de stabilité sous une charge de travail importante.

Les points clés suivants doivent être pris en compte lors de l'exécution des tests de récupération de base de données -

  • Durée pendant laquelle des changements ou des modifications se produisent dans le système de base de données.

  • La période pendant laquelle vous voulez que votre plan de récupération soit mené.

  • La sensibilité des données dans le système de base de données. Plus les données sont critiques, plus vous devrez tester le logiciel régulièrement.

Les outils suivants sont utilisés pour générer des données de test -

  • Usine de données
  • Générateur de données DTM
  • Données Turbo

Deux types de sauvegarde peuvent être utilisés -

  • Physical Backups- la sauvegarde physique comprend la prise de retour à l' aide de 3 rd outils de sauvegarde du parti comme le dos net Veritas, IBM Tivoli Manager ou les sauvegardes du gestionnaire d'utilisateur à l' aide des utilitaires OS.

  • Logical Backups - La sauvegarde logique de la base de données comprend la reprise des objets logiques comme les tables, les index, les procédures, etc.

Un outil courant pour effectuer la sauvegarde des données est Oracle Recovery Manager (RMAN), qui est un utilitaire Oracle permettant de sauvegarder la base de données.

Les actions suivantes sont effectuées lors des tests de récupération de base de données -

  • Test du système de base de données
  • Test des fichiers SQL
  • Test de fichiers partiels
  • Test de la sauvegarde des données
  • Test de l'outil de sauvegarde
  • Test des sauvegardes de journaux

Les tests de sécurité de la base de données sont effectués pour trouver les trous de boucle dans les mécanismes de sécurité et également pour trouver les vulnérabilités ou les faiblesses du système de base de données.

Des tests de sécurité de la base de données sont effectués pour vérifier les aspects suivants -

  • Authentication
  • Authorization
  • Confidentiality
  • Availability
  • Integrity
  • Resilience

La menace d'injection SQL est le type d'attaque le plus courant dans un système de base de données où des instructions SQL malveillantes sont insérées dans le système de base de données et exécutées pour obtenir des informations critiques du système de base de données. Cette attaque tire parti des failles dans la mise en œuvre des applications utilisateur. Pour éviter cela, les champs de saisie utilisateur doivent être traités avec soin.

Les outils suivants peuvent être utilisés pour effectuer des tests de sécurité de base de données: Zed Attack Proxy, Paros, Social Engineer Toolkit, Skipfish, Vega, Wapiti et Web Scarab.

Les défis communs auxquels on est confronté lors de l'exécution des tests de base de données sont les suivants:

  • La portée du test est trop grande
  • Base de données de test réduite
  • Changements dans la structure de la base de données
  • Plans de test complexes
  • Bonne compréhension de SQL