Les environnements de test

5
minutes de lecture

Est-ce que vous savez que les environnements de tests ont un rôle important dans la stratégie de test ? Comme vous le savez, cette stratégie est un élément essentiel dans le cycle de vie d’un projet. Une stratégie de test mal cadrée peut entraîner des déploiements de développement contenant des bugs. Pour assurer une bonne stratégie, il existe plusieurs types de test qui sont déroulés dans des environnements de test adéquats. Ils sont différents et propres à chaque entreprise.  

Dans cet article, nous allons donc vous expliquer les différents types d’environnements afin de comprendre leur intérêt et leur importance dans la validation de votre projet.

Définition des environnements de test  

Afin de pouvoir effectuer les tests d’une fonctionnalité développée ou d’un projet, vous aurez besoin d’un environnement de test. Selon ISTQB, “les environnements de test sont des environnements contenant le matériel, les instruments, les simulateurs, les outils logiciels et les autres éléments de support nécessaires à l’exécution d’un test. “  L’environnement de test est un serveur qui est configuré pour pouvoir créer un environnement qui se rapproche de l’environnement de production pour permettre d’assurer la qualité de la livraison.  

Les types d’environnements de test

Il existe différents environnements de test et chacun d’eux répond à un besoin spécifique. Sachant qu’un environnement de test coûte cher (exemple : hébergement serveur, configuration et installation) , chaque entreprise configure le ou les environnements en fonction de ses besoins.

Ci-dessous, les différents environnements qui peuvent exister (l’intitulé dépend aussi de chaque entreprise) :  

Environnement développement    

Un environnement de développement (dans le langage courant on dit "en local" ) est un ensemble d’applications et outils que les développeurs ont installé en local, sur leurs machines, afin de pouvoir tester leurs développements. Ceci leur permet ainsi de déboguer leur code.

Un environnement de développement contient généralement les éléments suivants :  

  • Une stack de développement : il est important de bien choisir la combinaison nécessaire des composants qui vont permettre à un développeur de faire fonctionner son développement.

Exemple pour le développement backend : nous allons trouver une plateforme de code , file system, base de données, hébergeur, web server, web développent framework, system d'opération, éditeur de code source, le déboguer, la gestion des versions  

  • Résumé : L’environnement de développement permet de coder et vérifier que le code développé fonctionne. Il doit contenir ses propres jeux de données*, et bases de données.  

*un jeu de donnée est une donnée de test qui vous permet de valider une fonctionnalité.

Environnement de recette /bout en bout :  

L’environnement de test prend lieu avant la mise en production d’une fonctionnalité. C’est là où aussi les développeurs vont assurer un déploiement continu de leurs fonctionnalités afin de permettre au QA analyst et au PO de tester.  

Pour assurer le test d’une fonctionnalité, l’environnement de test doit être fonctionnel et opérationnel. C’est un environnement qui doit répondre aux exigences minimales pour que votre application fonctionne. Au sein d’une organisation il peut exister différents environnements de test.

Comme déjà indiqué, les développeurs vont assurer des déploiement en continu, ceci peut parfois être la source d'indisponibilité de la plateforme ou de l'occurrence de régression sur les fonctionnalités.

Dans un premier temps, le QA va effectuer la validation de la fonctionnalité pour valider le développement à son équipe. Ensuite il va effectuer des tests de bout en bout avec les autres équipes. Ceci signifie qu’il va vérifier que la donnée est bien envoyée et interprétée par l’autre projet et qu’il reçoit le retour attendu.  

Ceci nécessite un alignement entre les différents projets : la fonctionnalité est déployée sur les environnements qui sont interbranchés .  

Environnement de pré production ou staging :

Le passage de la fonctionnalité de l’environnement de recette à l’environnement de préproduction, ceci signifie que l’équipe projet considère la fonctionnalité assez mature pour être mise à disposition pour le métier (exemple l’entité marketing) et non pas pour les utilisateurs finaux. Cet environnement est censé être un clone de l’environnement de production mais ne le remplace pas. Il est l’environnement où tous les tests finaux seront effectués avant de passer la fonctionnalité dans l’environnement de production.

Environnement de Production :

L’environnement de production est un environnement  où la fonctionnalité sera hébergée dans le serveur de production. Elle sera donc accessible par le client final. Cet environnement doit être stable afin d'assurer une continuité du service et une bonne expérience utilisateur.

Les différents types de tests par environnements

Il existe différents types de tests (test system, test exploratoire …) et chacun doit être effectué sur des environnements bien précis pour avoir des résultats représentatifs sur la qualité du produit et sur le choix de donner un GO pour passer à l’étape suivante. Voici quelques exemples de types de test

  • Performance tests : le test de performance est un test qui a pour but de vérifier la robustesse d’un environnement à recevoir un taux énorme de trafic ou d’utilisation. Généralement il est lancé dans l’environnement de performance mais si cet environnement n’existe pas, il sera lancé dans l’environnement de préproduction.  
  • System intégration testing : ce test de bas niveau est principalement fait pour vérifier comment les modules individuels interagissent les uns avec les autres lorsqu'ils sont intégrés dans un système. Il  se déroule dans l’environnement d’intégration.
  • Test system : le test système est effectué via des scénarios de test de cas réels pour vérifier que l'ensemble du système fonctionne correctement en référence aux exigences spécifiées. Il doit se dérouler dans l'environnement de recette  
  • Beta tests : ce test permet de rendre votre application accessible à certains utilisateurs pour vérifier le comportement de votre produit. Généralement ce type de test est lancé dans l’environnement de préproduction.
  • User acceptance testing (UAT): Est la dernière étape de test qui est effectuée par le client pour vérifier qu’une fonctionnalité peut être déployée en production. Ce test est réalisé dans l’environnement de préprod ou staging.  

Les enjeux des environnements de test  

La gestion des environnements est l’un des éléments les plus importants. Cela a un grand impact sur le respect des deadlines de livraison des projets. Les conflits entre les environnements est l’un des éléments le plus connu dans les entreprises et qui représente un grand enjeu.

Les problèmes qui peuvent exister dû à la mauvaise gestion des environnements :

  • Les conflits entre les branches de merge ce qui entraine l’impossibilité de livrer une fonctionnalité avec succès.
  • Le manque de visibilité sur l'interdépendance entre 2 projets ce qui implique la coexistence de 2 fonctionnalités qui ont une dépendance mais qui ne doivent pas coexister dans le même environnement lors des tests :  une fonctionnalité doit aller en PROD et pas l’autre.
  • Indisponibilité des environnements suite aux déploiements ou problèmes réseaux.
  • Vérifier la disponibilité et branchement des autres SI à votre environnement lors de lancement de la phase de test.  

Pour conclure : la gestion des environnements des tests est l’un des éléments les plus importants dans la gestion des projets pour éviter d’entrainer les retards sur la mise en production de votre fonctionnalité/release. Pour cette raison, il est important d’avoir des études d’impact avant les projets. Il faut  bien planifier la gestion de vos environnements de test et de savoir à quel moment et quel test effectue et dans quel environnement. Il est aussi important de communiquer auprès des projets avec lesquels vous avez des dépendances pour pouvoir assurer le bon déroulement de vos tests et tenir les délais.

Logo WeFiiT

Le spécialiste du conseil fullstack Produit : Strategy, Discovery & Delivery !

Auteur

Meriem

Quality Analyst