Page d'accueil d'OpenText.
Thèmes techniques

Qu'est-ce que l'ingénierie des performances ?

Illustration d'éléments informatiques avec une ampoule en point de mire

Présentation

Améliorer l'efficacité et la fiabilité grâce à l'ingénierie des performances

L' ingénierie des performances consiste à tester et à surveiller les performances des applications de manière proactive, continue et de bout en bout. Il permet une collaboration transparente entre les équipes, les outils et les processus grâce à des boucles de rétroaction continues. Ici, ce ne sont pas seulement les testeurs qui sont responsables de l'assurance qualité, mais aussi les développeurs, les ingénieurs de performance, les propriétaires de produits et les analystes commerciaux.

En s'appuyant sur des outils adaptés, des développeurs aux ingénieurs de performance, l'ingénierie de la performance permet de passer du test de performance à gauche au contrôle de la performance des applications à droite. Il est difficile de comprendre à quel point l'ingénierie de la performance s'éloigne des tests de performance traditionnels si l'on ne comprend pas ce que sont les tests de performance classiques.

Ingénierie des performances

Quelle est la différence entre les tests de performance et l'ingénierie de la performance ?

Les tests de performance classiques sont en fait un sous-ensemble de l'ingénierie de la performance. Il s'agit généralement d'effectuer une seule série de tests de charge dans le cadre du cycle d'assurance qualité (AQ) post-développement. Les tests de performance consistent à vérifier la vitesse, la fiabilité, l'évolutivité, la stabilité, le temps de réponse et l'utilisation des ressources d'une application dans le cadre de la charge de travail prévue. Avant d'aborder les différences entre l'ingénierie et les tests de performance, nous allons d'abord nous pencher sur les tests de performance pris isolément et sur les raisons pour lesquelles ils ne sont plus viables en soi.

  • Tout d'abord, les tests sont considérés isolément et traités comme une réflexion après coup qui ne commence qu'à la fin des tests fonctionnels.
  • Deuxièmement, le travail en silos entraîne d'importantes lacunes dans la communication entre les sous-équipes du projet et empêche la collaboration nécessaire pour fournir un produit de haute qualité.
  • Troisièmement, lorsque les tests de performance commencent, l'organisation a déjà consacré beaucoup de temps, d'efforts et de moyens financiers à la conception, au développement et à la promotion de l'application.
  • Quatrièmement, les tests de performance sont souvent traités après coup et ne sont pas inclus dans les critères d'exécution précédant la publication. À ce stade, l'entreprise a donc un besoin urgent de mettre l'application en production et n'attend aucun retard. Dans ce contexte, le retour d'information de l'assurance qualité intervient trop tard pour permettre une correction complète avant la publication. Inévitablement, un grand nombre de problèmes de performance se sont retrouvés inutilement dans l'environnement de production afin que la version reste dans les temps. La correction d'un défaut en cours de production est beaucoup plus coûteuse et perturbatrice que si elle est effectuée dès le début du développement.
  • Cinquièmement, les tests de performance traditionnels étaient peut-être parfaits pour le modèle Waterfall, mais ils n'ont plus leur place dans le monde actuel centré sur DevOps. DevOps réduit le taux d'échec des nouvelles versions en raccourcissant le délai entre le moment où une modification est intégrée au système et celui où elle est mise en production. L'intégration et la livraison continues (CI/CD) permettent de s'assurer que le logiciel est toujours en état d'être publié tout au long de son cycle de vie. DevOps se concentre également sur le réalignement de l'organisation pour soutenir la collaboration de bout en bout entre les parties prenantes, les fonctions et les outils. Pour répondre aux exigences de livraison rapide de DevOps, le développement de logiciels a besoin d'une approche de test de performance plus évoluée. Cette nouvelle approche est l'ingénierie de la performance des logiciels.

Examinons maintenant les principales différences entre l'ingénierie de la performance et les tests de performance.

  • Tout d'abord, le test de performance est un contrôle de qualité de la gestion de la charge et de la réactivité de l'application. Il détermine dans quelle mesure le système supportera une charge de production et anticipe les problèmes qui pourraient survenir en cas de forte charge. L'ingénierie des performances vise à concevoir l'application dès le départ en gardant à l'esprit les paramètres de performance et à faciliter la découverte des problèmes dès le début du développement.
  • Deuxièmement, le test de performance est un processus d'assurance qualité qui a généralement lieu lorsqu'un cycle de développement de logiciel est terminé. L'ingénierie des performances est un processus continu qui s'inscrit dans toutes les phases du cycle de développement des logiciels - de la conception au développement et à l'expérience de l'utilisateur final.
  • Troisièmement, les tests de performance sont menés par l'équipe d'assurance qualité, tandis que l'ingénierie de la performance implique le RND et l'assurance qualité.

Concepts d'ingénierie de la performance

Grâce aux concepts suivants, DevOps et l'ingénierie de la performance fournissent des résultats cohérents en matière de performance de production, permettant aux clients de déployer efficacement des applications avec plus de confiance et de déployer des logiciels performants et stables qui répondent aux attentes des utilisateurs.

Optimisation de bout en bout

L'ingénierie des performances permet d'optimiser le système de bout en bout grâce à un processus continu de test et de contrôle. Les tests de performance et de charge ont donc été intégrés au processus de développement. Contrairement aux tests de performance traditionnels, qui ont lieu après que les tests fonctionnels ont été stabilisés et que le code a été publié.

Une fois le code publié, l'ingénierie de la performance suit l'application en production en s'appuyant sur les outils de surveillance de la performance des applications (APM).

Équipe interfonctionnelle d'acteurs de la performance

L'ingénierie des performances permet la collaboration entre les parties prenantes d'un projet, des analystes commerciaux aux développeurs. Maintenir des niveaux de performance élevés qui améliorent l'expérience du client, suivre le rythme de l'activité et gérer la performance de bout en bout fait de chacun, et pas seulement des ingénieurs AQ/Performance, un responsable de la performance du produit. Voici comment.

Centre d'excellence pour les tests

Le Centre d'excellence en matière de tests (CoE) est le conseiller de confiance en matière de tests et le gardien des meilleures pratiques. Le CoE prend en charge différentes unités opérationnelles, différentes méthodes de test (telles que DevOps et Agile), et dispose de la flexibilité nécessaire pour recommander des tests de performance et des outils de test en fonction des besoins. Afin d'élaborer de meilleurs modèles de test et d'améliorer la qualité des tests, le CdE sert de point unique de consolidation et de réutilisation des données de test qui ont été générées et collectées dans plusieurs unités commerciales au fil du temps.

Ingénieur de performance

L'ingénieur en performance fournit une vision holistique de l'ensemble du code en cours de développement afin de s'assurer que les critères de test de performance sont complets, qu'ils englobent la situation dans son ensemble et qu'ils tiennent compte de tous les éléments distincts du code en cours de développement. L'ingénieur performance est le principal utilisateur des outils de test de performance et possède un haut degré d'expertise dans la création de scripts, la conception, l'exécution et l'analyse des résultats des tests. L'ingénierie de la performance fait intervenir l'ingénieur de la performance dans la phase initiale du développement, où il peut fournir les mesures de performance et les scénarios nécessaires pour que le code soit considéré comme prêt à être publié. Une implication précoce permet à l'ingénieur en charge de la performance de s'assurer que la solution répond aux attentes en matière de performance définies au début du développement. Ils confirment également que l'architecture et la conception sont cohérentes tout au long du développement.

Développeur de logiciels

Les développeurs sont des experts en codage, mais ils sont souvent peu compétents en matière de tests fonctionnels et de performance. Ils travaillent dans leur environnement de développement intégré (IDE) et ont tendance à utiliser leurs outils préférés, peu enclins à en apprendre de nouveaux. L'ingénierie de la performance passe de la gauche aux tests de performance, ce qui la fait entrer dans le domaine de responsabilité du développeur de logiciels. Avec l'aide de l'ingénieur en performance, les développeurs de logiciels peuvent effectuer des tests de performance tout en écrivant le code. Le développeur ne publie pas son code avant qu'il n'ait satisfait aux critères de test de performance.

DevTester

Le "devtester" n'existe pas dans les tests de performance classiques, car il existe des distinctions claires entre les développeurs de logiciels et les ingénieurs de performance. Avec l'ingénierie de la performance, le devtester apparaît comme une partie prenante qui relie l'ingénierie de la performance et les équipes de développeurs. Ils comblent le fossé en ayant de solides compétences en matière de codage et de test, bien qu'ils n'aient pas le même niveau d'expertise que le développeur et l'ingénieur de performance. Ils peuvent effectuer des tests rapidement et disposent d'une plus grande flexibilité que les développeurs pour utiliser différents outils en fonction des besoins.

Analystes commerciaux et ingénieurs d'application

En décalant les tests, l'ingénierie de la performance associe les analystes commerciaux et les ingénieurs d'application. Cela garantit que les exigences de performance de l'entreprise et de l'application définissant la qualité de l'expérience de l'utilisateur sont intégrées dans les critères de performance. Ces deux rôles surveillent l'application en production afin de garantir une performance optimale de l'application à tout moment.


Trouver le bon partenaire en ingénierie de la performance

L'ingénierie de la performance est en train de transformer le paysage du développement logiciel ainsi que les descriptions de poste de tous ceux qui y participent. Et comme un plus grand nombre de rôles sont désormais impliqués, le besoin d'outils et de technologies pour rationaliser le processus est plus grand que jamais. L'ingénierie de la performance exige une intégration et une collaboration de bout en bout, de droite à gauche et de gauche à droite, ainsi que des informations et des analyses en temps réel. Les fournisseurs traditionnels de tests de performance ne sont pas suffisamment équipés pour faire face à cette vague de changements chaotiques. OpenText dispose cependant de l'expérience et des solutions technologiques éprouvées pour transformer le chaos des tests en ordre technique.

L'architecture ouverte des solutions d'ingénierie des performances d'OpenText prend en charge les tests pour tout type de protocole et d'application dans n'importe quel environnement de développement. Il permet aux parties prenantes, des développeurs aux analystes commerciaux, d'utiliser de nombreux outils fournisseurs et open source afin de permettre une intégration CI/CD complète à l'échelle. Les intégrations d'outils OpenText permettent d'éliminer rapidement les temps d'attente du développement et des tests qui ralentissent la livraison des applications. Les intégrations permettent de créer rapidement des simulations réalistes d'API, de conditions de réseau et de services virtuels. Les solutions d'ingénierie des performances d'OpenText s'appuient sur l'infrastructure existante sur site ou dans le cloud et favorisent la réutilisation des actifs pour tirer parti des investissements existants. Cela permet d'évoluer rapidement pour répondre aux exigences des tests de performance de plusieurs applications dans l'ensemble de l'entreprise.

Les tests de performance traditionnels ne commençaient pas avant la fin des tests fonctionnels et ne commençaient pas à identifier les défauts et les causes profondes avant la fin des tests de performance. Les solutions d'ingénierie des performances d'OpenText permettent de mesurer et d'analyser les défauts en continu et de bout en bout, afin d'identifier les causes profondes en temps réel, avant même la fin du test de performance. Les critères de performance sont inclus dans la définition et les exigences du terme "fait". Les analyses en temps réel d'OpenText aident l'ingénieur des performances à fournir rapidement un retour d'information au développeur afin d'initier le dépannage dès le début du processus de développement. La surveillance synthétique et la surveillance des utilisateurs réels en production permettent d'identifier les problèmes de performance qui ont échappé aux tests et qui doivent être corrigés dans la prochaine version. La saisie et l'analyse du sentiment de l'utilisateur final du point de vue de la performance fournissent un retour d'information plus spécifique aux développeurs afin d'optimiser l'application pour une meilleure performance.

Comment pouvons-nous vous aider ?

Notes de bas de page