Vocabulaire ISTQB : on fait le point !
Dans le domaine du test comme ailleurs, il est important de bien nommer les choses afin de partager un langage commun avec ses interlocuteurs.
Quelle est donc la différence entre un test de charge et un test de performance ? S’agit-il de la même chose que d’un test de stress ? De robustesse ?… Sans avoir connaissance des définitions précises de ces termes, il est facile de s’emmêler les pinceaux.
Or, il arrive que des sons de cloche ne s’accordent pas, et par exemple que des sites se contredisent entre eux. Pourquoi ? D’une part, parce que les tests se ressemblent et mettent parfois en jeu les mêmes outils. D’autre part, parce que les termes évoquent des choses similaires ; dans la vie de tous les jours, on peut dire qu’une équipe performante est capable de tenir une grosse charge de travail en gérant bien son stress.
Il est donc important de se baser sur une source qui fasse autorité et permette de trancher ! Ici, nous nous réfèrerons au glossaire officiel de l’ISTQB, un « must-have » et un « must-read » pour les testeurs. Plongeons-nous donc dans les définitions de ces termes !
Qu’est-ce qu’un test de performance ?
Test de performance : le processus de test pour déterminer les performances d‘un produit logiciel.
Performance : degré en fonction duquel le système ou composant accomplit les fonctions qui lui sont affectées dans le respect de contraintes données en ce qui concerne son temps d‘exécution et taux de débit. [d‘après IEEE 610]
Le but du test de performance est de fournir des métriques sur la rapidité de l’application. On veut déterminer si elle est capable d’exécuter ses fonctionnalités en un temps acceptable. La priorité n’est pas de connaître les performances de l’application dans un contexte particulier. Pour cela, un autre type de test peut être distingué : le test de rendement.
Le test de performance répond à la question : l’application est-elle suffisamment rapide ?
Des APIs permettent de diagnostiquer rapidement les problèmes de performances d’une page web. La plus utilisée est certainement PageSpeed, développée par Google. Elle founit un score sur 100, ainsi que des pistes pour améliorer la vitesse de chargement de la page.
Amusez-vous à utiliser cette ressource pour évaluer la performance de votre site web !
Voici par exemple les résultats du calcul des performances du site Testeum :
Qu’est-ce qu’un test de rendement ?
Test de rendement : le processus de test pour déterminer le rendement d‘un produit logiciel.
Rendement : la capacité du produit logiciel à fournir des performances appropriées, relatives au niveau de ressources utilisées dans des conditions spécifiées. [ISO 9126]
Le test de rendement introduit la notion de « conditions ». Le test de rendement permet d’établir un rapport entre performances et ressources utilisées dans un contexte réaliste (ex : plusieurs utilisateurs connectés en même temps, réalisant des requêtes consommant plus ou moins de ressources).
Le test de rendement répond à la question : l’application est-elle suffisamment rapide dans un contexte donné ?
Qu’est-ce qu’un test de charge ?
Test de charge : un type de test concerné par la mesure du comportement d‘un composant ou système avec une charge croissante, p.ex. nombre d‘utilisateurs et/ou nombre de transactions en parallèle pour déterminer quelle charge peut être gérée par le composant ou système
Le test de charge recherche la limite des capacités de l’application. En augmentant graduellement la charge à laquelle est soumise l’application, il est possible d’identifier des paliers. On peut considérer le test de charge comme un pré-requis au test de stress.
Le test de charge répond à la question : quelle est la charge maximale supportée par l’application ?
Qu’est-ce qu’un test de stress ?
Test de stress : Un type de test de performance mené pour évaluer un système ou composant à ou au-delà des limites de sa charge de travail anticipées ou spécifiées, ou avec une disponibilité réduites de ressources telles que l‘accès mémoire ou serveurs [d‘après IEEE 610].
Le test de stress permet d’anticiper les performances d’une application en contexte exceptionnel (afflux non anticipé d’utilisateurs, panne). Un cas d’école : l’explosion des visites sur un site de e-commerce le premier jour des soldes. On peut considérer le test de stress comme une catégorie de test de robustesse.
Le test de stress répond à la question : comment réagit l’application lorsqu’elle est soumise à sa charge maximale ?
Qu’est-ce qu’un test de robustesse ?
Test de robustesse : test concernant le degré pour lequel un composant ou système peut fonctionner correctement en présence de données d‘entrée invalides ou de conditions environnementales stressantes.
Le test de robustesse permet de vérifier qu’une application reste opérationnelle en contexte exceptionnel. Les menaces testées viennent aussi bien d’une charge importante (comme le test de stress) que de comportements non souhaités (flux d’informations incorrectes, de fichiers corrompus…)
Le test de robustesse répond à la question : comment réagit l’application lorsqu’elle est soumise à des inputs ou un contexte exceptionnels ?
Autant de tests non-fonctionnels…
Malgré leur synonymie apparente, les différents termes que nous venons de présenter donnent donc lieu à des tests spécifiques, que nous ne devrions pas confondre afin de maintenir une communication claire.
Envie de passer une certification ISTQB ?
Si vous souhaitez approfondir vos connaissances en test, nous organisons à la demande des accompagnements à la maîtrise d’ISTQB à Nouméa. Hightest est organisme de certification accrédité par le GASQ depuis 2015 et est habilité à organiser des examens ISTQB. Pour plus d’informations, veuillez prendre contact avec nous !
Et pour vos révisions, jetez un oeil à notre article Les 7 principes généraux du test en illustrations et à nos différents quiz en ligne !