Marier APM et tests : stratégie gagnante au service de la performance applicative et la satisfaction des utilisateurs

Les indicateurs remontés par les outils de gestion de la performance applicative vont devenir essentiels à qui voudra analyser et comprendre les dysfonctionnements et bugs des applications pour anticiper leur résolution dès les phases de tests.

Face aux dysfonctionnements et bugs des applications informatiques, savoir ce qui se passe c’est bien, mais comprendre d’où vient le problème, c’est mieux ! Et la démarche est plus efficace si elle intervient en amont de la mise en production, c’est-à-dire lors des phases de tests. Quoi de plus instructif que de visualiser et analyser le comportement du code pour comprendre ce qui ne fonctionne pas, et surtout de savoir quelles sont les raisons des bugs constatés.

Le test s’est imposé comme une étape essentielle à tout projet de développement : test fonctionnel, de robustesse, de non régression, test de charge / de performance, l’objectif est de s’assurer qu’il n’y a pas d’écart fonctionnel ou technique avec les exigences exprimées et attendues. Cependant, lors des campagnes de tests, si des données variées renseignent sur la performance des applications (temps de réponses, disponibilité, volumétrie…), aucune ne permet toutefois d’identifier précisément l’origine des défauts ou bugs. C’est comme lors du contrôle technique d’une voiture : on vous indique un problème sur votre véhicule mais on ne vous dit pas d’où il vient et ce qu’il faut changer ou réparer. Il va falloir que vous en parliez à votre garagiste, que ce dernier refasse un diagnostic, pour seulement ensuite réparer.

Comment faire pour que tout soit plus efficace ? Première possibilité : recourir aux outils d’analyse de log. La difficulté est qu’ils nécessitent de nombreux paramétrages et requièrent de la part des équipes IT une expertise ultra-pointue et fine de la technologie testée. Or bien souvent, les équipes de tests ne disposent pas de ce type d’expertise, en particulier au sein de sociétés de services.

C’est là que l’APM entre en piste. Un logiciel d’APM détecte automatiquement les erreurs au niveau du code au moment de l’exécution des transactions. Coupler son environnement de test avec un logiciel d’APM peut s’avérer une démarche gagnante.

Pourquoi ? Pour 4 raisons principales :

  • Parce qu’en analysant en temps réel le comportement du code d’une application, sur la base de scénarios définis, un logiciel d’APM remonte facilement des indicateurs tels que l’architecture complète de votre application et le temps passé dans chacune des couches, les lignes de code qui posent problèmes, les erreurs et exceptions serveurs, les fuites de mémoire… Ces données sont très complémentaires à celles remontées par les outils de tests ;
  • Parce que des indicateurs peuvent être remontés par le logiciel d’APM sur plusieurs séries de tests afin de comparer les résultats obtenus : les équipes disposent d’une vision de bout en bout sur la performance de l’architecture applicative et sur celle de chacun de ses composants (utilisateurs, serveurs d’applications, bases de données, web services, etc.), en connaissant les temps de réponse associés ;
  • Parce que les informations remontées par le logiciel d’APM sont simples à utiliser et sont très facilement interprétables par les équipes de développement ;
  • Enfin parce que l’ensemble de ces indicateurs, en enrichissant les rapports remis par les testeurs aux équipes métier et de développement (développeurs, architectes techniques, etc.), facilitent la formulation de recommandations précises et détaillées, ce qui fluidifie la communication entre les équipes du département informatique et les métiers.

Ajoutons que, par sa capacité à détecter avec précision les causes des problèmes de performance d’une application, l’APM aide à revaloriser la phase de tests en interne et à en faire une étape clé pour la qualité des développements logiciels.

Ne nous méprenons pas : en aucun cas, un logiciel d’APM ne remplacera un outil de tests. Il s’agit d’un outil passif qui analyse comment se comporte l’application et son code quand ils sont exécutés, là où les tests simulent différents types de situations. Cela rend les deux outils parfaitement complémentaires. La phase de tests, c’est un peu le contrôle technique et l’APM le diagnostic précis de la panne. L’objectif final partagé par tous est d’optimiser les phases de tests et d’améliorer en continue l’application afin de proposer une expérience utilisateur optimale lorsque l’application sera live.