Obtenez les dernières informations de mise à jour critique pour la vulnérabilité Log4j. Découvrez comment résoudre le problème avec les conseils de Parasoft. En savoir plus >>

X

Testez en continu avec la virtualisation des services

Les services que votre application appelle peuvent ne pas être disponibles pour les tests de charge lorsque vous en avez besoin. La virtualisation des services crée des services virtuels stables qui reproduisent la réalité.

Qu'est-ce que la virtualisation des services ?

La virtualisation des services est une fonction de test logiciel qui peut émuler les dépendances d'une application. Il permet aux équipes DevOps d'utiliser des services virtuels générés par ordinateur à la place de services réels afin de pouvoir tester souvent, tester tôt et réduire les coûts dans diverses situations. Il s'agit notamment des éléments clés du système distribué qui manquent : par exemple, lorsque les composants dépendants sont inaccessibles, la mise à l'échelle des environnements de formation et la création de scénarios d'intégration des partenaires.

L'utilisation de services virtuels à des fins de test est plus rentable que l'utilisation d'environnements de production à ces fins. Les tests d'API avec simulation de point de terminaison éliminent les risques de perte de données, évitent d'utiliser les serveurs coûteux dont le programme réel a besoin pour fonctionner et permettent à l'entreprise de renoncer aux frais de licence excédentaires. Il en résulte des procédures de test rapides, précises et moins lourdes.

Intégrez la virtualisation des services dans les pratiques de test automatisées pour les tests d'intégration continue exigés par les workflows DevOps.

Les avantages de la virtualisation des services

Pour tirer profit des initiatives Agile et DevOps, les équipes ont besoin d'un accès instantané à leur environnement de test, sans contraintes. En appliquant la virtualisation des services dans les environnements de test, les entreprises peuvent réduire ou éliminer la dépendance vis-à-vis des dépendances indisponibles, instables ou coûteuses, telles que les services tiers, les bases de données et les mainframes.

Accédez à tout moment

Accédez aux services dépendants avec lesquels votre application doit interagir pour des tests précis et approfondis, même s'ils sont indisponibles ou incomplets au moment du test.

Isoler les dépendances de service

Lorsque vous ne pouvez pas accéder au service concerné, ses interdépendances associées sont également une boîte noire. La virtualisation des services étudie les comportements réels et réplique ces interdépendances dans l'équivalent virtuel, fournissant des réponses précises.

Assurer la stabilité du test

Des services incomplets ou instables peuvent entraîner des échecs et des retards dans les tests. Un équivalent virtuel est plus stable, offrant une automatisation fiable et une tranquillité d'esprit lors des tests.

Tirez parti des outils sans script

Les testeurs n'ont pas besoin d'écrire des scripts compliqués. Des outils sans script et sans code permettent même aux testeurs novices de participer. Dans les cas occasionnels où les scripts sont indispensables, Parasoft prend en charge une variété de langages de programmation.

Reproduire avec précision le comportement du monde réel

La virtualisation des services de Parasoft étudie les appels réels de l'application aux services en direct pour modéliser avec précision les demandes et les réponses dans la version virtuelle. Une définition de service peut également être appliquée pour une meilleure corrélation.

Effectuer des tests de cas négatifs et de bord efficacement

Il est difficile de faire en sorte qu'un service dépendant se comporte intentionnellement d'une mauvaise manière, mais ces extrêmes doivent être pris en compte pour des tests précis. Parasoft garantit que le service virtuel répond à une variété de conditions de test pour des tests plus approfondis.

Façons d'utiliser la virtualisation des services

Plusieurs domaines peuvent tirer parti de la virtualisation des services pour améliorer la productivité.

Développement Agile/Parallèle

Les pratiques logicielles modernes impliquent plusieurs équipes opérationnelles travaillant séparément sur des éléments de l'environnement, puis les réunissant via des API pour former le produit final. En attendant l'accès à une partie de l'application, les équipes DevOps peuvent utiliser la virtualisation des services pour simuler ces pièces manquantes afin de pouvoir poursuivre le développement de leur application.

Test de performance

Utilisez la virtualisation des services pour vous assurer que votre application peut gérer la pleine capacité nécessaire pour les temps de réponse à forte demande, tels que les ventes de vacances. Souvent, le coût de maintenance d'un environnement de spectacle vivant est proche d'égaler l'environnement de production d'une entreprise. En utilisant la virtualisation des services, les entreprises peuvent simuler les dépendances des API qu'elles testent et réduire considérablement le coût des tests de performances.

Gestion des données de test

Les entreprises disposent de grandes quantités de données qui constituent une partie importante de leurs interactions avec leurs clients, par exemple une banque. Ces informations peuvent inclure des PII (informations personnellement identifiables) telles que des numéros de sécurité sociale. Il n'est pas approprié de permettre aux testeurs d'avoir accès à de vraies sources de données de production pour leurs besoins. La virtualisation des services donne aux équipes de test la possibilité de générer des données de manière synthétique, par exemple, des numéros de sécurité sociale de télécopie correctement formatés, qu'elles peuvent ensuite utiliser pour tester les fonctionnalités.

Entrainement d'employé

Les entreprises peuvent utiliser la virtualisation des services pour former leurs employés à une application qu'ils utiliseront au quotidien. Cela évite aux stagiaires d'avoir à se former à la version de production réelle du logiciel, qui peut être liée à plusieurs applications compliquées, et les empêche de modifier ou de supprimer des données sensibles.

Intégration des partenaires

Les entreprises exposent souvent des API à des clients ou à des partenaires commerciaux, y compris des environnements de test pour faciliter une intégration facile. La maintenance de ces environnements de test pour les partenaires a un coût, comme pour tout autre environnement. La virtualisation des services est une excellente technique pour offrir aux partenaires l'accès aux environnements sandbox de vos API à moindre coût.

Meilleures pratiques pour la virtualisation des services

Soyez conscient de la virtualisation des services requise.

Pas besoin de créer tout ou même une grande partie du comportement réel du système que vous virtualisez ; vous n'avez qu'à mettre en œuvre les transactions essentielles. Et n'essayez pas d'émuler des requêtes ad hoc. Si vous rencontrez un mauvais scénario de test à partir d'une entrée erronée, vous pouvez générer une transaction virtualisée qui le réplique.

Reconnaissez les cas de test que vous soutenez.

N'incluez les comportements dans votre service virtuel qu'après avoir compris comment les cas interagissent avec eux. Votre plan de test doit définir précisément les transactions à inclure dans la virtualisation. Laissez le plan de test piloter les transactions que vous allez virtualiser.

Testez le bon système.

Assurez-vous de créer des scénarios de test qui fournissent la validation du système que vous testez, et non la virtualisation des services. Simulez une réplique idéale du composant dépendant. Dans le même temps, la virtualisation doit être suffisamment intelligente pour permettre au client de finaliser un workflow. Par exemple, lors des tests d'interface utilisateur pour une banque, le service virtuel ne doit couvrir que la représentation correcte d'un retrait ou d'un dépôt ; pas besoin de vérifier le solde du compte.

Chaque équipe doit développer ses propres services virtuels.

Chaque équipe a ses propres exigences et lorsqu'elle crée ses propres versions d'actifs virtuels, aucun dommage ne se produit en cas de redondance. Tenter de créer des virtualisations de service que plusieurs équipes doivent utiliser ne génère qu'un autre service limité. La meilleure pratique consiste à ce que l'équipe qui a développé le service réel crée également le service virtuel, car elle possède l'expertise locale.

N'utilisez pas de réponses aléatoires.

Les réponses aléatoires ne produiront pas de test fonctionnel duplicable. Si vous devez faire varier les données que vous recevez d'une certaine demande, le meilleur moyen est de créer un ensemble de réponses non changeant pour un groupe d'entrées comparables. Au lieu de cela, faites varier la diffusion du trafic avec des entrées aléatoires.

Évitez les surcharges de données.

Faire correspondre plusieurs demandes de transaction qui ont exactement la même réponse signifie une maintenance élevée. Par exemple, faites correspondre uniquement le dernier chiffre d'un numéro de compte. Le mappage de plusieurs numéros de compte uniques à une seule transaction résout le problème de la mise en cache de la base de données des tests de performances.

Assurez-vous que votre application résout les échecs.

La plupart des plans de test ont moins de scénarios de couverture de test positifs et plus de scénarios négatifs. Cela aide lorsque les développeurs repèrent des exceptions. Vous pouvez plus facilement reconnaître les situations d'échec dans un cas de test étroit plutôt que dans des situations à l'échelle du système.

Laissez le consommateur créer les services virtuels.

Les consommateurs comprennent les comportements sur lesquels ils s'appuient. Dans un environnement SOA (architecture orientée services) normal, le propriétaire du service n'est pas au courant. Ainsi, une relation étroite avec le propriétaire du service est toujours essentielle car, comme mentionné, l'expertise locale peut permettre des services plus intelligents et plus évolutifs.

Exemple de virtualisation des données

La plupart des entreprises stockent des données dans de nombreux emplacements différents, du matériel dans leurs locaux au cloud. Ces informations sont adaptées à partir de plusieurs applications et formats de fichiers. La virtualisation des services permet à n'importe quelle application d'accéder aux données pertinentes quels que soient le format, la source ou l'emplacement.

Dans ce cas, la virtualisation des services est une couche logicielle entre les applications qui accèdent aux systèmes de stockage et les données qu'ils contiennent. La couche interprète la requête ou la demande de données d'une application selon les besoins et fournit des résultats couvrant plusieurs systèmes.

Remarque : La fabrication des données de test peut être difficile en raison de tous les composants logiciels qui reposent sur leur validité. Une fois les données de test consommées, elles ne peuvent plus être réutilisées tant que l'état du système n'est pas rétabli. Avec la virtualisation des services, les données de test virtuelles peuvent être « développées » sur la base d'un petit échantillon et de contraintes déduites. Ces données peuvent être réutilisées et régénérées à la demande.

Capture d'écran de Parasoft Virtualize dans CTP

Comment démarrer avec la virtualisation des services

Capture d'écran des notifications d'événements et de déploiements de virtualisation de service Parasoft.

Pour commencer, il est préférable de discuter avec un professionnel de Parasoft de la manière de faire correspondre les besoins de votre entreprise avec l'expertise en virtualisation de services que Parasoft a à offrir. Après avoir déterminé vos besoins, nous affectons une équipe de virtualisation des services pour répondre à ces besoins. L'équipe travaille avec votre entreprise pour développer un plan global et une meilleure approche qui comprend des cas de test pour obtenir les données nécessaires pour résoudre les problèmes avant qu'ils ne surviennent, ce qui est l'un des principaux avantages de la virtualisation des services.

Vous voulez en savoir plus? Lisez notre guide utile pour trouver le point de départ idéal pour la virtualisation des services de votre équipe et identifier le meilleur modèle de déploiement pour vos besoins. Et consultez nos options de déploiement.

Comment Parasoft vous aide-t-il ?

Facilitez et accélérez les tests en continu grâce à la virtualisation des services. La plate-forme de virtualisation des services de Parasoft permet au développeur ou au testeur d'intégrer des tests automatisés dès le début du développement logiciel tout en fournissant des services virtuels et stables selon les besoins.

Passez facilement d'un seul utilisateur à un déploiement DevOps complet entre les équipes. Réduisez les frais généraux de développement et de test de logiciels en créant des intégrations plus tôt et en stabilisant les dépendances.

Évitez les frais généraux liés aux tests avec les environnements de production. Simulez des services qui seraient autrement inaccessibles ou instables dans les environnements Agile DevOps.

Foire aux questions

Certaines organisations ne le font pas, en particulier si elles ne sont pas soumises à de fortes pressions sur les délais ou si elles ont déjà accès à des environnements de test complets. Mais les grandes entreprises qui ont des systèmes complexes fonctionnant de manière interdépendante peuvent réaliser des avantages majeurs, tels que :

  • Réduire les dépenses d'exploitation en réduisant les temps d'attente et de configuration et en éliminant les frais d'accès.
  • Réduction des dépenses en capital car les entreprises utilisent moins de matériel, moins de ressources de laboratoire et moins de licences.
  • Réduction des risques car les équipes de développement testent plus tôt, plus rapidement et plus complètement.
  • Augmenter les revenus en stimulant l'innovation et en accélérant la mise sur le marché.

La virtualisation des services va au-delà des ébauches et des simulations en créant une simulation plus complète des services et des API. Les stubs ne sont que de petites routines système qui n'impliquent pas l'intégralité du programme. Les simulations imitent le code réel mais pas le programme entier. La virtualisation des services, quant à elle, offre la possibilité de tester une application de bout en bout. Il a également l'avantage de simuler un comportement réel, de ne pas utiliser de données réelles et de grandes quantités d'espace serveur, tout en obtenant des informations complètes qui permettent d'éviter les échecs et les bogues.

Les outils de test de virtualisation de service fournissent des réponses simulées réalistes pour tous les systèmes qui ont un protocole normal ou personnalisé impliquant la communication et la messagerie. Ceux-ci incluent les grands ERP comme SAP, les mainframes, les bases de données, les réseaux mobiles, les interfaces utilisateur et les applications tierces, pour n'en nommer que quelques-uns.