Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Comparaison de performance entre différents types d'ordinateurs.

Un test de performance est un test dont l'objectif est de déterminer la performance d'un système informatique.

L'acception la plus courante de ce terme est celle dans laquelle ces tests logiciels vont avoir pour objectif de mesurer les temps de réponse d'un système applicatif en fonction de sa sollicitation. Cette définition est donc très proche de celle de test de charge où l'on mesure le comportement d'un système en fonction de la charge d'utilisateurs simultanés. Seuls les tests de charge permettent de valider correctement une application ou un système avant déploiement, tant en qualité de service qu'en consommation de ressources.

Types de tests

[modifier | modifier le code]

Ces tests peuvent être de plusieurs types, notamment :

Étant entendu qu'en principe un type de test correspond à un type d'objectif, et que dans une matrice de couverture des tests les résultats se recoupent obligatoirement, il est rare (et coûteux) de réaliser l’ensemble de ces tests pour une application donnée.

Si l'application est déjà en production, ou en phase pilote, on peut aussi, afin de connaître les performances du système, réaliser une métrologie, qualifiée de surveillance de la production, qui permettra d'observer dans le détail le fonctionnement du système sur la base d'actions réelles des utilisateurs. Les résultats d'une telle campagne de métrologie permettant de connaître les fonctionnalités réellement utilisées, et leur fréquence d'utilisation, ils peuvent ensuite servir de base pour orienter les tests à réaliser dans des simulations futures, ou servir de base à une solution de supervision de la production.

Définition du plan de tests

[modifier | modifier le code]
Article détaillé : Protocole de tests.

Le plan de tests est l'expression du besoin de la campagne de tests, et c'est le premier livrable du processus des tests. On y trouve la présentation du projet (résumé, architecture technique et logicielle), les objectifs, le modèle de charge, le type de tests à réaliser, les scénarios fonctionnels (ou cas d'utilisation) à tester accompagnés des jeux de données nécessaires, et un planning d'exécution de ces tests. Ce document reprend des éléments des entrées au processus des tests, notamment le cahier des charges des tests établi par le « client » (en général, une MOE) auquel est joint le Document d'Architecture Technique. Bien évidemment, la réussite du processus est directement liée à la précision et la complétude des informations fournies en entrée.

Les jeux de données permettent de simuler au plus juste la réalité. Un jeu de données peut, par exemple, consister en n logins et n mots de passe, permettant ainsi de simuler des utilisateurs différents se connectant à l'application.

Le modèle de charge consiste, à partir d'un modèle d'usage de l'application (nombre d'utilisateurs simultanés, nombre de processus métier réalisés, périodes d'utilisation, heures de pointe…) à modéliser la charge qui devra être simulée et qui se devra d'être représentative de l'activité réelle ou attendue de l'application en pic, en général lors d'un test de stress, en tenant compte de l'environnement des tests. Cette modélisation contient donc un nombre d'utilisateurs à simuler, leur répartition sur les différents scripts (scénarios fonctionnels), leurs rythmes d'exécution respectifs. Accessoirement, le modèle peut tenir compte des profils de montée ou descente de charge des groupes d'utilisateurs, si cela revêt une importance très particulière (par exemple lorsque l'on veut simuler des « rafales » de transactions), sachant que par principe les performances en charge cible doivent être indépendantes de la montée en charge (après stabilisation).

Présentation des résultats et Bilan des Tests

[modifier | modifier le code]

Le Bilan des Tests, livrable obligatoire et essentiel du processus de test, donne les résultats obtenus lors des tests effectués, éventuellement un avis de mise en production, mais aussi des préconisations applicatives ou systèmes pour résoudre les problèmes de performance.

Corrélé au Plan de Test, il permet de valider que les résultats obtenus sont conformes aux objectifs attendus, dans un contexte technique précis (production, préproduction, dédié, modélisé…), éventuellement optimisé, avec des hypothèses de charge clairement identifiées et définies par les MOA, et/ou MOE, et/ou Production.

À ce titre, il restitue des résultats selon trois vues :

L'ensemble des données restituées dans le bilan donne donc un niveau de qualité de service de l'application, en charge, qui est à rapprocher des attendus prédéfinis dans le Plan de Test. Il doit permettre aux équipes de production d'anticiper les ressources à mettre à disposition, ainsi que les paramétrages à mettre en œuvre.

Méthodologie

[modifier | modifier le code]

Les tests de performance doivent être implémentés et réalisés tout au long du cycle de développement, et ce le plus tôt possible. Un résultat plus ou moins précis maintenant vaut mieux qu’un résultat très précis plus tard.

Étape 1 : Analyse de Référence (l’analyse préliminaire consiste en l’enregistrement d’un ou de plusieurs scénarios (ou cas d'utilisation) pour mieux comprendre l’application et l’étendue du test).

Étape 2 : Tests Préliminaires.

Étape 3 : Test de Charge à Grande Échelle

Outillage nécessaire

[modifier | modifier le code]

Comme il s'agit en général de simuler un nombre d'utilisateurs important, il s'avère nécessaire d'automatiser ces tests. L'automatisation des tests, que ce soit pour des tests de performance ou non, nécessite de répondre à deux problèmes :

Prenons par exemple le cas du test de performance d'un portail eCommerce dans lequel on va adresser plus particulièrement la fonction de constitution d'un panier d'achat. Il faut disposer d'un mécanisme d'automatisation des actions de sélection d'article, de validation de commande, etc. Mais il faut également valoriser ces actions en donnant les articles qui seront effectivement commandés par les utilisateurs virtuels (simulés) dans le cadre du test de performance. Or, la nature et le nombre de ces articles peuvent varier en fonction du contenu de la base de données d'articles de l'application, du profil de consommateur de l'utilisateur simulé, ou encore de la période de l'année que l'on simule dans le test.

Une plate-forme de test de performances va généralement comporter :

Les solutions de tests de performances Web vont permettre de simplifier et d'automatiser les tests : création plus ou moins automatisée des scénarios de tests, configuration des scénarios avec ou sans script, simulation d'utilisateurs virtuels avec collecte des mesures (et génération automatique de rapports), etc.

Il est utile de se souvenir que les outils de test de performance peuvent générer des effets de sonde, et qu'il faut donc les utiliser ou les configurer de manière que ce risque soit réduit.

Acteurs et outils du marché

[modifier | modifier le code]

Plusieurs outils permettent de réaliser des tests de performances ; ce qui les différencie, ce sont notamment :

Selon plusieurs cabinets d'analyse tels IDC[1] ou Gartner Group, des leaders se démarquent sur le marché, mais il existe aussi quantité de produits Open Source ou à prix réduits, surtout pour les applications Web. Les solutions les plus représentatives du secteur sont :

Gestion des données de test

[modifier | modifier le code]

On distingue dans la gestion des données de test deux principaux types d'acteurs. Il y a ceux qui s'appuient sur les données de production et proposent des outils d'extraction et de transformation des données de production et ceux qui s'appuient sur des mécanismes de génération pour produire à partir de rien (ou presque) les jeux de données de test.

Les outils basés sur l'extraction sont particulièrement pertinents pour construire des bases de test de référence comme des catalogues de produits. D'ailleurs, n'importe quel outil d'extraction de base de données doit pouvoir faire l'affaire. Toutefois, IBM avec Optim et Micro Focus (ex-Compuware) avec FileAid se sont positionnés sur ce marché avec des outils qui, à l'origine, servent à faire de la duplication de base de données (pour traiter des problématiques d'archivage des données anciennes, par exemple).

Une solution basée sur la génération automatique est quasiment incontournable pour produire les différentes transactions (constitution d'un panier d'achat par exemple) qui vont servir à valoriser les scripts de test. Si la variabilité du comportement des utilisateurs virtuels est un critère de pertinence pour la campagne de test alors chacune des transactions injectées dans une campagne de test doit être originale et globalement l'ensemble des transactions doivent avoir une cohérence vis-à-vis des objectifs de tests. Sur le marché des outils de génération de données on trouve moins d'acteurs, mais on peut noter Grid-Tools, une société anglaise qui édite DataMaker et GenieLog qui édite l'atelier de production de jeux de données GEDIS Studio.

Organismes du secteur

[modifier | modifier le code]

Notes et références

[modifier | modifier le code]

Voir aussi

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]