Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Comment simuler des anomalies avec la virtualisation des services

Par Chris Colosimo

17 mars 2017

3  min lire

Dans mon dernier article de blog à propos de la virtualisation des services, j'ai discuté des tests utilisant une réponse virtuelle pour simuler le comportement d'une application qui évoluait encore ou qui n'était pas encore disponible. Aujourd'hui, j'aborde la question suivante: que se passe-t-il s'il existe des exigences ou des conditions supplémentaires qui ne peuvent pas être créées avec l'application normale parce que le comportement du système principal nécessite des configurations anormales?

La virtualisation des services nous permet d'aborder ce défi en nous donnant non seulement un accès sans contrainte aux systèmes et à la technologie backend, mais en nous permettant de prendre le contrôle des réponses fournies par ces composants. En règle générale, la virtualisation de service est utilisée pour simuler le comportement de chemin heureux des composants dépendants dans un environnement, ou pour combler une lacune lorsqu'un composant est manquant, mais il y a un autre aspect à ce point. Nous pourrions inverser ce flux de travail et utiliser la virtualisation des services pour simuler un comportement anormal pour un composant existant.

Simulation de comportement anormal

Qu'est-ce que la simulation de comportement anormal? Plus simplement, il s'agit de fournir des réponses négatives de la part des services d'une manière prévisible pour valider ou se prémunir contre un comportement d'application spécifique. Pour illustrer ce concept, nous pourrions envisager une situation dans laquelle un développeur souhaite protéger son application contre les pannes en amont. Cela semble être une tâche importante pour chaque développeur, mais en réalité, cela est normalement impossible.

Imaginez le développeur qui crée une application de panier qui tire parti de PayPal et qui souhaite intégrer une fonctionnalité permettant de gérer une panne de PayPal. Peut-être veulent-ils s'assurer que l'utilisateur final ne perde pas sa progression si PayPal se déconnecte soudainement ou envoie une réponse négative. Tester cette condition serait un défi dans un environnement réel. Comment un développeur ferait-il cela sans virtualisation? Imaginez un appel téléphonique à PayPal: "Pourriez-vous faire en sorte que vos serveurs expirent pendant quelques heures aujourd'hui?" Non seulement cela ne sera pas une bonne conversation, mais même si, au cas où ils introduisaient le comportement négatif, cela affecterait tout votre environnement de développement. Quiconque voudrait tester l'API PayPal ce jour-là en souffrirait.

C'est là que la virtualisation des services est si puissante. Puisque le développeur contrôle le service virtuel, il lui sera facile de configurer ce comportement anormal. Ils peuvent créer une interface PayPal virtuelle sur leur propre point de terminaison privé en référençant la documentation WSDL ou Swagger fournie par PayPal ou tout contrat de service tiers. Ils allaient ensuite dans le service virtuel et le définiraient sur "Erreur interne du serveur 500. » Cela permettrait au développeur de voir ce qu'il adviendrait de son code dans ces conditions. En poussant un peu plus loin, ils pourraient simuler un "200 OK”Mais répondez avec un JSON mal formé ou même paramétrez le service pour qu'il réponde avec un délai considérable juste pour voir ce qui se passe. Les possibilités sont infinies.

Ce type de test anormal à la demande est inestimable. Il permet aux développeurs de masser leur code tout en contrôlant tous les types de comportement de réponse anormal. Cela accélère le processus de validation et améliore globalement le code d'application. Mais ce n'est pas là que ça s'arrête. Il existe d'autres domaines, généralement inattendus, dans lesquels la simulation d'un comportement de service anormal peut être un avantage considérable pour les organisations de développement, et c'est l'idée de la virtualisation des défauts.

Alors, qu'est-ce que la virtualisation des défauts?

Considérez la virtualisation des défauts comme une «relecture négative». Ce que vous faites, c'est que vous créez un environnement anormal pour qu'une application «vive». Pensez à un mannequin de test de collision - vous n'allez pas installer un mannequin de test de collision dans une voiture qui ne fera que rouler sur la route dans des conditions normales. Il y a de fortes chances que l'environnement dans lequel ce mannequin a été placé soit spécialement configuré pour lui offrir une très mauvaise journée.

C'est la même chose pour la virtualisation des défauts. Simuler des conditions négatives susceptibles de se produire en externe obligera une application à exposer une sorte de comportement inattendu. Cela peut être assez puissant car vous pouvez utiliser cet environnement simulé pour rejouer le comportement des équipes d'assurance qualité ou de développement. L'équipe pourrait prendre cette simulation et voir, de première main, quel est le problème. Cela rejouerait le comportement négatif pour eux de manière cohérente et dans le processus de réparation de l'application, ils pourraient «rejouer» le scénario dans l'environnement négatif, pour s'assurer que le nouveau code a résolu le problème.

Dans la vidéo ci-dessous, je vais vous montrer comment tester contre des conditions anormales, à la demande. Je vais également découvrir un défaut dans mon application et montrer comment, grâce à des tests anormaux, je peux rejouer de manière fiable les conditions qui l'exposent. Je vais le faire dans le nouveau gratuit Edition communautaire de Parasoft Virtualize.

Par Chris Colosimo

Chef de produit chez Parasoft, Chris élabore des stratégies de développement de produits pour les solutions de test fonctionnel de Parasoft. Son expertise en accélération SDLC grâce à l'automatisation l'a conduit à des déploiements majeurs en entreprise, tels que Capital One et CareFirst.

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