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 :