Qu’est-ce que le Spike Testing dans les tests logiciels ? Apprendre avec l'exemple

⚡ Résumé intelligent

Les tests de charge par pics consistent à soumettre une application à une augmentation soudaine et extrême de la charge, puis à la supprimer tout aussi brutalement. L'objectif est de déterminer si le système résiste au choc et, tout aussi important, s'il se rétablit ensuite.

  • | Modèle de chargement : Une forte hausse du trafic, bien supérieure à la normale, brièvement maintenue, puis supprimée.
  • (I.e. Objectif principal: Déterminer si le système tombe en panne, et si cette panne se produit de manière honorable.
  • (I.e. L'importance du rétablissement : Le retour à des temps de réponse normaux après le pic est aussi important que la survie même.
  • 📈 Déclencheurs réalistes : Ventes flash, lancements de billets, trafic viral et traitements par lots programmés.
  • Outillage: JMeter LoadRunner et modélisent tous deux une montée en charge instantanée plutôt qu'une montée en charge progressive.
  • (I.e. Que regarder: Taux d'erreur, profondeur de la file d'attente et temps nécessaire pour revenir à la situation initiale.

Qu'est-ce que le test de pointe ?

Qu’est-ce que le test de pointe ?

Test de pointe est un type de test logiciel dans lequel une application logicielle est testée avec des incréments et des décréments extrêmes de la charge de trafic. L'objectif principal des tests de pointe est d'évaluer le comportement de l'application logicielle en cas d'augmentation ou de diminution soudaine de la charge utilisateur et de déterminer le temps de récupération après un pic de charge utilisateur.

Des tests Spike sont effectués pour estimer les faiblesses des applications logicielles.

Test de pointe
Test de pointe

Objectifs des tests Spike

L'objectif des tests Spike est de voir comment le système réagit aux augmentations et baisses inattendues de la charge utilisateur. En génie logiciel, les tests Spike aident à déterminer que les performances du système se détérioreront en cas de charge soudaine et élevée.

Un autre objectif de Spike Testing est de déterminer le temps de récupération. Entre deux pics successifs de charge utilisateur, le système a besoin d’un certain temps pour se stabiliser. Ce temps de récupération doit être le plus court possible.

Comment faire des tests de pointe

Voici les étapes simples pour effectuer des tests Spike :

Étape 1) Déterminez la capacité de charge

Déterminez la capacité de charge utilisateur maximale de votre application logicielle.

Étape 2) Préparer l'environnement de test

Préparez l'environnement de test et configurez-le pour enregistrer les paramètres de performances.

Étape 3) Définir la charge attendue

Appliquez la charge maximale attendue à votre application logicielle à l'aide d'un Outil de test de performances de votre choix.

Étape 4) Augmentez la charge

Augmentez rapidement la charge du système pendant une période définie.

Étape 5) Remettez la charge à la normale

Réduisez progressivement la charge à son niveau d'origine.

Étape 6) Analyser les résultats

Analysez les graphiques et les mesures de performances telles que les échecs, le temps passé, les utilisateurs virtuels, etc.

Exemples de scénarios de tests de pointe

  • Lorsqu'une boutique de commerce électronique lance des offres spéciales avec des remises intéressantes, comme le Black Friday.
  • Lorsqu'une application Web diffuse en direct un programme télévisé préféré.
  • Lorsqu'une vente flash a lieu sur un site d'offres quotidiennes.
  • Lorsqu'un certain contenu d'un site devient viral sur Internet.
  • Un nouveau système est mis en production et plusieurs utilisateurs souhaitent accéder au système.
  • Une panne de courant peut entraîner la perte de l'accès à un système pour tous les utilisateurs. Une fois le problème de panne résolu, tous les utilisateurs se reconnectent simultanément au système.

Scénarios de récupération sur les charges de pointe

Trois principaux scénarios de récupération qui peuvent être configurés pour se prémunir contre les Spikes sont :

  1. Utilisez des plateformes cloud comme AWS, Azure pour augmenter dynamiquement la capacité du serveur en tandem avec la charge utilisateur
  2. N'autorisez pas l'accès à l'application à certains utilisateurs, afin que le système ne soit pas confronté à une charge importante. Cela empêche les personnes dépassant la charge maximale prévue d'entrer dans le système. Protège ainsi le système de la menace d'une charge excessive.
  3. L'administrateur du site permet aux utilisateurs de rejoindre le système. Cependant, avec un avertissement, ils peuvent être confrontés à une réponse lente en raison de la lourde charge. Cela peut avoir un effet négatif sur les performances du système. Cependant, l'utilisateur pourra travailler avec le système.

Avantages et inconvénients des tests de pointe

Vous trouverez ci-dessous les avantages et les inconvénients du Spike Testing :

Avantages Désavantages
Les performances du logiciel doivent être maintenues à tout prix. Cependant, lorsqu’il y a une augmentation extrême de la charge d’un système, les risques de problèmes sont élevés. Spike Testing permet de tester un tel scénario. Le seul inconvénient du Spike Testing est qu’il s’agit d’un processus de test coûteux. Il a donc fallu mettre en place des conditions de test particulières. Cependant, sur une durée plus longue, cela donnera sûrement un retour sur investissement positif.
Dans la méthode de test standard, les scénarios les plus défavorables ou les plus pessimistes peuvent ne pas être pris en compte. Toutefois, les ignorer ne signifie pas qu’ils ne se produiront jamais. Par conséquent, chaque logiciel doit être prêt à de telles possibilités. L'un des pires scénarios est celui de la charge, qui peut être jugée et minimisée à l'aide de tests de pointe.  

Outils de test de pointes

1) JMeter

Le Apache JMeter est un outil de test de pointe Java open source. Il est spécialement conçu pour charger le comportement des tests fonctionnels et mesurer les performances. Cet outil de test de performances peut être utilisé pour analyser et mesurer les performances d'une application Web ou d'une variété de services. Aujourd’hui, il est largement utilisé pour le test fonctionnel, le test des serveurs de bases de données.

2) LoadRunner

LoadRunner est un outil de test de charge pour Windows et Linux, qui permet des tests de pointe sur le Web et d'autres applications. Il aide à déterminer les performances et le résultat de l’application, même sous une forte charge.

Comment ce test s'intègre à la famille des tests de performance

Les tests de performance constituent un terme générique. Les variantes décrites ci-dessous diffèrent uniquement par la forme de la charge appliquée et sa durée, ce qui explique la confusion fréquente entre elles.

Type de test Modèle de charge Question à laquelle il répond
Test de charge Charge de pointe prévue, courte durée Le système atteint-il ses objectifs en conditions de trafic de pointe normales ?
Tests de résistance Augmentation au-delà de la capacité jusqu'à la défaillance Où se casse-t-il, et la défaillance est-elle gracieuse ?
Test de pointe Montée en puissance extrême et soudaine, puis retrait Peut-elle survivre et se remettre d'un choc de trafic ?
Essais d'endurance La charge normale a été maintenue pendant de nombreuses heures. Les performances se dégradent-elles avec le temps ?
Test de trempage Charge soutenue sur une période prolongée Y a-t-il des fuites de mémoire ou une saturation des ressources ?
Test de stabilité Charge variable selon les conditions Le système reste-t-il fiable lorsque les conditions changent ?
Tests de volume Utilisateurs normaux, volume de données très important Est-ce que le système peut gérer la croissance de la base de données ?

Les tests d'endurance et les tests d'immersion sont souvent considérés comme synonymes. En pratique, on les appelle tests d'endurance : les deux consistent à supporter une charge soutenue pendant une longue période. Lorsque les équipes font la distinction, les tests d'endurance se concentrent sur l'évolution des temps de réponse, tandis que les tests de charge se concentrent sur la consommation de ressources telles que la mémoire, les descripteurs de fichiers et les pools de connexions. L'exécution d'un seul de ces tests permet généralement d'obtenir des résultats pour les deux.

Indicateurs clés à recueillir pendant le test

La qualité d'un test de performance dépend de la qualité des données enregistrées pendant son exécution. Capturez ces six éléments côté serveur et côté client, puis comparez-les à la valeur de référence plutôt qu'à votre intuition.

Métrique Ce que ça te dit Panneau d'avertissement
Temps de réponse moyen Expérience utilisateur typique Toute dérive ascendante à travers la course
temps de réponse au 95e percentile L'expérience des utilisateurs les plus lents Bien au-dessus de la moyenne, ce qui signifie une incohérence
Cadence de production Requêtes traitées par seconde Chute alors que la charge reste constante
Taux d'erreur Part des requêtes ayant échoué ou expiré Toute augmentation au-delà du seuil convenu
Utilisation du processeur et de la mémoire marge de ressources du serveur Un souvenir qui s'élève et ne revient jamais.
Connexions et threads de base de données épuisement de la piscine Des comptes qui augmentent régulièrement sans libération

Lisez la moyenne et le percentile ensemble. Une moyenne de 800 ms avec un 95e centile de 900 ms caractérise un système stable. La même moyenne, associée à un 95e centile de 9 secondes, signifie qu'un utilisateur sur vingt rencontre des difficultés, et que la moyenne masque ce problème.

Observez la forme, pas seulement la valeur. Dans tout test de longue durée, une ligne de ressource plate indique une réussite et une ligne montante indique une fuite, même si le nombre absolu reste largement dans la limite au moment où l'exécution se termine.

Tests de pointe : principaux enseignements

  • test logiciel est un type de test logiciel dans lequel une application logicielle est testée avec des incréments et des décréments extrêmes de la charge de trafic.
  • La bonne approche pour effectuer des tests de pointe consiste à augmenter de manière inattendue le nombre d’utilisateurs, suivi d’une diminution immédiate de la charge.
  • La charge inattendue est l'attribut principal de la transaction.
  • Des exemples de scénarios de test Spike réels sont : lorsqu'un magasin de commerce électronique lance des offres spéciales avec des remises intéressantes, comme le Black Friday. Alternativement, lorsqu'une application Web diffuse en direct un programme télévisé préféré.
  • JMeter est l'un de ces outils utiles pour effectuer des tests de pointe.

FAQ

Les essais de contrainte augmentent la charge progressivement jusqu'à la rupture du système, afin d'en déterminer la limite. Les essais de pic de charge appliquent la charge extrême instantanément, pour vérifier si un choc soudain provoque une défaillance qu'une montée en charge progressive n'entraînerait pas.

Un système qui reste opérationnel mais ne retrouve jamais ses temps de réponse normaux n'en demeure pas moins défaillant pour les utilisateurs qui se connectent après le pic de charge. Le temps de récupération est l'indicateur qui reflète l'impact réel sur l'activité.

Il est préférable de se baser sur un événement réel plutôt que sur un chiffre rond. Le trafic historique d'une vente ou d'un lancement passé, multiplié par la croissance attendue depuis, constitue un objectif réaliste.

Les modèles d'IA entraînés sur le trafic historique, les calendriers marketing et les signaux externes prévoient les pics d'activité, ce qui permet aux équipes de dimensionner l'infrastructure à l'avance au lieu de réagir après coup.

Oui. Les outils d'IA peuvent extraire des profils de pics à partir des journaux d'accès à la production, reproduisant ainsi la forme réelle des pics passés plutôt qu'une variation artificielle.

Résumez cet article avec :