Découvrez quelle solution de test API est arrivée en tête dans le rapport GigaOm Radar. Obtenez votre rapport d'analyse gratuit >>

Découvrez quelle solution de test API est arrivée en tête dans le rapport GigaOm Radar. Obtenez votre rapport d'analyse gratuit >>
Aller à la section
Qu'est-ce que les tests basés sur l'environnement et pourquoi sont-ils importants dans les tests de logiciels ? Voici une couverture complète du sujet et certains des avantages d'une approche de test basée sur l'environnement.
Aller à la section
Aller à la section
Tester des applications et des services de manière isolée ne vous mène pas loin et, à terme, vous devez tester dans un environnement opérationnel. L'approche de test « basée sur l'environnement » de Parasoft permet aux équipes de tester leurs applications dans le contexte de toutes les dépendances qui existent dans l'environnement du monde réel.
Souvent, les testeurs et les développeurs examinent leur environnement de déploiement et ses composants sur une base individuelle, en testant ces éléments de manière isolée. Cela fonctionne dans une certaine mesure mais ne teste pas suffisamment le système. Une autre version de cela consiste à tester au niveau de l'interface utilisateur, à un moment où les causes profondes des échecs sont difficiles à diagnostiquer. Le terrain d'entente est l'endroit où les applications peuvent être testées dans un environnement aussi réaliste que possible en utilisant des services virtuels pour imiter des dépendances qui ne sont pas disponibles ou suffisamment cohérentes pour les tests. Au fur et à mesure que de plus en plus de dépendances se mettent en ligne, vous pouvez passer des services virtualisés aux versions actives.
Chez Parasoft, nous appelons cela une approche de test « basée sur l'environnement », qui permet à toute l'équipe de tester son application dans le contexte complet de l'environnement réel. Les tests sont déployés dans un environnement réel, partiellement ou entièrement virtualisé selon les besoins. L'approche des tests basée sur les environnements fournit une plate-forme stabilisée pour l'exécution des tests.
L'approche de test basée sur l'environnement fournit plus de contexte pour mieux comprendre l'impact des dépendances sur l'application pendant les tests de l'interface utilisateur et aide l'équipe à passer au niveau supérieur en créant des tests d'API et de base de données pour les composants dépendants. Ce faisant, vous pouvez obtenir une couverture de test plus complète pour votre application et dissocier les tests de l'interface utilisateur, afin que les deux puissent être exécutés ensemble ou indépendamment. Les échecs des tests sont mis en évidence dans l’environnement, ce qui facilite leur identification.
Voici quelques avantages supplémentaires associés à une approche de test basée sur l'environnement:
Ces avantages réduisent la charge globale des testeurs pour configurer, exécuter et diagnostiquer les tests d'application tout en augmentant la couverture des tests et en permettant d'effectuer les tests plus tôt et de manière plus complète.
Comme de nombreux testeurs le savent, un environnement de test n'est qu'une structure contrôlée qui permet aux systèmes et aux logiciels d'effectuer des tests de fiabilité, de fonctionnalité et de compatibilité. Ceux-ci simulent généralement des scénarios et des conditions du monde réel pour résoudre les bogues ou violations potentiels avant le déploiement. En tant que tel, chaque environnement de test peut être adapté au type de test et aux résultats souhaités par une équipe.
Un environnement de test multi-navigateurs est un parfait exemple d’environnement de test permettant de tester sur différents navigateurs et versions de navigateur. Les équipes de test utilisent l'environnement pour vérifier la qualité et l'impact de l'application avant que les utilisateurs n'interagissent avec elle.
Il existe plusieurs types clés d'environnements de test, notamment :
Créer un bon environnement de test ne consiste pas seulement à utiliser des scénarios réalistes. Cela implique tout, de la prise en compte des cas extrêmes à la protection de la sécurité des données, en passant par l'émulation ou l'utilisation d'informations réelles. Bien que chaque équipe ait des objectifs et des exigences différents, certaines bonnes pratiques peuvent être suivies pour garantir le meilleur environnement de test pour votre projet.
Un bon environnement de test ressemble à un environnement de production en direct dans lequel le logiciel ou le système fonctionnera de très près. Il doit utiliser le même code, le même système d’exploitation, les mêmes données, fonctionnalités et configuration.
Les facteurs clés pour créer un bon environnement de test sont les suivants :
En plus des principes mécaniques ci-dessus, les environnements de test s'appuient également sur des directives générales intangibles.
La gestion de vos environnements de test peut être un énorme casse-tête ou s'avérer être une partie incontournable de votre SDLC qui fournit des informations et des données inestimables. La clé réside dans la manière dont vous abordez cette gestion. En chargeant une partie du travail et de l'organisation en amont, vous pouvez créer une configuration plus facile à maintenir tout en bénéficiant des avantages de tests fréquents.
Du développeur le plus expérimenté au testeur QA le plus récent, traitez les membres des équipes de développement comme des membres importants du projet. L'utilisation d'une source unique, ou d'une copie dorée, pour des environnements et des déploiements accessibles à tous, dans des limites raisonnables, favorise un environnement où la communication est ouverte, encouragée et constructive.
La gestion de la base de connaissances, que ce soit sur Confluence, JIRA ou d'autres outils, permet d'éviter les problèmes de communication et de réduire les jeux de téléphone. Les membres de l'équipe peuvent consulter la documentation pour obtenir des informations de base, suivre les modifications, voir qui a travaillé sur quoi, et bien plus encore.
Parallèlement aux principes ci-dessus, la mise à disposition de ces informations aux parties prenantes contribue également à maintenir les environnements de test. Mais cela s'applique également à des éléments tels que les calendriers de déploiement, les plans d'interruption et d'autres aspects du développement.
Les humains font des erreurs. C'est un fait. Les mises à jour manuelles succombent à cette réalité, donc intégrer la gestion de l'environnement de test à la chaîne d'outils que vous utilisez peut contribuer à réduire les erreurs manuelles.
Être capable d'interagir avec les données générées par vos cas de test est indispensable. Pouvoir le faire de manière simple et rationalisée est encore mieux. La virtualisation vous permet de prendre des instantanés, de répliquer votre environnement de bout en bout, et bien plus encore. En fait, Parasoft a le sien virtualisation de services de pointe solution juste à cet effet.
Cela peut ne pas sembler nécessaire, mais le suivi des KPI tels que le nombre d'interruptions de service imprévues, la disponibilité de l'environnement et d'autres variables peut vous aider à améliorer vos environnements de test. Examinez les données après des cycles de test importants pour voir ce qui fonctionne, ce qui doit être modifié et comment les ressources sont allouées ou pourraient être différentes.
Alors, regardons cela en action. Parasoft SOAtest fournit un gestionnaire d'environnement qui affiche visuellement l'environnement d'exécution de l'application testée. Vous trouverez ci-dessous un exemple d'application dans son environnement, connectée à des dépendances. Chaque composant de l'environnement peut être provisionné en direct ou virtualisé selon les besoins, en fonction de la stabilité et de la disponibilité de ces composants.
Les préréglages de déploiement configurent l'environnement en fonction des exigences de test actuelles. Différentes catégories de scénarios peuvent nécessiter différents préréglages. Ces préréglages contiennent tous les paramètres nécessaires pour le gestionnaire d'environnement :
Une fois par l'environnement de test est fourni, un ensemble d'interactions API et UI sont exécutés sur l'application testée. Les résultats sont capturés, enregistrés et comparés aux résultats attendus dans l'IDE et dans le portail Web Parasoft, où l'utilitaire Environment Manager fait office de plaque tournante pour les tests fonctionnels.
Les échecs sont mis en évidence dans le gestionnaire d'environnement et il est possible de suivre les rapports d'erreurs à partir de là dans un rapport plus détaillé.
Les rapports de test d'API générés indiquent à la fois les échecs et les informations de couverture des tests. Les échecs signifient qu'une nouvelle fonctionnalité est interrompue ou qu'il y a un problème avec un test. La cause première de ces échecs peut être retracée depuis l'échec ici jusqu'à l'API appropriée. Les informations sur la couverture des tests sont importantes car elles indiquent les tests manquants et potentiellement l'envoi de code non testé.
Des erreurs proviennent également de dépendances manquantes. C'est où la virtualisation des services entre en jeu. Il est souvent impossible de disposer de dépendances actives disponibles pour les tests, peut-être parce qu'elles ne sont pas encore prêtes ou parce qu'il est difficile et long de les dupliquer à partir de l'environnement de production. Mais pour garantir des applications de haute qualité dans le respect des contraintes de calendrier et de budget, il est essentiel d'avoir un accès illimité à un environnement de test fiable et réaliste, qui inclut l'application testée et tous ses composants dépendants tels que les API, les services tiers, les bases de données, les applications. , et d'autres points de terminaison.
La virtualisation des services permet aux équipes logicielles de accéder à un environnement de test complet, y compris tous les composants système dépendants critiques, ainsi que de modifier le comportement de ces composants dépendants d'une manière qui serait impossible avec un environnement de test par étapes, vous permettant ainsi de tester plus tôt, plus rapidement et de manière plus complète. Il vous permet également d'isoler différentes couches de l'application pour le débogage et les tests de performances, mais nous n'allons pas y entrer autant ici.
Les services individuels peuvent être configurés en direct ou virtualisés. Les configurations de déploiement qui sont des combinaisons de dépendances actives et virtualisées peuvent être enregistrées en tant que préréglages.
Les exemples de tests manuels sont intéressants, mais le véritable travail se déroule dans un pipeline d'intégration continue. Les environnements de test dynamiques de Parasoft peuvent être déployés à partir de Jenkins dans le cadre d'un pipeline d'intégration/déploiement continu. L'exemple suivant montre « Déployer un environnement dynamique » en tant que build Jenkins.
À l'aide du plugin Parasoft Jenkins, des étapes de build sont ajoutées pour déployer des suites de tests à partir de la build. Les résultats sont capturés et liés au gestionnaire d'environnement.
Une fois la construction terminée, les résultats des tests sont affichés dans Jenkins. Les échecs sont directement liés au gestionnaire d’environnement et au scénario de déploiement.
En considérant d'abord l'environnement opérationnel et en tirant parti d'une approche de test basée sur l'environnement, les testeurs de logiciels peuvent s'assurer que tout est en place pour rendre les tests productifs et efficaces. Plutôt que de passer du temps à essayer de tester des applications de manière isolée ou dans un environnement pseudo-réaliste, les testeurs peuvent consacrer plus de temps aux tests eux-mêmes.
Rapport GigaOm Radar pour les tests fonctionnels automatisés des API
API, microservices et tests non fonctionnels améliorés par l'IA