La véritable clé du succès lors des tests en production

Dernière mise à jour : 18 mars 2021 —

Les tests en production étaient souvent perçus comme une méthode de test source de nombreux problèmes. Cependant, nous avons appris que pas Les tests en production posent également problème. Pour en savoir plus, poursuivez votre lecture.

Continuous Testing

« Fermez les portes blindées ! » hurlèrent les Stormtroopers en poursuivant Han et Chewie dans les couloirs de l'Étoile de la Mort. Les portes commencèrent à se refermer, mais Han et Chewie se faufilèrent à l'intérieur avant qu'elles ne soient complètement verrouillées. « Ouvrez les portes blindées ! Ouvrez les portes blindées ! » hurlèrent les Stormtroopers en réalisant qu'ils étaient désormais piégés.

Voilà à quoi ressemblaient les tests en production autrefois. Les développeurs lançaient leurs versions à la hâte, poursuivis par l'équipe d'assurance qualité. Du moins, c'est une métaphore, j'imagine, même si j'adorerais voir ça en vrai. Le problème pour l'assurance qualité, c'est que la fuite de Han et Chewbacca a entraîné la destruction de l'Étoile de la Mort. De même, dans le monde des tests continus, où les développeurs, dans l'espoir de maintenir leurs applications mobiles à jour, négligent l'assurance qualité et ne font qu'empirer les choses, les utilisateurs en subissent les conséquences. Et devinez où cela les affecte ? Eh oui, l'entreprise elle-même.

C’est ce qui a rendu les tests en production interdits dans la plupart des entreprises pendant de nombreuses années. Voici l’autre aspect de la question : pas Les tests en production posent également problème.

Les environnements de production étant plus développés et souvent obsolètes que les environnements de test, vous ne pourrez pas effectuer des tests à l'échelle réelle. Il en résultera une efficacité globale moindre.

L'Étoile de la Mort des tests

Quand on parle de tests en production, on fait référence aux tests effectués dans un environnement réel ; l’intérêt réside dans la capacité de cet environnement à reproduire fidèlement le monde réel. Les tests hors production sont trop contrôlés et manquent de données et de trafic authentiques. Je ne dis pas que tester avant la mise en production pose problème ; bien sûr que non ! C’est même indispensable pour tester les conditions et les fonctionnalités spécifiques d’une application. Le problème, c’est que ce type d’environnement a ses limites.

Je comprends vos préoccupations et, en effet, si l'on pouvait reproduire parfaitement son environnement de production en environnement de test, cela simplifierait grandement les choses. Cependant, les exigences sont colossales : il faut utiliser les mêmes bases de données, les mêmes dépendances et simuler le même trafic utilisateur. Si seulement il existait un moyen de tester dans ce type d'environnement sans un tel coût…

Il y a!

Les tests en production — et c'est de cela que nous allons parler aujourd'hui.

Le risque est là.

Bien sûr, les tests en production comportent des risques. Sinon, personne ne vous les déconseillerait. Ils cherchent à éviter les problèmes liés à la corruption de données, à la surcharge des systèmes et aux conséquences imprévues des tests sur les autres systèmes de production.

Voici quelques autres exemples parmi les innombrables façons dont les tests en production peuvent mal tourner :

Production brisée — Lorsque vous exécutez des tests, ils réussissent ou échouent. C'est d'une simplicité déconcertante, je sais. Le problème, c'est qu'un test qui échoue en production peut paralyser l'environnement de production et entraîner une interruption de service de l'application.

Sécurité — Il est parfois nécessaire de désactiver les mesures de sécurité pour effectuer des tests en production. Je suis certain que vous comprenez les problèmes que cela peut engendrer.

Données fictives Bien que parfaitement acceptables dans un environnement de test dédié, les données simulées en production peuvent perturber le système en compromettant l'intégrité des données. Tester en production représente donc un risque potentiel pour l'entreprise. Supprimer les données inutiles est également une opération délicate, car des pertes de données peuvent survenir.

Performance du système — Si vous effectuez des tests de charge en production, cela peut impacter négativement les performances. Les conséquences se feront sentir pour l'ensemble de l'organisation.

Fenêtres de test étroites — Par exemple, si vous effectuez des tests d'endurance, les tests en production pourraient perturber ce processus, entraînant des tests instables et de faux échecs.

Moins d'outils — Il est plus difficile d’obtenir des résultats lorsque, pour des raisons de sécurité et de performance, vous ne pouvez pas utiliser vos outils préférés lors des tests en production.

Alors oui, c'est risqué, mais je ne dis pas que tester en production est une mauvaise chose. Cela permet d'exposer vos applications mobiles à des scénarios d'utilisation réelle. Dans ce type de système, il est plus facile de trouver des bugs que dans votre environnement de test habituel. Même si vous effectuez des tests de performance en laboratoire, cela ne signifie pas que vous obtiendrez les mêmes résultats en production.

Que faisons-nous ? Eh bien, nous continuons à lire, bien sûr !

Tester correctement en production

La manière la plus simple de progresser dans cette approche consiste à développer des processus et des méthodes qui garantissent safe Des tests avec un impact minimal sur l'utilisateur. Prenons quelques exemples.

Une approche en couches

Commençons par une question à choix multiples. Comment effectue-t-on des tests en production ?

  1. Avec des serveurs de test au sein de votre centre de données de production.
  2. Exécuter des applications séparément sur votre plateforme de production.
  3. Exécution de tests en direct sur l'ensemble du code déployé en production.
  4. Toutes les réponses sont correctes

La réponse est évidemment D. La mise en place de tests en couches pour la production permet de tester l'environnement de production de différentes manières. Ensuite, vous pouvez minimiser l'impact des tests en faisant correspondre les cas de test. Il en résultera une maintenance réduite de l'environnement de test et un impact minimal sur vos utilisateurs.

Circulation légère

Lors de tests de performance, l'ensemble de vos utilisateurs peut être impacté. Ces tests ont tendance à ralentir les serveurs, ce qui est inacceptable, surtout en production. Avant de procéder aux tests, analysez les données et identifiez les périodes de faible affluence. Pour une analyse plus approfondie, examinez également les moments où les processus les plus gourmands en ressources s'exécutent.

La collecte de données

Lors des tests en production, utilisez des données de trafic réelles, telles que les parcours utilisateurs, les comportements et les ressources. Ces données serviront ensuite à concevoir vos cas de test. Vous pourrez ainsi exécuter vos tests en production en toute confiance, avec la certitude que le comportement simulé est réaliste.

La surveillance est la clé

Surveillez toujours les indicateurs. C'est notre conseil. En analysant les chiffres pendant vos tests en production, vous saurez si et comment vos tests affectent l'expérience utilisateur. Si c'est le cas, vous devez interrompre les tests.

Adhésion

Une dernière façon de tester votre application auprès d'utilisateurs réels en production consiste à utiliser une option d'inscription pour prévisualiser les nouvelles versions. Cette méthode vous permet de disposer de vrais utilisateurs pour surveiller et collecter des données. L'avantage principal est que, en cas de problème, vous n'aurez pas à vous soucier outre mesure de l'expérience utilisateur, car ils auront accepté de tester l'application au préalable. Une fois les données recueillies, vous pourrez adapter vos tests en conséquence.

Les tests en production sont risqués mais précieux.

La pression est forte. En 2021 plus que jamais, la capacité d'une entreprise à déployer rapidement du code en production et à offrir une expérience utilisateur sans erreur est essentielle. Cela dit, il est indispensable de tester ces fonctionnalités pour proposer la meilleure application possible.

Certes, vous pouvez déceler de nombreux bugs lors des tests dans un environnement hors production, mais il en reste toujours quelques-uns qui passent entre les mailles du filet.

L'avantage principal des tests en production est qu'ils offrent une vision optimale du fonctionnement de votre application en situation d'interaction avec l'utilisateur final.

L'important, c'est qu'il existe des risques, certes, mais pas au point de diaboliser les tests en production. Il est essentiel de comprendre ces risques et de mettre en place des systèmes qui les atténuent. L'objectif est de livrer la meilleure application possible, dans les meilleurs délais.

En savoir plus sur le Digital.ai Continuous Testing à partir de cette vidéo de webinaire Pourquoi les tests dans le cloud sont plus importants que jamais.

Vous aimerez aussi