Test de base de données - Types
Sur la base de la fonction et de la structure d'une base de données, les tests DB peuvent être classés en trois catégories -
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 - Il implique des tests de charge, des tests de risque dans la base de données, des tests de résistance, des exigences système minimales et traite des performances de la base de données.
Test de base de données structurelle
Le test de base de données structurelle implique la vérification des composants de la base de données qui ne sont pas exposés aux utilisateurs finaux. Il implique tous les composants du référentiel, qui sont utilisés pour stocker les données et ne sont pas modifiés par les utilisateurs finaux. Les administrateurs de base de données ayant une bonne maîtrise des procédures stockées SQL et d'autres concepts effectuent normalement ces tests.
Sont discutés les composants courants testés en ce qui concerne les tests structurels -
Test de schéma / mappage
Il s'agit de valider les objets de l'application frontale avec le mappage d'objets de base de données.
Dans le test de schéma -
Il arrive parfois que les objets d'application de l'utilisateur final ne soient pas correctement mappés ou compatibles avec les objets de base de données. Par conséquent, il est nécessaire de vérifier la validation des différents formats de schéma associés aux bases de données.
Il est nécessaire de trouver les objets non mappés dans la base de données, comme les tables, les vues, les colonnes, etc.
Il existe divers outils sur le marché qui peuvent être utilisés pour effectuer le mappage d'objets dans les schémas.
Example - Dans Microsoft SQL Server, un testeur peut écrire des requêtes simples pour vérifier et valider les schémas dans la base de données.
Si le testeur souhaite apporter des modifications à une structure de table, il doit s'assurer que toutes les stored les procédures ayant cette table sont compatibles avec ce changement.
Test des procédures et vues stockées
Dans ce test, un testeur s'assure que l'exécution manuelle des procédures stockées et des vues génère le résultat requis.
Le testeur garantit -
S'il permet aux déclencheurs requis d'être exécutés comme prévu.
Si l'équipe de développement a couvert toutes les boucles et conditions en transmettant les données aux applications dans les procédures.
S'il existe des procédures stockées inutilisées dans la base de données.
Les opérations TRIM sont appliquées correctement lorsque les données sont extraites des tables requises dans la base de données.
Validation de l'intégration globale des modules de procédure stockée selon les exigences de l'application testée.
Les mécanismes de gestion des exceptions et des erreurs sont suivis.
Les outils les plus courants utilisés pour effectuer des tests de procédures stockées sont LINQ, SP Test tool, etc.
Test de déclenchement
Lors des tests de déclenchement, un testeur doit s'assurer que:
Si les conventions de codage sont suivies pendant la phase de codage des déclencheurs.
Voir les déclencheurs exécutés remplit les conditions requises.
Si le déclencheur met à jour correctement les données, une fois qu'elles ont été exécutées.
La validation de la fonctionnalité de déclenchement de mise à jour / insertion / suppression de l'application testée.
Test des tableaux et des colonnes
Les domaines clés couverts par ces tests sont:
Validation des types de données dans la base de données dans des valeurs de champ dans l'application frontale.
Validation de la longueur du champ de données dans la base de données à la longueur des types de données dans l'application.
Vérifier s'il existe des tables ou des colonnes non mappées dans la base de données à partir d'objets de champ d'application.
Les conventions de dénomination des tables et des colonnes de la base de données sont vérifiées, si elles sont conformes ou non aux exigences de l'entreprise.
La validation des clés et des index dans la base de données, c'est-à-dire que les clés primaires et étrangères dans les tables sont définies selon les besoins.
Vérifiez si les clés primaires et leurs clés étrangères correspondantes sont identiques dans deux tables.
Vérifiez que les caractéristiques uniques et NOT NULL des clés sont conservées.
La longueur et le type de données des clés et des index sont conservés conformément aux exigences.
Vérification du serveur de base de données
La vérification du serveur de base de données implique la vérification -
Si le serveur de base de données peut gérer le nombre attendu de transactions conformément aux exigences commerciales.
Si les détails de configuration des serveurs de base de données répondent aux exigences de l'entreprise.
Si l'autorisation de l'utilisateur est maintenue conformément aux exigences.
Test fonctionel
Les tests fonctionnels sont effectués en gardant à l'esprit le point de vue de l'utilisateur final; si les transactions et opérations requises exécutées par les utilisateurs finaux sont conformes aux spécifications commerciales.
Test de la boîte noire
Black Box Testing consiste à vérifier l'intégration de la base de données pour vérifier la fonctionnalité. Les cas de test sont simples et sont utilisés pour vérifier les données entrantes et sortantes de la fonction.
Diverses techniques telles que la technique de représentation graphique cause-effet, le partitionnement d'équivalence et l'analyse des valeurs limites sont utilisées pour tester la fonctionnalité de la base de données.
Ses advantages sont comme suit -
- Il est assez simple et est effectué dans les premiers stades de développement.
- Le coût de développement des cas de test est inférieur à celui des tests en boîte blanche.
Ses inconvénients sont les suivants -
- Quelques erreurs ne peuvent pas être détectées
- On ne sait pas combien de programmes doivent être testés.
Test de la boîte blanche
White Box Testing traite de la structure interne de la base de données et les détails des spécifications sont cachés aux utilisateurs. Cela implique le test des déclencheurs de base de données et des vues logiques, qui prendront en charge la refactorisation de la base de données.
Il effectue des tests de module des fonctions de base de données, des déclencheurs, des vues, des requêtes SQL, etc. Ce type de test valide les tables de base de données, les modèles de données, le schéma de base de données, etc. Il sélectionne les valeurs de table par défaut pour vérifier la cohérence de la base de données.
Les techniques les plus couramment utilisées pour effectuer les tests en boîte blanche sont la couverture des conditions, la couverture des décisions, la couverture des déclarations, etc.
Les erreurs de codage peuvent être détectées dans les tests en boîte blanche, de sorte que les bogues internes dans la base de données peuvent être éliminés. La limitation des tests en boîte blanche est que les instructions SQL ne sont pas couvertes.
Test non fonctionnel
Les tests non fonctionnels consistent à effectuer des tests de charge, des tests de résistance, la vérification des exigences minimales du système pour répondre aux spécifications de l'entreprise, la recherche des risques et l'optimisation des performances de la base de données.
Test de charge
L'objectif principal des tests de charge est de vérifier si la plupart des transactions en cours d'exécution ont un impact sur les performances de la base de données.
Dans le test de charge, le testeur vérifie -
- Le temps de réponse pour exécuter les transactions pour plusieurs utilisateurs distants.
- Temps nécessaire à la base de données pour récupérer des enregistrements spécifiques.
Examples of load testing in different testing types -
- Exécution de la transaction la plus utilisée à plusieurs reprises pour voir les performances du système de base de données.
- Téléchargement d'une série de fichiers volumineux sur Internet.
- Exécution simultanée de plusieurs applications sur un ordinateur ou un serveur.
Test de stress
Des tests de résistance sont effectués pour identifier le point d'arrêt du système. Dans ce test, l'application est chargée de telle manière que le système échoue à un moment donné. Ce point s'appelle lebreakpoint du système de base de données.
La détermination de l'état des transactions de base de données implique un effort considérable. Une planification appropriée est nécessaire pour éviter tout problème lié au temps et aux coûts.
Les outils de test de résistance les plus couramment utilisés sont LoadRunner et WinRunner.
Prenons un exampledes tests de résistance. Une application CRM peut accepter une charge utilisateur maximale de 50000 utilisateurs simultanés. Supposons que vous augmentiez la charge à 51 000 et effectuez des transactions telles que la mise à jour des enregistrements ou l'ajout d'une entrée. Dès que vous effectuez la transaction, l'application peut se synchroniser avec le système de base de données. Le test suivant consiste donc à effectuer avec une charge utilisateur de 52 000. Parfois, le test de résistance est également appeléFatigue Testing.