Le test de performance

11 Juillet 2019
test de performance
La qualité d’un outil informatique est définie par les normes ISO9126 & 25000 selon six critères. Les tests fonctionnels couvrent les critères « capacité fonctionnelle » et « facilité d’utilisation ». Les tests techniques évaluent « la fiabilité, le rendement, la maintenabilité et la portabilité » du système. A travers cet article, nous nous intéresserons plus spécifiquement au test de performance qui couvre une partie des critères des tests techniques.
Qu’est-ce que le test de performance ?

D’un point de vue opérationnel, le test de performance a pour objectif d’évaluer le comportement d’un système applicatif en fonction de sa sollicitation. Cette évaluation consiste à mesurer la consommation des ressources du système et les temps de réponse pendant la simulation d’un nombre important d’utilisateurs concurrents, sur la base d’exécutions d’actions utilisateurs proches du réel avec une volumétrie de données importante.

La qualité du système repose sur :

  • son temps de réponse (utilisateur, réseau, requête),
  • sa capacité à supporter n utilisateurs simultanément,
  • sa consommation de ressources (mémoire, processeur, disque et réseau),
  • sa stabilité (fonctionnement nominal sans erreur ni compromission des données),
  • sa scalabilité (capacité à s’adapter aux montées et baisses de charge).
 
L’intégration du test de performance dans les normes ISO 9126 &25000
Au niveau du critère de fiabilité

Est-ce que le logiciel maintient son niveau de service dans des conditions précises et pendant une période déterminée ? Le test de performance permet de vérifier la tolérance aux fautes du système à savoir sa capacité à fonctionner en mode dégradé c’est-à-dire en cas de panne.

Au niveau du critère de rendement

Est-ce que le logiciel requiert un dimensionnement rentable et proportionné de la plate-forme d’hébergement en regard des autres exigences ? Ce critère est intégralement couvert par le test de performance. Il regroupe le comportement de l’application vis-à-vis du temps (temps de réponse, nombre de transactions par seconde), l’utilisation des ressources (mémoire, processeur, disque et réseau) et le rendement lui-même (relation entre le niveau de performance du logiciel et la quantité de ressources utilisées).

Au niveau du critère de maintenabilité

Est-ce que le logiciel requiert peu d’effort à son évolution par rapport aux nouveaux besoins ? Le test de performance s’applique à la notion de stabilité, c’est-à-dire l’état dans lequel le logiciel peut accomplir toutes les tâches prévues sans apparition de nouveaux bogues.

Au niveau du critère de portabilité

Est-ce que le logiciel peut être transféré d’une plate-forme ou d’un environnement à un autre ? Le test de performance permet d’évaluer la facilité d'adaptation du logiciel à des changements de spécifications ou d'environnements opérationnels.

En résumé :

qualite_du_logiciel

Les apports des tests de performance

Les tests de performances sont utilisés tout au long du cycle de vie du logiciel, au moment de sa mise au point initiale, mais aussi en maintenance pour le faire évoluer ou pour corriger des défauts. Les bénéfices en sont multiples :

  • connaître la capacité du système et ses limites,
  • détecter et surveiller ses points faibles, 
  • optimiser ses coûts en infrastructure en rationalisant les ressources,
  • s’assurer qu’il fonctionne sans erreurs sous certaines conditions de charge,
  • optimiser les temps de réponse pour améliorer l’expérience utilisateur,
  • vérifier la stabilité entre la version de production et la version n+1,
  • réduire les risques techniques et les incidents en production,
  • reproduire un problème de production,
  • anticiper une montée en charge future ou l’ajout d’une fonctionnalité,
  • veiller au bon comportement du système et de ses applications tierces externes, en cas de panne puis de reconnexion, etc.
 
Méthodologie

La performance d’une application doit être prise en compte dès la phase de pré-étude/conception. Il est important de bien identifier les contraintes système (sauvegarde, réseau) et de s’assurer que l’architecture technique/applicative choisie ainsi que les Framework retenus seront bien adaptés à la couverture des exigences.

La mise en place de tests de performance repose sur :

  • la définition du périmètre (technique, fonctionnel),
  • la définition des conditions de tests (entrées, données, services tiers),
  • la fiabilité de l’environnement de test,
  • le monitoring du système,
  • l’efficacité des outils de test.

perimetre

Déroulement d’une campagne de tests

Une campagne de tests de performance se découpe en quatre phases distinctes.

 

1. Etude de la campagne

Une campagne de test de performance débute par l’étude de la campagne et la définition des prérequis.

Dans un premier temps sont passés en revue la technologie utilisée (web, SAP, Oracle, RDP, Citrix, Mainframe, Windows Sockets), l’architecture mise en place (serveur, cluster, base de données, proxy), les composants à tester ainsi que les services tiers (appels vers services extérieurs à l’environnement).

Puis il convient d’identifier les processus métiers à tester (scenarios utilisateurs les plus utilisés, les plus risqués), le trafic attendu à plus ou moins long terme (nombre nominal d’utilisateurs, pic de charge, nombre de transactions par seconde) et le volume de données attendu (disponibilité d’une base de production, nécessité de créer des données, périssabilité des données).

Une fois ces deux étapes réalisées, il est important de bien définir les exigences au niveau des temps de réponse et de la consommation des ressources sur lesquelles reposeront les critères d’acceptation des résultats de test.

Suivant la technologie utilisée et les contraintes budgétaires les outils de scripting, injection et monitoring (définis au paragraphe suivant) sont choisis.

Et enfin la stratégie de test est mise en place définissant le type de tests à exécuter pour couvrir l’ensemble des exigences.

 

2. Phase de Préparation

Cette phase comprend la mise en place de l’environnement de test dédié aux tests de performance (ISO PROD - configuration/volumétrie, mises en place de sonde pour monitorer les ressources), la création de jeux de données si besoin et le scripting des processus métier (séquences d’actions utilisateur) à tester via l’outil de scripting retenu.

Si le système fait appel à des services tiers, un système de bouchon sera mis en place pour isoler la plateforme de l’extérieur et ainsi éviter que les tests soient impactés par la latence réseau entre le système à tester et ces appels externes. Pour se faire plusieurs mécanismes existent : service virtuels/fichiers textes qui stockent la réponse à une requête, code de l’application mis à jour pour renvoyer toujours la même réponse au système sans envoyer de requête vers l’extérieur.

 

3. Exécution des tests

Une fois la phase de test démarrée, les tests de performances définis dans la stratégie de test sont exécutés avec l’outil d’injection retenu, analysés (détection de problèmes en fonction des exigences) et stockés (sauvegarde des rapports de tests, historisation).

Les anomalies identifiées sont saisies et documentées dans l’’outil de gestion de bogue retenu.

Suivant les anomalies rencontrées de nouveaux tests d’investigation peuvent être exécutés (tests de diagnostic définis plus bas ou utilisation d’outils de diagnostic) pour cibler la cause du problème et faciliter sa résolution.

Dès qu’un correctif est disponible, la plateforme est mise à jour et les tests nécessaires à la validation de ce dernier sont rejoués.

 

4. Rapports & Recommandations

Tout au long de la campagne de test de performance des statuts intermédiaires sont envoyés. La fréquence varie en fonction de la criticité des tests et de ce qui a été convenu lors de l’étude préliminaire de la campagne.

Une fois l’ensemble des tests exécutés un rapport détaillé est envoyé avec un statut final (GO/NO GO) ainsi que des recommandations, si nécessaire.

Si des problèmes persistent à la fin de la campagne il peut être convenu de relancer une nouvelle campagne de tests après livraison des correctifs attendus.

 

En résumé :

etude_campagne

 

Aussi n’hésitez pas à visiter notre page web dédiée aux Tests logiciels.

Parlons ensemble de vos projets.

contact