Quelles différences entre un test de performance et un test de montée en charge ?

Publié le : 13 mars 2020

La question pourrait paraître évidente mais pas tant que ça au regard du nombre de cas ou d’articles abordant les deux sujets sans aucune distinction. Bien trop souvent confondus, les tests de performance et les tests de montée en charge sont des tests complètements différents avec chacun leurs objectifs. On fait le tour de la question dans cet article : tests de performance et tests de montée en charge, quelles différences ?

Pour ceux qui maitrise le glossaire CFTL/ISTQB vous pourriez être offusqués car il classe les tests de charge comme une sous partie des tests de performance. Et pourtant au quotidien, fort des 10 années de retour d’expérience, nos interlocuteurs distinguent ces deux notions. 

Définition ISTQB :

Test de performance : Tests pour déterminer la performance d’un produit logiciel.

Performance : La mesure selon laquelle une composante ou un système utilise le temps, les ressources et la capacité dans l’accomplissement de ses fonctions assignées. Synonymes : Comportement dans le temps, Efficience de la performance. Ref : D’après ISO 25010

Tests de charge : Type de test de performance effectué pour évaluer le comportement d’un composant ou d’un système sous des charges variables, habituellement entre des conditions prévues d’utilisation faible, typique et de pointe. Voir aussi : Tests de performance, tests de stress Ref : ISO 29119

cloudnetcare-performance-montee-en-charge

Les tests de performance.

À chacune des modifications et nouvelles versions mises en ligne sur votre site internet ou votre application il est essentiel de vérifier que cela n’a pas nui à la performance (qualité du ressenti de l’utilisateur) : est-ce que les utilisateurs accèdent à mon site dans les mêmes conditions ? Pour faire plus simple « est-ce-que mon logiciel est aussi, moins ou plus performant. 

Pour répondre à cette question on réalise plusieurs tests de performance :

  1. Un premier test avant la mise en production de la nouvelle version qui va servir de référence (s’il n’y a pas de performance de référence récente).
  2. Un deuxième test après la mise en production dont les résultats seront comparés aux tests n°1.

Il faut construire un scénario le plus représentatif possible pour que les tests soient pertinents. Ce scénario sera exécuté avec un internaute virtuel et selon une fréquence programmée (ex : toutes les deux heures sur une période de 48 heures). L’exécution des tâches va permettre de remonter un ensemble de métrique que l’on pourra comparer avec les tests précédents.

Toutes les requêtes exécutées sont analysées pour déterminer, le cas échéant, là où les requêtes en cause. Ces informations pourront être transmises aux équipes de développement pour qu’elles puissent apporter les correctifs nécessaires.

Les tests de performance ne sont là que pour mesurer la qualité du ressenti d’un utilisateur après une mise en production. Ils répondent à la question : est-ce que mon site est toujours aussi performant ? 

Exemple de rapport de test de performance 

Cloudnetcare-tests-de-chagre-vs-tests-de-performance-rapport

Rapport-Cloudnetcare-tests-de-chagre-vs-tests-de-performance

Les tests de charge.

Avant une campagne commerciale ou des périodes clés d’une année marketing il convient d’anticiper la capacité du site/application et de l’infrastructure à absorber les pics d’utilisateurs et pour cela il existe les stress tests. Mais pour ceux qui veulent aller plus loin et qui souhaitent identifier le moment où leur site internet ou application n’est plus accessible dans des conditions d’utilisation minimum suffisantes (selon des critères préalablement définis), il n’y a qu’une solution : les tests de montée en charge (rappel sur la différence entre tests de montée en charge Vs Stress Test ici).

Une campagne de montée en charge va permettre de reproduire à l’identique un utilisateur et ses actions via un navigateur. Le but est de mesurer les temps de réaction du serveur, des JS et des services tiers au fur et à mesure du temps et de l’augmentation progressive du nombre d’utilisateur.

Cloudnetcare-rapport-campagne-tests-de-montee-en-charge

On obtiendra ce type de graphique représentant bien le temps de réponse du serveur en fonction du nombre d’utilisateurs simultanés.

Il sera ainsi possible de déterminer le moment où les conditions ne sont plus réunies pour permettre une expérience optimale et où il faudra rediriger les utilisateurs vers une page de débordement.

Les tests de montée en charge permettent de connaître précisément la réaction de son infrastructure/site ou application, face à des pics d’affluence et de répondre à la question : à partir de combien d’utilisateurs simultanés mon serveur ne permet plus de proposer des conditions de navigation optimale ?

En 2020 les temps de chargement d’une page sont critiques et nous nous battons tous pour les réduire ou, à minima, ne pas les augmenter. Les tests de non régression permettent d’améliorer la qualité de vos livrables mais ne tiennent pas compte des temps de chargement et c’est là où les tests de performance sont primordiaux. L’augmentation du temps de chargement d’une URL est une régression. 

De leur côté, les tests de montée en charge permettent d’anticiper des pics d’affluence et d’identifier le moment où les conditions ne sont plus réunies pour continuer d’accueillir des nouveaux visiteurs sur son infrastructure. 

Nous avons biens deux tests répondant à deux besoins différents. Attention donc à ne pas les confondre ;).

Les documents du monde du test

Les livres blancs
Lettre d’information Recevez l’actualité des tests