Découvrez les nouveautés de MISRA C:2012 AMD3 et comment obtenir la couverture la PLUS ÉTENDUE avec C/C++test 2022.2 ! Regarder à la demande >>

Outils de virtualisation des services

Par Adam Attanasio

20 décembre 2022

4  min lire

Êtes-vous à la recherche des avantages des outils de virtualisation des services et comment choisir le bon pour vos équipes de développement et de test ? Lisez la suite pour en savoir plus sur les fonctionnalités à inclure dans votre liste de contrôle et les meilleurs outils SV.

Que sont les outils de virtualisation des services ?

Outils de virtualisation des services offrent aux équipes la possibilité de tester un système entier même lorsque certains de ses composants sont encore en développement. Explorons les nombreux attributs de la virtualisation des services (SV) et comparons les meilleurs outils proposés par l'industrie.

Pourquoi la virtualisation des services est-elle importante

La virtualisation des services est une méthode que les équipes de développement utilisent pour simuler le comportement des composants d'une application. Ces composants peuvent être des API, des bases de données, des réseaux, des appareils, etc.

Les équipes de développement utilisent la virtualisation des services car certains composants du projet peuvent ne pas être disponibles à des fins de test en cas de besoin. Voici quelques raisons pour lesquelles les composants peuvent ne pas être prêts.

  • Les développeurs sont encore en train de les construire.
  • Problème de mise en place ou d'accès.
  • Difficile à configurer ou à provisionner dans un environnement de test.
  • Des tiers peuvent être propriétaires des composants ou facturer des frais pour y accéder.
  • Uniquement disponible à des fins de test à des moments inopportuns ou dans une capacité limitée.
  • Différentes équipes peuvent en avoir besoin en même temps, chacune avec différentes configurations de données et autres nécessités.
  • Les testeurs peuvent trouver qu'ils sont limités ou coûteux à utiliser pour les tests de performances et de charge.

En simulant les dépendances en aval, les équipes de développement peuvent surmonter de tels obstacles, les équipes échangeant les fonctionnalités réelles contre des réponses et un comportement simulés. Lorsqu'elle est utilisée correctement, la virtualisation des services oblige le système à se comporter exactement comme il le ferait si le composant était complet et disponible.

La virtualisation des services agit comme un simulateur de vol pour les applications. Les testeurs testent les lacunes pendant le développement en aidant les équipes à résoudre les problèmes potentiels afin que l'avion ne s'écrase pas.

Avantages de la virtualisation des services

L'utilisation de SV permet d'économiser de l'argent, du temps, de la frustration et des maux de tête. Le développement ne s'arrête pas pendant que les membres de l'équipe attendent les composants finis provenant d'autres domaines. En effet, la virtualisation des services offre aux équipes un accès omniprésent à environnements de test émulés. Ainsi, les équipes évitent tout conflit « nous contre eux ». Les autres avantages incluent une meilleure précision des tests et une mise sur le marché plus rapide.

Outils de virtualisation des services et ce qu'ils font

En plus de simuler le comportement réel des composants du système, les outils SV peuvent également dupliquer des parties non fonctionnelles du système telles que des temps de réponse et des connexions lents.

Les outils SV peuvent incorporer des correspondances de requêtes complexes, ce qui permet au test de fournir des réponses différentes pour différents types de requêtes. Certains services virtuels donnent un groupe de réponses tronquées pour les critères de requête fournis par les testeurs, puis envoient toutes les autres requêtes à un système dorsal opérationnel. D'autres simulent le comportement du système lorsque le SV construit des parties de la réponse en fonction des attributs et des données de la requête.

Voici des fonctionnalités plus utiles :

  • SV déploie un jumeau numérique de votre environnement de test à utiliser comme bac à sable pour le développement de partenaires ou comme point de terminaison virtuel pour les tests internes.
  • Les développeurs capturent le trafic à l'aide d'une plate-forme SV pour créer des actifs virtuels, au lieu de créer le modèle interactif à partir de zéro.
  • SV prend en charge divers protocoles, tels que HTTP, MQ, TCP et bien d'autres.
  • Les outils SV comportent souvent des interfaces utilisateur qui permettent aux non-développeurs d'utiliser les outils sans avoir à comprendre les détails du projet.

Étapes avant de choisir un outil de virtualisation de service

Avant que les équipes ne commencent à investir du temps, de l'argent et des efforts dans la VS, faire des recherches et la préparation est avantageuse.

  1. Faire une analyse appropriée des cas de test.
  2. Identifier les données de test.
  3. Déterminer la charge cible, le cas échéant.

Pour tirer pleinement parti de la virtualisation des services, il est important de s'assurer que l'outil répond et prend en charge les besoins de test de votre équipe. Sinon, il deviendra trop complexe et trop coûteux à entretenir.

9 fonctionnalités qui rendent les outils SV faciles à utiliser

Voici neuf fonctionnalités à prendre en compte dans un outil qui pourrait faciliter l'utilisation de la virtualisation des services pour votre équipe.

1 – Fonctionnalités sans script

Les équipes de développement doivent pouvoir créer des services virtuels sans avoir à écrire de code. Au lieu de cela, un système d'outillage visuel est idéal. Habituellement, la personne qui a besoin d'un service virtuel est un testeur, qui a moins de détails techniques de première main sur la façon dont les services ont été mis en œuvre.

2 – Création rapide d'un service virtuel avant la disponibilité réelle du service

Tirer parti des services virtuels en tant que prototypes avant que le service réel ne soit disponible est très avantageux. Grâce à cette fonctionnalité, les équipes peuvent créer des interfaces pour les composants dépendants de l'application avant qu'ils ne soient prêts.

3 – Corrélation de réponse intelligente

Cela signifie que l'outil de virtualisation des services peut répondre différemment en fonction des demandes qui arrivent. Les différents types de corrélation de réponse à prendre en compte incluent :

  • Protocole de déploiement
  • Corrélation des messages
  • Corrélation des sources de données

4 – Réponses basées sur les données

Les réponses basées sur les données donnent aux équipes la flexibilité de créer une logique de manière abstraite. Ils peuvent connecter des services virtuels à des sources de données telles qu'Excel, CSV, des bases de données tabulaires, hiérarchiques et en direct pour des recherches de données en temps réel.

5 – Capacité à réutiliser les services

Les équipes de développement peuvent travailler ensemble pour définir des services principaux, communs ou partagés, puis réutiliser ces modèles et cette logique plusieurs fois dans d'autres services virtuels.

6 – Un framework d'extensibilité personnalisé

Avoir la possibilité d'utiliser des scripts sans se limiter à un seul langage est utile si vous avez besoin d'écrire du code pour accomplir des tâches telles que la génération d'un jeton propriétaire ou d'un identifiant unique.

7 – Prise en charge de l'authentification et de la sécurité

Avec ce type de support, votre équipe peut valider la sécurité de la couche de transport entrante, telle que les certificats SSL, et interagir avec les services en direct pendant l'enregistrement, qui peuvent être régis par des mécanismes d'authentification tels que OAuth, Basic Auth, Digest, Kerberos, NTLM, etc. .

8 – Environnements de performances configurables

L'activation des tests de performance permet aux équipes d'effectuer des tests de performance à un stade plus précoce et réduit la dépendance exclusive à des environnements de test complets. Les équipes peuvent se concentrer sur des SLA de composants spécifiques en utilisant des services virtuels pour émuler les dépendances hors de portée. Ils peuvent créer des environnements de performance en entourer l'application de services virtuels.

9 – Prise en charge du clustering et de la mise à l'échelle

Au fur et à mesure de vos performances l'équipe adopte la virtualisation des services et que l'utilisation générale augmente, vous aurez besoin d'un outil qui permet la mise à l'échelle, qui peut se manifester sous deux formes : un débit élevé et une tolérance aux pannes. À prise en charge de la mise à l'échelle, vous aurez besoin d'un outil qui peut être regroupé derrière un équilibreur de charge afin que vous puissiez répartir la charge donnée à votre infrastructure de virtualisation de manière appropriée. Vous aurez également besoin d'un outil capable de maintenir la parité des actifs lorsque vous modifiez différents services virtuels sur des nœuds individuels.

Plus de capacités de l'outil SV à prendre en compte

Les capacités associées à l'optimisation des flux de travail, à l'automatisation, à la prise en charge de la gestion et de la maintenance et aux technologies prises en charge sont importantes à prendre en compte dans votre recherche du meilleur outil de virtualisation des services. En savoir plus ici.

Meilleurs outils de virtualisation de service

Nous comparons les fonctionnalités, les avantages et les capacités des meilleurs outils commerciaux de virtualisation de services.

OutilFonctionnalités clés AvantagesInconvénientsPrix
Parasoft VirtualiserCréez des actifs virtuels complexes sans script pour plus de 120 types de messages.Intégration avec Parasoft SOAtest (tests API) et Selenic (tests UI) ainsi qu'avec les outils CI et IDE de l'industrie.La solution entièrement intégrée nécessite une configuration supplémentaire.Contactez Parasoft pour demander un devis.

parasoft.com/contact/
Le gestionnaire d'environnement basé sur le Web facilite les configurations de test faciles.L'approche modulaire de la conception des services virtuels facilite la maintenance.Prix ​​publiés non disponibles
La virtualisation avec état permet des scénarios complexes avec état.Création facile d'actifs virtuels sans script, même pour les éléments complexes comme CRUD.Pas d'offre SaaSTéléchargez la version gratuite pour commencer.

software.parasoft.com/virtualize/community-edition/
La modélisation et la génération de données de test virtuelles incluent le masquage des données sensibles.Prise en charge étendue de différentes technologies et protocoles.
Collectez et exposez des rapports d'utilisation et des statistiques d'accès.Assistance produit approfondie de classe mondiale.
WireMock (UP9)Générez automatiquement des simulations et des cas de test codifiés prêts pour Kubernetes.Tarification transparentePas de code bas. Nécessite un script.up9.com/prix/
Mocking intégré à la surveillance, aux tests, à la sécurité et à l'observabilité de l'API UP9.Facile à télécharger et à tester.Fonctionnalité limitée et prise en charge du protocole.
Simule les API basées sur HTTP.Open sourcePeu de choix d'intégration.
Facile à utiliser pour des cas d'utilisation simples.Pas de prise en charge .NET.
Pas de soutien d'équipe ou de services professionnels.
Perroquet de la circulationSimulations d'API prédéfiniesFacilité de déploiementLes simulations d'API ont une portée et une complexité limitées.Modèle de licence abordable et plan de coûts pour les besoins d'entrée de gamme.

trafficparrot.com/buy.html
Prise en charge des conteneurs éphémères, de l'infrastructure en tant que code, du CI/CD et de Kubernetes.Décentralisé avec interface utilisateur Web. Cloud ou VM. Aucune option sur site.Gestion des utilisateurs. Si vous déployez Traffic Parrot dans un environnement partagé, toute personne disposant de l'URL de l'interface Web Traffic Parrot peut y accéder sans restriction.
Prend en charge les principaux protocoles et fonctionne sur OpenShift.Construit sur WireMock open-source.Il ne permet pas de personnaliser des workflows plus complexes. Au lieu de cela, vous écrivez vous-même des plugins/extensions personnalisés en Java.
S'intègre aux environnements CI populaires et à d'autres outils de développement/test.Est-ce que la moquerie en tant que code. Intégrations Docker et Jenkins.Aucune édition "gratuite" n'est disponible.
Virtualisation SmartBear ReadyAPI (ServiceVPro)Anciennement ServiceVPro, désormais intégré à SoapUI Pro et LoadUI Pro pour les tests et les simulations d'API.S'intègre facilement à la suite ReadyAPI et à un vaste écosystème d'autres outils SmartBear.Capacités de rapport médiocres.Les prix à la carte permettent de choisir facilement le produit que vous voulez.
Exécutez des services virtuels à partir du navigateur, du cloud ou du client local, sur une machine ou des images distantes.Énorme communauté et outils open source.La génération de code n'est pas toujours fluide.Essai gratuit: smartbear.com/product/ready-api/api-virtualization/free-trial/

Tarification: smartbear.com/product/ready-api/prix/
Importez OAS, WSDL ou d'autres définitions d'API ou enregistrez le trafic d'API ou d'interface utilisateur en direct pour commencer.Prend en charge les protocoles de messagerie populaires (HTTP, REST, SOAP, JMS et JDBC).Prise en charge limitée du protocole.Tarification disponible pour le module de virtualisation en ligne. Soumettez une demande de devis groupé.
Analysez le trafic et les performances des services virtuels à partir d'une interface utilisateur Web.Ne nécessite pas de connaissances techniques approfondies ou d'expérience en codage pour démarrer.Incapable de supporter de lourdes charges.
Configurez les paramètres pour plusieurs scénarios, y compris la capacité, la bande passante et les erreurs.Interface utilisateur obsolète
Mise au point micro (HP)Créez rapidement des simulations réalistes d'API et de services virtuels.Prise en charge étendue de différentes technologies et protocoles​.Prise en charge limitée des outils modernes tels que Kubernetes.Tarification compliquée avec un coût initial élevé.
Les fonctionnalités de virtualisation des services sont intégrées à LoadRunner et à la suite UFT (Unified Functional Testing).Simple à utiliser mais nécessite l'utilisation d'un langage de script (Visual Basic).Pas de code bas, nécessite beaucoup de scripts.Licence flexible et modèle de déploiement.
Tests de charge à grande échelle pour des scénarios de simulation de performances réalistes sans impact sur les systèmes de production ou tiers.Simulations orientées données.La solution comprend plusieurs offres obtenues grâce à des acquisitions auprès de différents fournisseurs.Contact : microfocus.com/en-us/products/uft-one/contact

Essai gratuit disponible: microfocus.com/en-us/products/uft-one/free-trial

Référentiels partagés et bibliothèques partagées d'actifs de simulation réutilisables.Interface WebFormats limités pris en charge pour les rapports.
Utilise Excel pour des services plus importants au lieu d'une implémentation basée sur SQL.
FacteurAxé principalement sur les tests d'API avec une certaine prise en charge de la moquerie d'API.Outil léger avec un faible encombrement et une interface utilisateur simpleNe dispose que d'outils de moquerie statiques légers. Ne fait pas de véritable virtualisation de service.Plans tarifaires multiples. La facturation peut être annuelle ou mensuelle pour une prime.

postman.com/tarifs/
Collaboration via des espaces de travail pour organiser le développement d'API.Intégré à la plate-forme de test d'API pour la moquerie, la sécurité et la gouvernance.Support de protocole très limité
Prise en charge native de GitOption cloudDes scénarios plus complexes nécessitent des scripts étendus.
BroadcomSurveille le trafic entre les systèmes dépendant et cible pour automatiser la création et la mise à jour des services virtuels.Simulations de services et d'applications qui modélisent avec précision le comportement du système.Modèle de tarification complexe avec coûts cachés.Contactez un partenaire ou un distributeur Broadcom pour obtenir un devis.

broadcom.com/how-to-buy/partner-distributor-lookup
SV Java API Client permet aux développeurs d'accéder aux fonctionnalités SV et aux services virtuels en code Java.Les scripts sont utiles pour les équipes de développement.Nécessite des scripts pour la plupart des services.
La capacité d'auto-guérison intelligente simule automatiquement les réponses.Exécutez des tests sur l'ensemble de la pile pour valider les API à chaque couche d'une application complexe à plusieurs niveaux.Assistance limitée via des partenaires.Édition communautaire gratuite disponible sur demande.
Inclut des fonctionnalités intégrées pour les tests fonctionnels, d'interface utilisateur, mobiles et de performances automatisés.Support mainframe et multi-protocole.Client lourd difficile à utiliser.
Intégration avec les outils de développement et de test.Développement et tests en parallèle.Cher et gourmand en ressources.
Découvrez comment votre équipe peut tester en continu avec Parasoft Virtualize.

Par Adam Attanasio

Adam Attanasio est chef de produit pour la plate-forme de qualité continue Parasoft, axé sur l'amélioration de l'expérience des tests d'API et d'interface utilisateur et dédié à aider les clients à choisir les bonnes solutions de test. Avec plus de 15 ans d'expérience en informatique, Adam travaille avec des entreprises pour se concentrer sur la collaboration, l'efficacité et la qualité.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.