Qu’est-ce que les tests STRESS dans les tests logiciels ?

Test de stress

Test de stress est un type de test logiciel qui vérifie la stabilité et la fiabilité de l'application logicielle. L'objectif des tests de résistance est de mesurer la robustesse et les capacités de gestion des erreurs des logiciels dans des conditions de charge extrêmement lourdes et de garantir que le logiciel ne plante pas dans des situations critiques. Il teste même au-delà des points de fonctionnement normaux et évalue le fonctionnement du logiciel dans des conditions extrêmes.

image de test de résistance

En génie logiciel, les tests de résistance sont également connus sous le nom de Test d'endurance. Dans le cadre des tests de résistance, l'AUT est soumis à une contrainte pendant une courte période pour connaître sa capacité de résistance. Une utilisation la plus importante des tests de résistance consiste à déterminer la limite à laquelle le système, le logiciel ou le matériel tombe en panne. Il vérifie également si le système démontre une gestion efficace des erreurs dans des conditions extrêmes.

L'application testée sera stressée lorsque 5 Go de données seront copiées à partir du site Web et collées dans le bloc-notes. Le Bloc-notes est soumis à une contrainte et affiche le message d'erreur « Pas de réponse ».

Qu'est-ce que les tests STRESS dans les tests logiciels : outils, besoins et types

Nécessité de tests de résistance

Considérez ce qui suitwing exemples en temps réel où nous pouvons découvrir l'utilisation des tests de résistance-

  • Pendant la période du festival, un site de vente en ligne peut être témoin d’un pic de trafic ou lorsqu’il annonce une vente.
  • Lorsqu’un blog est mentionné dans un journal de premier plan, il connaît une soudaine augmentation du trafic.

Il est impératif d’effectuer des tests de résistance pour s’adapter à de tels pics de trafic anormaux. Ne pas prendre en compte ce trafic soudain peut entraîner une perte de revenus et de réputation.

Les tests de résistance sont également extrêmement précieux pour le suiviwing les raisons:

  • Pour vérifier si le système fonctionne dans des conditions anormales.
  • Affichage d'un message d'erreur approprié lorsque le système est soumis à des contraintes.
  • Une défaillance du système dans des conditions extrêmes pourrait entraîner une énorme perte de revenus
  • Il est préférable de se préparer aux conditions extrêmes en exécutant des tests de résistance.

Objectifs des tests de résistance

L’objectif des tests de résistance est d’analyser le comportement du système après une panne. Pour que les tests de résistance réussissent, un système doit afficher un message d'erreur approprié lorsqu'il se trouve dans des conditions extrêmes.

Pour effectuer des tests de résistance, des ensembles de données massifs peuvent parfois être utilisés, qui peuvent être perdus lors des tests de résistance. Les testeurs ne doivent pas perdre ces données liées à la sécurité lors des tests de résistance.

L'objectif principal des tests de résistance est de s'assurer que le système se rétablit après une panne, appelée ainsi récupérabilité.

Tests de charge et tests de contrainte

Image Tests de charge vs tests de contrainte

test de charge Test de stress
test de charge consiste à tester le comportement du système dans des conditions normales de charge de travail, et il s'agit simplement de tester ou de simuler avec la charge de travail réelle Les tests de résistance consistent à tester le comportement du système dans des conditions extrêmes et sont effectués jusqu'à la défaillance du système.
Les tests de charge ne cassent pas le système Les tests de résistance tentent de briser le système en testant avec des données ou des ressources écrasantes.

Types de tests de résistance :

Following sont les types de tests de résistance et sont expliqués comme suit :

Tests de résistance distribués :

Types de tests de résistance image

Dans les systèmes client-serveur distribués, les tests sont effectués sur tous les clients du serveur. Le rôle du serveur de stress est de distribuer un ensemble de tests de stress à tous les clients stressés et de suivre l'état du client. Une fois que le client a contacté le serveur, celui-ci ajoute le nom du client et commence à envoyer des données pour tests.

Pendant ce temps, les machines clientes envoient un signal ou un battement de cœur indiquant qu'elles sont connectées au serveur. Si le serveur ne reçoit aucun signal de la machine client, il doit être étudié plus en détail pour le débogage. D'après la figure, un serveur peut se connecter aux 2 clients (Client1 et Client2), mais il ne peut pas envoyer ou recevoir de signal des Clients 3 et 4.

L’exécution de nuit est la meilleure option pour exécuter ces scénarios de tests de résistance. Les grandes batteries de serveurs ont besoin d'une méthode plus efficace pour déterminer quels ordinateurs ont subi des pannes de stress qui doivent faire l'objet d'une enquête.

Tests de résistance des applications :

Ces tests se concentrent sur la recherche de défauts liés au verrouillage et au blocage des données, aux problèmes de réseau et aux goulots d'étranglement des performances dans une application.

Tests de résistance transactionnels :

Il effectue des tests de résistance sur une ou plusieurs transactions entre deux ou plusieurs applications. Il est utilisé pour affiner et optimiser le système.

Tests de stress systémique :

Il s'agit de tests de stress intégrés qui peuvent être testés sur plusieurs systèmes exécutés sur le même serveur. Il est utilisé pour détecter les défauts dans lesquels les données d'une application bloquent une autre application.

Tests de résistance exploratoires :

Il s’agit de l’un des types de tests de résistance utilisés pour tester le système avec des paramètres ou des conditions inhabituelles peu susceptibles de se produire dans un scénario réel. Il est utilisé pour trouver des défauts dans des scénarios inattendus comme

  1. Un grand nombre d'utilisateurs connectés en même temps
  2. Si un antivirus a démarré sur toutes les machines simultanémentneohabituellement
  3. Si la base de données est devenue hors ligne lors d'un accès à partir d'un site Web,
  4. Lorsqu'un grand volume de données est inséré simultanément dans la base de donnéesneohabituellement

Comment faire des tests de résistance ?

Le processus de stress test peut être effectué en 5 étapes principales :

Étape 1) Planification du test de résistance : Ici, vous rassemblez les données du système, analysez le système, définissez les objectifs des tests de résistance.

Étape 2) Créez des scripts d'automatisation : Dans cette phase, vous créez les scripts d'automatisation des tests de stress et générez les données de test pour les scénarios de stress.

Étape 3) Exécution du script : Au cours de cette étape, vous exécutez les scripts d'automatisation des tests de stress et stockez les résultats de stress.

Étape 4) Analyse des résultats : Au cours de cette étape, vous analysez les résultats du stress test et identifiez les goulots d’étranglement.

Étape 5) Ajustement et optimisation : Dans cette étape, vous affinez le système, modifiez les configurations, optimisez le code dans le but d'atteindre le benchmark souhaité.

Enfin, vous exécutez à nouveau l'intégralité du cycle pour déterminer que les ajustements ont produit les résultats souhaités. Par exemple, il n'est pas rare de devoir effectuer 3 à 4 cycles de stress tests pour atteindre les objectifs de performance.

Outils recommandés pour les tests de résistance

LoadRunner

LoadRunner de HP est un outil de test de charge largement utilisé. Les résultats des tests de charge façonnés par Loadrunner sont considérés comme une référence.

Jmeter

Jmeter est un outil de test Open Source. C'est un pur Java demande de stress et Test de performance. Jmeter est destiné à couvrir des types de tests tels que la charge, le fonctionnement, le stress, etc. Il nécessite JDK 5 ou supérieur pour fonctionner.

Testeur d'effort

Cet outil fournit une analyse approfondie des performances de l’application Web, fournit des résultats sous forme graphique et est extrêmement simple à utiliser. Aucun script de haut niveau n'est requis et offre un bon retour sur investissement.

Neo charge

Il s'agit d'un outil populaire disponible sur le marché pour tester le Web et Breeze Mobile applications. Cet outil peut simuler des milliers d'utilisateurs afin d'évaluer les performances des applications sous charge et d'analyser les temps de réponse. Il prend également en charge les tests de performances, de charge et de stress intégrés au cloud. Il est facile à utiliser, économique et offre une bonne évolutivité.

Paramètres pour les tests de résistance

Les métriques aident à évaluer les performances d'un système et sont généralement étudiées à la fin du test de résistance. Les métriques couramment utilisées sont –

Mesurer l'évolutivité et les performances

  • Pages par seconde : mesure le nombre de pages demandées/seconde
  • Débit : métrique de base – Taille des données de réponse/seconde
  • Tours : nombre de fois où des scénarios de test ont été planifiés par rapport au nombre de fois où un client a été exécuté

Réponse de l'application

  • Temps d'accès : Temps moyen pour récupérer une image ou une page
  • Temps jusqu'au premier octet : le temps est nécessaire pour renvoyer le premier octet de données ou d'informations
  • Temps de page : le temps est nécessaire pour récupérer toutes les informations d'une page

Les échecs

  • Connexions échouées : nombre de connexions échouées refusées par le client (signal faible)
  • Tours échoués : nombre de tours ayant échoué
  • Échecs : nombre de tentatives infructueuses effectuées par le système (liens brisés ou images invisibles)

Conclusion

L'objectif des tests de résistance est de vérifier le système dans des conditions extrêmes. Il surveille les ressources système telles que la mémoire, le processeur, le réseau, etc., et vérifie la capacité du système à revenir à son état normal. Il vérifie si le système affiche les messages d'erreur appropriés en cas de stress.

Exemple de test de résistance

  1. Le site de commerce électronique annonce une vente de festival
  2. Site d'information à l'occasion de certains grands événements
  3. Site Web des résultats du Conseil de l'éducation
  4. Sites ou blogs de réseaux sociaux, applications, etc.