Sobes.tech
Middle

Quels cas de test peut-on développer pour tester des bases de données?

sobes.tech IA

Réponse de l'IA

Tests de la structure de la base de données, y compris les schémas, tables, index, contraintes (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL).

Tests de données:

  • Vérification de la correction des données après opérations : INSERT, UPDATE, DELETE.
  • Vérification de la conformité des données avec la logique métier.
  • Tests d'intégrité des données lors d'opérations concurrentes.
  • Tests d'import/export de données.
  • Tests de migration de données.

Tests de procédures stockées, fonctions et triggers:

  • Tests des paramètres d'entrée et des résultats de sortie.
  • Tests de gestion des erreurs et exceptions.
  • Tests de l'impact sur les données des tables.
  • Tests de performance.

Tests de performance et de charge:

  • Tests du temps d'exécution des requêtes (SELECT).
  • Tests de la vitesse des opérations de modification de données (INSERT, UPDATE, DELETE).
  • Tests du comportement de la base sous forte charge.
  • Tests de scalabilité.

Tests de sécurité:

  • Tests des droits d'accès des utilisateurs.
  • Tests des vulnérabilités d'injection SQL.
  • Tests d'audit et de journalisation.

Tests de régression après modifications du schéma de la base ou du code.

Tests de sauvegarde et de restauration des données.

Exemples de cas pour vérifier les contraintes:

ID Nom du cas Étapes Résultat attendu
1 Vérification PRIMARY KEY - duplication de valeur Tentative d'insertion d'une nouvelle entrée avec un ID déjà existant dans la table. Le système doit générer une erreur de violation d'unicité de PRIMARY KEY.
2 Vérification FOREIGN KEY - référence à une entrée inexistante Tentative d'insertion dans une table dépendante d'une référence à un ID qui n'existe pas dans la table parent. Le système doit générer une erreur de violation d'intégrité de clé étrangère.
3 Vérification NOT NULL - insertion de NULL Tentative d'insertion d'une entrée dans une table en laissant NULL dans un champ marqué NOT NULL. Le système doit générer une erreur de violation de contrainte NOT NULL.
4 Vérification CHECK - valeur incorrecte Tentative d'insertion ou de mise à jour d'une entrée avec une valeur qui ne satisfait pas la contrainte CHECK (par exemple, âge négatif). Le système doit générer une erreur de violation de contrainte CHECK.

Exemple de requête SQL pour tester les vulnérabilités:

-- Vérification de la possibilité d'injection SQL dans le champ de login
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';

Exemple de requête pour tester la performance:

-- Mesure du temps d'exécution d'une requête SELECT complexe
EXPLAIN ANALYZE SELECT o.order_id, c.customer_name, p.product_name
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE c.country = 'USA' AND o.order_date > '2023-01-01';