Les différences entre le test de charge et le test de stress

Pour vous assurer que votre application sera fiable en toute situation, vous devez mettre en place différents tests. Les tests vous permettront de détecter les dysfonctionnements possibles dans certaines situations du quotidien. Chaque type de test a ses propres objectifs, et sert à mesurer et analyser certains paramètres de l’application.

 

Qu’est-ce qu’un test de charge ?

Le test de charge est le processus qui permet de vérifier le temps de réponse de l’application ou du site Web. Il simule le comportement des utilisateurs lors de charges normales et plus élevées.

 

Pourquoi faire un test de charge ?

Certaines applications ou certains sites Web sont conçus dans l’idée de connaitre un fort trafic ou une lourde charge. Pour éviter toute défaillance en production, une approche proactive des tests de charge est essentielle. Ceci permet de s’assurer que l’application sera capable de gérer le volume. Le test de charge permet de :

  • Détecter les bugs qui ne sont pas susceptibles d’être détectés avec d’autres méthodes de test, comme la gestion de la mémoire, les fuites de mémoire, les bugs, le débordement de mémoire tampon, etc.
  • S’assurer que l’application est capable d’aller jusqu’au point de performance déterminé avec les tests de performance
  • Déterminer la capacité opérationnelle de l’application
  • Valider que l’infrastructure actuelle est suffisante pour faire fonctionner l’application
  • Déterminer le nombre d’utilisateurs que l’application peut supporter, puis déterminer la scalabilité à mettre en place pour permettre à un plus grand nombre d’y accéder.

 

Quand faire un test de charge ?

Le test de charge est à réaliser dès lors que vous savez combien d’utilisateurs votre système peut gérer et avant de connaître des ralentissements ou des pannes. Le test de charge est une étape essentielle dans tout processus de développement, car vous pouvez isoler différentes parties du système pour tester et définir des scénarios utilisateur réalistes.

Dans un test de charge, il est aussi possible de déterminer le comportement de la charge, en d’autres termes définir l’origine géographique des utilisateurs virtuels, ou la manière dont la charge générée se développe dans le système.

Le test de charge doit être exécuté lors du développement de l’application. Il doit cependant être renouvelé régulièrement pour s’assurer que le système est à jour. L’idéal est de déployer le test de charge dans le cycle d’intégration continue afin qu’il soit effectué de manière automatique.

Essayez NeoLoad, la plateforme de tests de performance la plus automatisée pour les entreprises testant APIs et Applications critiques en continue

 

Qu’est-ce qu’un test de stress ?

Le test de stress est aussi appelé test de résistance. Il détermine la stabilité et la robustesse d’un système. Pour cela, il génère une charge de fonctionnement supérieure à celle considérée comme maximale pour le bon fonctionnement du système.

 

Pourquoi faire un test de stress ?

Il se peut que votre application ou site Internet connaisse des pics d’activités attendus ou inattendus. Dans cette situation, il est possible que la charge générée sur l’application dépasse ce que celle-ci est conçue pour gérer. C’est pour anticiper ce type de situation que le test de stress est important. Il permet de répondre aux besoins suivants :

 

  • Tester l’application dans une situation qui mène à la défaillance
  • S’assurer que le système enregistre les données avant le lancement du test
  • Vérifier qu’aucune défaillance inattendue ne vient nuire à la sécurité du système.

 

Quand faire un test de stress ?

Un passage de votre entreprise à la télévision est prévu ? Les soldes approchent ou peut-être le Black Friday ? Si la réponse est oui, il est temps de faire un test de stress. Ce type de test devrait être systématique lors du développement de l’application. Ce test est aussi à faire à l’occasion d’événements ayant une nature à augmenter soudainement l’activité du système.

Il est fortement conseillé de faire des tests de stress régulièrement afin de connaître les capacités d’endurance du système. Ceci permet d’anticiper les pics de trafics pour que vous puissiez travailler de façon proactive à la recherche d’une solution plutôt que de mettre à rude épreuve vos ressources pour régler les problèmes lorsqu’ils surviennent.

Automatisez vos tests de performances d'APIs et d'Applications end-to-end grâce à NeoLoad, la plateforme de test de performance en continue.

 

Qu’est-ce qu’un test de performance ?

Le test de performance sert à déterminer la vitesse d’un ordinateur, d’un réseau ou d’un périphérique. L’environnement de test doit correspondre à des conditions qui correspondent à des comportements et une activité typiques.

 

Pourquoi faire un test de performance ?

Avant de lancer une application ou un site Web, il est essentiel de s’assurer qu’il fonctionne convenablement dans des circonstances normales. Développer un système défaillant porterait préjudice à son développement et nuirait à votre image. Pour éviter les problèmes, le test de performance permet donc de :

  • Valider que l’application fonctionne correctement dans différentes situations définies
  • Vérifier que l’application est conforme aux besoins de performance de l’entreprise
  • Détecter, analyser et réparer les problèmes de performance le cas échéant
  • S’assurer que le matériel informatique est adéquat pour gérer la charge attendue
  • Planifier les capacités à répondre aux futures demandes de l’application.

 

Quand faire un test de performance ?

Le test de performance est à faire lorsque vous souhaitez vérifier les performances de votre site Web et de vos applications. Il permet aussi de vérifier des serveurs, des bases de données, des réseaux par exemple. Le test de performance est à recommencer à chaque fois qu’une modification est apportée au système. Ceci a pour but de s’assurer que le changement n’a pas affecté ses performances. L’idéal est d’intégrer le test de performance dans le processus d’intégration continue, de façon automatisée.

 

Performance, charge, stress, principales différences

Caractéristiques

Test de performance

Test de charge

Test de stress

Quoi ?
  • Définit les différents tests qui permettent de vérifier les performances d’une application ou d’un système.
  • Sous-catégorie des tests de performance
  • Sous-catégorie des tests de performance
Pourquoi ?
  • Définir les critères et les normes de référence pour l’application.
  • Permet de définir la limite supérieure du système, définir le SLA de l’application et vérifier comment le système peut gérer une charge lourde. Il permet de s’assurer que le système est capable de gérer un nombre spécifique d’utilisateurs simultanés.
  • Permet de vérifier comment le système se comporte en cas de charge extrême et comment il se remet d’une défaillance. Permet de voir quels sont les composants qui commencent à ralentir lorsque le système est poussé au-delà de sa capacité
Objectifs
  • L’objectif du test de performance est d’avoir des indications sur la façon dont l’application se comporte avec un fonctionnement normal.
  • L’objectif du test de charge est de voir comment l’application réagit lorsque la charge augmente jusqu’au seuil de rupture.
  • L’objectif du test est de s’assurer qu’avec une lourde charge subite pendant une durée définie, les serveurs ne plantent pas.
  • Il s’agit d’identifier les goulots d’étranglement dans le système pour mettre en évidence les points de défaillance possibles.
Que mesure-t-on ?
  • La consommation des ressources, la disponibilité et la fiabilité du produit sont validées dans le cadre de ces tests
  • Les tests de charge permettent de vérifier les performances de pointe, la quantité de serveurs nécessaire et le temps de réponse de l’application.
  • Temps de réponse, stabilité de l’application.
Où est la limite de charge ?
  • À la fois inférieure et supérieure au seuil de rupture.
  • Égale au seuil de rupture.
  • Au-delà du seuil de rupture.
Exemple de test
  • Vérification des utilisateurs simultanés, des connexions HTTP ou des temps de réponse appropriés.
  • Un traitement de texte en modifiant le grand volume de données.
  • Une imprimante en transférant des données lourdes.
  • Le serveur mail en utilisant un grand nombre d’utilisateurs simultanés.
  • Fermeture et redémarrage des ports d’un grand réseau.

Commencez à tester avec Neoload, la plus rapide, la plus réaliste, et la plus automatisée des plateformes de test de performance en continue

 

Déroulement des tests

Le test de performance est le premier à prévoir dans un processus de développement. Vous pouvez définir un grand nombre d’utilisateurs simultanés dont on sait qu’ils sont pris en charge par l’infrastructure. On considère aussi les critères d’une utilisation normale du système. Les données obtenues avec ce test servent ensuite de référence pour les autres tests, dont les tests de charge et de stress. Elles déterminent un certain nombre de points de repère tels que la vitesse de connexion moyenne, la latence moyenne et le temps moyen de téléchargement. Une fois que les valeurs de performances fondamentales sont définies, il est temps de passer au test de charge. Le nombre d’utilisateurs est augmenté progressivement jusqu’à atteindre le seuil critique auquel des dysfonctionnements commencent à apparaitre. Le test de charge est exécuté sur une durée déterminée. Ce test a pour but de vérifier la stabilité de l’application lorsque l’on approche du point critique de charge. Une fois que le seuil de rupture est déterminé à l’aide du test de charge, continuez à augmenter la charge afin de réaliser le test de stress. L’augmentation progressive de la charge permet de détecter les composants qui présentent en premier des dysfonctionnements. Il met en avant les types de problèmes qui surviennent et les parties du système à renforcer

 

Charge et résistance : des tests complémentaires

Le test de charge est planifié pour effectuer un nombre de requêtes spécifié en amont dans un système afin de tester la fonctionnalité du système sous des niveaux spécifiques de requêtes simultanées. Il permet de garantir que le système est capable de gérer un volume de trafic prévu. L’objectif de ce test est de prouver que le système est capable de gérer le volume attendu avec une faible dégradation des performances. Pour cela, les testeurs doivent en amont déterminer les seuils de dégradation des performances acceptables pour les différentes fonctionnalités. Ces valeurs serviront de base pour évaluer la réussite de l’application au test ou non. Le test de résistance est conçu pour augmenter le nombre de demandes simultanées sur l’application au-delà du point de rupture (voire jusqu’à un échec complet du système). Il s’agit simplement de surcharger volontairement les ressources pour atteindre un état d’incapacité, et voir comment le système gère cet état et comment il récupère après la défaillance. Bien qu’il s’agisse de tests et d’objectifs différents, le test de charge et le test de stress sont donc intimement liés. Un test de stress revient à pousser le test de charge plus loin pour pousser le système au-delà de ses limites. Les premiers échecs qui seront mis en avant par le test de stress seront par conséquent identiques à ceux du test de charge.

Testez vos APIs et applications avec NeoLoad, la plateforme de test de performance en continue la plus automatisée