Qu'est-ce que les tests d'endurance dans les tests de logiciels ? (avec exemple)

⚡ Résumé intelligent

Les tests d'endurance consistent à exécuter une application sous une charge normale prévue pendant une période prolongée afin de déterminer si ses performances se dégradent avec le temps. Ce type de test permet de détecter les défauts qu'un test de charge d'une heure ne peut pas déceler.

  • (I.e. Charge soutenue : Le trafic de production prévu a été maintenu pendant des heures, voire des jours, au lieu de quelques minutes.
  • (I.e. Dégradation : La question est de savoir si les temps de réponse augmentent progressivement, et non si l'objectif est atteint une seule fois.
  • ???? Constatations communes : Fuites de mémoire, épuisement du pool de connexions et croissance illimitée des journaux ou du cache.
  • (I.e. Ensemble de surveillance : Mémoire, processeur, temps de réponse, débit et connexions à la base de données sur l'ensemble de l'exécution.
  • Outillage: Les outils de charge standard gèrent le trafic tandis que les outils APM enregistrent les courbes de ressources.
  • Compromis : Les résultats sont très précieux mais longs à obtenir, ce qui limite la fréquence d'exécution du test.

Qu'est-ce qu'un test d'endurance ?

Qu’est-ce que les tests d’endurance ?

Test d'endurance Il s'agit d'un type de test logiciel non fonctionnel dans lequel un logiciel est testé avec une charge élevée prolongée sur une période de temps significative pour évaluer le comportement d'une application logicielle dans le cadre d'une utilisation soutenue. L'objectif principal des tests d'endurance est de garantir que l'application est suffisamment capable de gérer une charge prolongée sans aucune détérioration du temps de réponse.

Ce type de test est effectué à la dernière étape du cycle d'exécution des performances. Les tests d’endurance sont un processus long et durent parfois jusqu’à un an. Cela peut inclure l'application de charges externes telles que le trafic Internet ou les actions des utilisateurs. Cela différencie les tests d'endurance des test de charge, qui se termine généralement dans quelques heures environ.

L'endurance signifie la capacité, donc en d'autres termes, vous pouvez qualifier les tests d'endurance de tests de capacité.

Objectifs des tests d'endurance

  • L'objectif principal des tests d'endurance est de vérifier les fuites de mémoire.
  • Pour découvrir comment le système fonctionne dans des conditions d'utilisation soutenue.
  • Pour garantir qu'après une longue période, le temps de réponse du système restera identique ou meilleur qu'au début du test.
  • Déterminer le nombre d'utilisateurs et/ou de transactions qu'un système donné prendra en charge et atteindra les objectifs de performances.
  • Pour gérer les charges futures, nous devons comprendre combien de ressources supplémentaires (telles que la capacité du processeur, la capacité du disque, l'utilisation de la mémoire ou la bande passante du réseau) sont nécessaires pour prendre en charge l'utilisation future.
  • Les tests d'endurance sont généralement effectués soit en surchargeant le système, soit en réduisant certaines ressources du système et en évaluant les conséquences.
  • Elle est effectuée pour garantir qu'aucun défaut ou fuite de mémoire ne se produise après ce qui est considéré comme une période d'utilisation relativement « normale ».

Éléments à surveiller lors des essais d'endurance

Test d'endurance

Dans les tests d'endurance, les éléments suivants sont testés.

  • Tester la fuite de mémoire- Des contrôles sont effectués pour vérifier s'il y a une fuite de mémoire dans l'application, ce qui peut provoquer un crash du système ou du système d'exploitation.
  • Tester la fermeture de la connexion entre les couches du système – Si la connexion entre les couches du système n’est pas fermée correctement, elle peut bloquer certains ou tous les modules du système.
  • La connexion à la base de données de test se ferme avec succès– Si la connexion à la base de données n’est pas fermée correctement, cela peut entraîner un crash du système
  • Temps de réponse des tests – Le temps de réponse du système est testé car l'application devient moins efficace en raison d'une utilisation prolongée du système.

Comment réaliser des tests d'endurance

Vous trouverez ci-dessous l'approche de test de base pour le test d'endurance.

  • Environnement de test – Identifiez le matériel, les logiciels, le système d'exploitation requis pour les tests d'endurance, en attribuant les rôles et les responsabilités au sein de l'équipe, etc. L'environnement doit être prêt avant l'exécution du test. Vous devez également estimer la taille de production de bases de données communes et la croissance annuelle. Ceci est obligatoire, vous devez donc tester la réponse de votre candidature après un an, deux ou cinq.
  • Création du plan de test, des scénarios – En fonction de la nature des tests – manuels ou automatisés ou une combinaison des deux, Cas de test la conception, les révisions et l’exécution doivent être planifiées. Les tests visant à stresser le système, les tests de points de rupture, etc. doivent également faire partie du plan de test. Les tests visant à stresser le système déterminent le point d'arrêt dans l'application.
  • Estimation des tests – Fournissez une estimation du temps qu’il faudra pour terminer la phase de test. Il doit être analysé en fonction du nombre de testeurs impliqués et du nombre de cycles de test requis.
  • Analyse de risque - Analyser le risque et prendre les mesures appropriées pour la prévention. Hiérarchisation des cas de test selon le facteur de risque et identification des risques et des problèmes ci-dessous que le testeur peut effectuer pendant le test d'endurance.
  • Les performances resteront-elles constantes dans le temps ?
  • Y a-t-il d'autres problèmes mineurs qui n'ont pas encore été détectés ?
  • Y a-t-il des interférences externes qui n’ont pas été traitées ?
  • Calendrier des tests – Déterminer le budget, les livrables dans les délais. Comme Test d'endurance applique une disposition de charge énorme mais naturelle de transactions au système/application pendant une période de temps continue.

Exemple de test d'endurance

Si Tests de résistance pousse le système testé dans ses retranchements, Essais d'endurance pousse l'application à ses limites au fil du temps.

Par exemple, les problèmes les plus complexes – fuites de mémoire, saturation du serveur de base de données et blocage du système – surviennent lors d'une utilisation prolongée du logiciel. Sans tests d'endurance, les chances de détecter ces défauts avant le déploiement sont minimes.

Outils de test d'endurance

Avantages des tests d'endurance

  • Cela aide à déterminer la charge de travail que le système sous charge peut gérer.
  • Fournit des données précises que le client peut utiliser pour valider ou améliorer ses besoins en infrastructure.
  • Identifie les problèmes de performances qui peuvent survenir après qu'un système fonctionne à un niveau élevé pendant une période prolongée
  • Les problèmes typiques sont identifiés lors de tests de performances ciblés plus petits, ce qui signifie que les applications restent disponibles même en cas de charge énorme dans un laps de temps très court.
  • Le test d'endurance est également utilisé pour vérifier s'il y a une dégradation des performances après une longue période d'exécution.

Inconvénients des tests d'endurance

  • Il est souvent difficile de définir le niveau de stress qui vaut la peine d’être appliqué.
  • Les tests d'endurance peuvent provoquer des pannes d'application et/ou de réseau pouvant entraîner une perturbation importante si Environnement de test ne sont pas isolés.
  • Une perte ou une corruption permanente des données peut survenir en raison d'une sollicitation excessive du système.
  • L’utilisation des ressources reste très élevée une fois le stress supprimé.
  • Certains composants de l'application ne répondent pas.
  • Les exceptions non gérées sont observées par l'utilisateur final.

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 d'endurance : principaux enseignements

  • In Génie logiciel, Les tests d'endurance sont un sous-ensemble des tests de charge.
  • Les tests d'endurance sont un long processus et durent parfois jusqu'à un an.
  • Des contrôles sont effectués pour vérifier
  • Tester la fuite de mémoire
  • Temps de réponse des tests
  • Tester la connexion à la base de données, etc.

FAQ

Les tests de charge vérifient que le système atteint ses objectifs à charge maximale sur une courte période. Les tests d'endurance maintiennent le système sous charge normale pendant plusieurs heures afin de déterminer si ces objectifs sont toujours atteints à la fin de la période.

Toute tendance à la hausse persistante du temps de réponse ou de l'utilisation des ressources, même sans franchissement de seuil, constitue un défaut. Le problème réside dans la dérive elle-même, car elle finira par dépasser la limite en production.

Une fois les tests fonctionnels et de charge validés, et suffisamment tôt pour qu'une fuite détectée puisse encore être corrigée, l'exécution la veille de la mise en production ne laisse aucun temps pour agir sur les résultats.

La surveillance basée sur l'IA détecte le moment où une mesure change de tendance et la met en corrélation avec les déploiements ou les tâches planifiées, transformant des heures de graphiques en un suspect précis.

Cela permet d'établir des priorités. Les modèles de risque mettent en évidence les versions qui touchent du code vulnérable aux fuites de code, de sorte que les exécutions complètes sont réservées aux modifications les plus susceptibles d'en avoir besoin.

Résumez cet article avec :