Test du système

Test du système
MIN
23 Août 2023

Le test de logiciels est une activité qui vise à détecter les bogues et les défauts potentiels dans les applications logicielles avant qu’elles ne soient mises à la disposition des utilisateurs finaux. Il se déroule à quatre niveaux différents : tests unitaires, tests d’intégration, tests de système et tests d’acceptation. Dans cet article, nous allons examiner en détail les tests de systèmes.

Mais avant cela, il est essentiel de connaître les différents niveaux de tests de logiciels.

Tests unitaires – Il s’agit de tester séparément chaque composant du logiciel pour s’assurer qu’il fonctionne correctement. En général, les développeurs ou les programmeurs effectuent des tests unitaires au cours de la phase de développement du cycle de développement durable.

Tests d’intégration – Les tests d’intégration se déroulent comme suit. Il combine logiquement les composants des tests unitaires en groupes et vérifie leur interaction. Il détecte les erreurs qui peuvent survenir en raison de l’interaction des modules logiciels.

Test du système – Lorsque l’ensemble du système est connecté et intégré en une seule unité, il est évalué comme un tout. L’objectif est de vérifier le système du point de vue de l’utilisateur.

Tests d’acceptation – Le dernier niveau est celui des tests d’acceptation. Un petit groupe d’utilisateurs réels ou l’équipe interne de l’organisation vérifie que le produit logiciel répond à toutes les exigences spécifiées.

Passons maintenant à une compréhension détaillée des tests de systèmes.

Qu’est-ce qu’un test de système ?

Le test de système est un type de test de logiciel qui évalue un produit logiciel dans son ensemble sur la base d’exigences fonctionnelles et non fonctionnelles. Détermine la performance et la fonctionnalité globales d’un produit logiciel entièrement intégré.

L’objectif principal de ce type de test est de vérifier que tous les composants du logiciel fonctionnent ensemble sans aucune erreur et qu’ils fonctionnent comme ils le devraient, tout en répondant à toutes les exigences spécifiées. Il s’agit de vérifier la conception du produit logiciel, son comportement et sa conformité aux exigences du client.

L’équipe d’assurance qualité effectue des tests de système après les tests d’intégration et avant les tests d’acceptation. Ils choisissent un environnement de test qui ressemble étroitement à un environnement de production réel. Étant donné que l’équipe d’assurance qualité teste l’ensemble du système sans en connaître les rouages, il s’agit d’un test en boîte noire.

Les modules intégrés qui ont passé avec succès les tests d’intégration servent de base aux tests du système. Les tests d’intégration permettent de détecter les erreurs ou les incohérences entre les unités intégrées. Cependant, les tests de système révèlent des erreurs entre les unités intégrées et le système dans son ensemble.

En bref, ce type de test de logiciel implique l’exécution d’une série de tests pour tester l’ensemble du logiciel.

Exemple de test de système

Prenons un exemple concret. Considérez le processus de fabrication d’une voiture. Au départ, le constructeur automobile fabrique tous les composants de base tels que les freins, le moteur, les sièges, la direction, les roues, etc. Après la production de ces composants, il est temps de les tester individuellement, ce qui, dans le développement de logiciels, est appelé test unitaire.

Une fois que la fonctionnalité de tous ces composants individuels a été confirmée, le fabricant les assemble. L’étape suivante consiste à vérifier que la combinaison assemblée ne provoque pas d’erreurs et n’a pas d’effets secondaires sur la fonctionnalité des composants individuels. Cette procédure est appelée test d’intégration.

Après s’être assuré qu’il n’y a pas d’erreurs dans la combinaison assemblée, le fabricant vérifie la combinaison dans son ensemble, ce qui constitue l’essai du système. Le véhicule dans son ensemble est soumis à un certain nombre de contrôles pour vérifier qu’il répond aux exigences spécifiées, par exemple que le véhicule fonctionne sans à-coups, que tous les autres composants (freins, boîte de vitesses, roues, etc.) fonctionnent correctement.

Si le véhicule répond aux attentes des clients, ils sont plus susceptibles de l’acheter.

Pourquoi faut-il tester le système lorsqu’on teste un logiciel ?

  • Même après des tests unitaires et d’intégration réussis, de nombreux scénarios complexes peuvent présenter des problèmes non détectés. Les tests du système permettent de détecter ces erreurs.
  • Tester les logiciels par rapport aux exigences fonctionnelles et non fonctionnelles. C’est la première fois que cela se produit dans l’ensemble du cycle de développement d’un logiciel. Il vérifie donc l’architecture ou la conception du logiciel et les exigences de l’entreprise.
  • L’environnement de test est exactement le même que l’environnement de production. Par conséquent, des tests de système réussis apportent un sentiment de confiance dans le produit final livré. Les parties prenantes peuvent également comprendre comment les utilisateurs finaux réagissent au logiciel.
  • Cela minimise les problèmes post-déploiement, le dépannage et les appels de support.

Que faut-il vérifier lorsque l’on teste le système ?

Ce type de test évalue un produit logiciel sous les aspects suivants :

  • Interactions entre les composants d’un logiciel, y compris les périphériques externes, afin de vérifier le fonctionnement du logiciel dans son ensemble. Il s’agit d’un scénario de test de bout en bout.
  • Les données fournies au logiciel produisent les résultats escomptés.
  • Les exigences fonctionnelles et non fonctionnelles sont satisfaites.
  • Expérience de l’utilisateur final avec le logiciel.

Nous avons énuméré ici quelques-uns des paramètres les plus importants. Cependant, le test du système implique la vérification de nombreux autres aspects. Elle exige des cas et des fichiers de test détaillés sur chaque aspect du logiciel vu de l’extérieur, sans s’intéresser à ses détails internes.

Critères d’entrée et de sortie

Chaque niveau de test de logiciel comporte des critères d’entrée et de sortie. Les critères d’entrée et de sortie pour tester le système sont les suivants :

Critères d’entrée

  • Le logiciel doit satisfaire à tous les critères de sortie des tests d’intégration, à savoir j. l’exécution de tous les cas de test doit être terminée et il ne doit pas y avoir de fautes critiques ou prioritaires dans l’état ouvert.
  • Le plan de test doit être approuvé et signé.
  • Les cas de test, les scénarios de test et les scripts de test doivent être prêts à être exécutés.
  • L’environnement de test devrait être prêt.
  • Les exigences non fonctionnelles doivent être disponibles.

Critères de sortie

  • Tous les cas de test prévus doivent être exécutés pour tester le système.
  • Aucun bogue prioritaire ou critique ne doit être ouvert.
  • Même si les bogues ouverts sont de priorité moyenne ou faible, ils doivent passer au niveau de test suivant : le test d’acceptation.
  • Un rapport de sortie doit être préparé.

Types de tests de systèmes

Comme indiqué précédemment, ce type de test évalue le logiciel en fonction des exigences fonctionnelles et non fonctionnelles. Par conséquent, le logiciel doit être soumis à diverses techniques de test afin d’évaluer l’ensemble du système et ses différents aspects.

Les différents types de tests de systèmes sont les suivants :

  1. Tests fonctionnels: ils évaluent le logiciel pour vérifier que chaque fonction fonctionne comme prévu et répond aux exigences spécifiées. Si les testeurs constatent que certaines fonctionnalités sont manquantes, ils les soumettent à l’équipe de développement pour qu’elle les mette en œuvre. Ils suggèrent également des fonctionnalités supplémentaires pour améliorer le logiciel.
  2. Test de performance: il s’agit d’un type de test non fonctionnel qui vérifie la stabilité, l’évolutivité, la réactivité et la vitesse du système sous une charge donnée.
  3. Test d’utilisabilité: il s’agit également d’un test non fonctionnel qui vérifie la convivialité et l’efficacité du logiciel. En d’autres termes, elle détermine la facilité avec laquelle les utilisateurs peuvent gérer et contrôler le logiciel et accéder à ses fonctionnalités.
  4. Test de fiabilité: cette technique de test évalue les logiciels pour vérifier qu’ils fonctionnent correctement et régulièrement dans certaines conditions sur une période donnée.
  5. Tests de sécurité: ils permettent de détecter tous les risques et vulnérabilités de sécurité du logiciel et de s’assurer qu’il ne permet pas un accès non autorisé aux données et autres ressources.
  6. Test d’évolutivité: ce type de test de charge évalue les performances du logiciel lorsque le nombre d’utilisateurs augmente ou diminue.
  7. Test de recouvrabilité: cette technique de test permet de déterminer la capacité du logiciel à se remettre d’une défaillance ou d’une panne.
  8. Test d’interopérabilité: analyse le fonctionnement du logiciel avec ses composants et les produits tiers.
  9. Test de régression: ce test garantit que les nouvelles modifications apportées au code source du logiciel n’affectent pas les fonctionnalités existantes. Il garantit la stabilité du logiciel en intégrant des sous-systèmes et des procédures de maintenance.

Processus d’essai du système

Voici les différentes étapes du test du système :

  1. Mise en place de l’environnement de test – La première étape consiste à créer un environnement de test qui corresponde à l’environnement de production pour les tests de qualité. L’environnement de test comprend la sélection des langages de programmation, des cadres et des outils de test, ainsi que la création des dépendances et des configurations nécessaires.
  2. Création de cas de test – L’étape suivante consiste à créer des cas de test pour le processus de test exhaustif. Il comprend également la création d’un document de test qui contient le nombre de cas de test réussis et non réussis.
  3. Élaborer des données d’essai – Cette étape implique la collecte de données d’essai. Il doit contenir toutes les informations et tous les champs nécessaires. Identifie les combinaisons d’intrants et d’extrants favorables et défavorables.
  4. Exécuter les cas de test – Utilisez les cas de test et les données de test que vous avez créés pour exécuter les cas de test. Cela vous aidera à savoir si les cas de test ont réussi ou échoué.
  5. Identification des erreurs/déficiences – En cas d’erreurs ou de déficiences, les testeurs doivent les signaler dans le document de test créé à l’étape 2.
  6. Test de régression – Pour corriger les bogues détectés, les développeurs apportent des modifications au code source. Les testeurs effectuent donc des tests de régression pour s’assurer que les dernières modifications apportées au code source n’affectent pas ses fonctionnalités existantes.
  7. Retest – Si des bogues sont découverts au cours des tests de régression, l’équipe de test les signale à l’équipe de développement. Le cycle de test se poursuit jusqu’à ce que le logiciel soit prêt à passer à la phase de production.

Avantages et inconvénients des tests de systèmes

Voici quelques avantages et inconvénients significatifs de l’essai du système :

Avantages

  • Les tests de systèmes n’exigent pas que les testeurs aient des connaissances en programmation.
  • Il vérifie l’ensemble du produit logiciel et révèle les bogues et les défauts que les tests unitaires et d’intégration ne peuvent pas détecter.
  • L’environnement de test est similaire à un environnement de production réel.
  • Les tests approfondis d’un produit logiciel permettent en fin de compte d’obtenir un niveau de qualité élevé.
  • Améliore les performances, la maintenance et la fiabilité du système dans son ensemble.
  • Parce qu’il expose tous les bogues et défauts possibles, les équipes de développement et de test sont suffisamment confiantes pour mettre les produits à la disposition des utilisateurs.

Inconvénients

  • Tester le système prend du temps.
  • Elle nécessite des testeurs hautement qualifiés.
  • C’est un défi pour les projets importants et complexes.
  • Les testeurs n’ont pas accès au code source du logiciel.
  • Aucun test ne révélera 100 % des erreurs. Même si les tests du système vérifient tous les aspects du code source, des bogues peuvent encore exister.

Tests de système et tests d’acceptation

Le tableau suivant met en évidence la différence entre les tests de système et les tests d’acceptation :

Test du systèmeTests d’acceptation
Il teste le produit logiciel dans son ensemble et vérifie qu’il répond aux exigences fonctionnelles et non fonctionnelles.Un petit groupe d’utilisateurs réels teste le produit logiciel pour s’assurer qu’il répond aux exigences du client.
Comprend les essais fonctionnels et non fonctionnels.Comprend uniquement les essais fonctionnels.
Il a lieu après les tests d’intégration.Elle a lieu après que le système a été testé.
Il utilise des entrées factices créées par les testeurs.Utilise des entrées aléatoires fournies par les utilisateurs.
Toute erreur constatée peut être corrigée.Tout défaut constaté est considéré comme un défaut du produit.
Il se concentre sur les cas positifs et négatifs.Il se concentre uniquement sur les cas positifs.

Conclusion

Il s’agissait de tests de systèmes dans le domaine de l’ingénierie logicielle. Il s’agit d’un niveau clé dans les tests de logiciels, car il permet de tester en profondeur les produits logiciels sur la base d’exigences fonctionnelles et non fonctionnelles. Lorsqu’elle est effectuée correctement, elle améliore la qualité, la performance, la maintenabilité et la fiabilité du logiciel. Dans le cas contraire, les erreurs non détectées lors de la mise en service du logiciel risquent d’être découvertes.