Découvrez comment la solution Parasoft Continuous Quality permet de contrôler et de gérer les environnements de test pour fournir des logiciels de haute qualité en toute confiance. Inscrivez-vous pour la démo >>

BLOG

Test lorsque l'API n'est pas prête

Test lorsque l'API n'est pas prête Temps de lecture : 4 minutes

Avec la complexité des applications d'aujourd'hui, il est facile de se retrouver dans une situation où toutes les parties de votre code ne sont pas prêtes en même temps. En tant que développeur, vous attendez peut-être une API tierce pour être mise à jour, une organisation partenaire pour terminer son code ou d'autres équipes de votre organisation pour avoir un composant prêt à être testé. Cela peut être un frein pour l'ensemble du calendrier de publication de votre organisation, car les tests sont sauvegardés en attendant que toutes les pièces soient terminées.

La virtualisation des services a été conçue dans cet esprit. Il fournit aux équipes de développement et de test un accès sans restriction à des environnements de test complets en simulant les composants dépendants que vous auriez autrement manqués ou attendus.

Le jeu de la faute

Dans un environnement Agile, les développeurs peuvent travailler simultanément dans toute la base de code sur des composants système interconnectés. Chaque développeur doit accéder aux composants des autres développeurs afin d'accomplir ses propres tâches. Souvent, nous rencontrons une situation dans laquelle un développeur a besoin de réponses d'un composant ou d'une API d'un autre développeur au début du projet - si tôt, parfois, que l'autre développeur n'a même pas créé le code appelé. Cela signifie qu'un ou les deux développeurs seront bloqués jusqu'à ce que les deux morceaux de code soient terminés. Dans le logiciel, nous appelons cela une impasse.

Je suis souvent confronté à ce défi lorsque j'écris du code. Mon équipe travaille peut-être sur une application Web orientée client, et chaque sprint comprend un nouvel ensemble de user stories pour implémenter des fonctionnalités basées sur les données que j'obtiens d'une API REST. Et presque tous les jours, je suis bloqué et je ne peux pas travailler sur le code de mon application car l'une des API dont je dépend n'est pas en état de fonctionnement. Cela peut provenir de diverses raisons, mais cela a généralement à voir avec l'un de mes collègues qui introduit un bogue quelque part dans son code alors qu'il travaille sur l'API.

Le gros problème avec ceci est que je suis sur une date limite et que mon manager attend de moi que je reçoive ce code d'ici la fin du sprint. Et donc, ce que je dois généralement faire, c'est me rendre au bureau de mes collègues et parcourir leur code avec eux pour les aider à résoudre le défi auquel ils sont confrontés. (C'est génial… nous collaborons avec des développeurs… quel événement rare!) Mais malheureusement, ce qui finit par arriver, c'est que je passe la majorité de mon temps à déboguer leurs problèmes pour me débloquer. Cela signifie qu'ils terminent leur code à temps, alors que je ne le fais pas.

Attendre l'accès aux fonctionnalités dépendantes limite l'agilité. Comment suis-je censé travailler dans ces conditions? La réponse est de simuler. Je peux utiliser la virtualisation des services pour sortir de ces blocages et créer rapidement un actif virtuel qui simule pratiquement tous les comportements anticipés.

Utilisation de la virtualisation des services

j'utiliserai Parasoft Virtualiser pour vous montrer comment procéder (que vous pouvez désormais utiliser gratuitement avec la nouvelle Community Edition). Vous pouvez créer la simulation sans avoir à faire de script - que ce soit dans l'interface graphique ou à partir d'un fichier de définition comme WSDL. Par exemple, dans les premières étapes du développement de l'API, le WSDL ou le schéma peut ne pas être disponible et le développeur peut ne disposer que d'un exemple de réponse. Avec Virtualize, c'est plus que suffisant pour démarrer. Je prends simplement l'objet de réponse et le colle dans un répondeur. Je peux ensuite basculer un interrupteur et l'outil créera un schéma à la volée. Ceci est très utile, car je n'ai pas à me soucier d'envoyer la charge utile correcte, et à mesure que les données changent, Virtualize s'assurera que la structure de la charge utile reste cohérente à chaque fois qu'une réponse est envoyée. Cela rend la simulation de la réponse très facile. Le point final est configuré automatiquement et toujours disponible. Je n'ai besoin que de me concentrer sur les données que je souhaite que la nouvelle réponse envoie. Avec Virtualize, vous pouvez également modéliser visuellement divers formats de messages tels que XML, JSON et divers formats hérités, financiers, de santé et autres formats spécifiques à un domaine.

Il y a des avantages majeurs à travailler de cette façon avec une réponse simulée, dont le plus important est le temps. Une réponse de service simple peut être mise en place en quelques minutes, au lieu de quelques jours d'attente pour que le vrai service soit disponible. Cela me permet de commencer à travailler immédiatement, de faire des réponses à développer et de voir instantanément l'impact sur leur nouveau code. Cela m'aide à coder plus intelligemment et plus rapidement, car des conditions qui seraient normalement imprévisibles peuvent être testées immédiatement et la fonction peut être ajustée en temps réel.

C'est exactement ce que je fais pour me sortir de ce cycle d'attente. Lorsque l'une des API backend tombe en panne, j'utilise la virtualisation de service pour simuler la réponse. Je peux mettre n'importe quelle charge utile, et je sais que c'est exact parce que j'ai utilisé une définition. Je suis également convaincu qu'il me fournira les données correctes car j'ai le contrôle. L'utilisation de cette technologie me permet de respecter mes délais.

 

Écrit 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.