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

Les tests API peuvent-ils ajouter des modificateurs d'efficacité dans la nouvelle norme du COVID-19?

Les tests API peuvent-ils ajouter des modificateurs d'efficacité dans la nouvelle norme du COVID-19? Temps de lecture : 9 minutes

Impacts sur les méthodes traditionnelles de fourniture de logiciels

Alors que les organisations continuent de lutter contre l'impact du COVID-19, les entreprises cherchent à redéfinir les pratiques de test dans la «nouvelle réalité». La pandémie en cours a compromis la capacité des organisations à tester et à fournir des logiciels de plusieurs manières.

Ressources limitées

Tout d'abord et surtout, contraintes de ressources continuent d'augmenter car de nombreux travailleurs ne peuvent tout simplement pas travailler à domicile au même titre que dans un bureau. De plus, comme de nombreuses entreprises exploitent les ressources des intégrateurs de systèmes mondiaux, différentes zones géographiques ont établi des règles spécifiques sur les conditions de travail. De nombreuses organisations ne peuvent tout simplement pas faire face à l'impact, de sorte que les dirigeants recherchent des solutions pour répondre aux mêmes exigences de test avec moins de ressources.

Collaboration d'équipe à distance

Ensuite, les organisations doivent réfléchir aux moyens qui ont contraint et les équipes distantes collaborent. Il est très intéressant de constater à quel point l'isolement continu a créé un sentiment de malaise qui a un impact significatif sur les équipes qui travaillent à distance. En effet, pour ceux d'entre nous qui travaillaient dans un bureau, il était trop facile d'entrer dans le bureau de quelqu'un et d'engager une conversation sur la dernière version.

Ce niveau d'interaction sociale nous a donné la possibilité de discuter de nos tâches quotidiennes ainsi que des préoccupations relatives à la qualité et au processus. Travailler dans une capacité purement distante contraint ces activités et nous met dans un état d'isolement total ou, dans le cas de la plupart des organisations, de distraction totale. Il est difficile de découvrir les bonnes façons de travailler avec des équipes distantes afin de trouver un équilibre entre une communication insuffisante et une communication excessive. Avoir le bon logiciel de collaboration, la bonne gouvernance et les meilleures pratiques aident les organisations à prospérer dans la nouvelle réalité.

Mécanique de livraison de logiciels

Ensuite, les organisations informatiques doivent radicalement repenser leurs mécanismes de livraison de logiciels. «Mobile-first» commence à devenir hypercritique pour les organisations offrant des expériences numériques à leurs clients. Ceci est particulièrement important car vous ne pouvez pas interagir physiquement avec vos clients dans un magasin. Cela affecte gravement les centres d'appels. Et la présence numérique représente désormais en grande partie ta marque. Tout est passé à un domaine purement numérique: de la commande de nourriture via une application, de la banque en ligne, de la commande et de la livraison de produits pharmaceutiques critiques, et même de l'achat de vêtements. Les organisations doivent être en mesure de développer et de proposer rapidement ces expériences dans ce monde en mutation, afin de ne pas perdre la connexion avec leurs clients.

À ce défi se trouve la considération que les organisations doivent porter sur le réel mécaniciens de livraison. Tout en repensant et en concevant radicalement les expériences numériques pour nos clients, nous devons réfléchir à la manière dont nous développons, testons et livrons du contenu numérique via le pipeline DevOps.

Passage aux écosystèmes cloud et aux plates-formes de développement Low-Code

La pandémie COVID-19 a poussé de nombreuses organisations à moderniser leurs mécanismes de livraison en déplaçant leurs logiciels vers des écosystèmes cloud et des plates-formes de développement low-code afin que les développeurs et testeurs géographiquement séparés puissent collaborer et itérer pour offrir les meilleures expériences possibles.

Nous constatons une augmentation des migrations vers des plates-formes telles que Salesforce, Guidewire, Mendix et d'autres. Non seulement pour permettre une livraison rapide, mais aussi pour tirer parti de toutes les capacités inhérentes à ces plates-formes pour une organisation aux ressources limitées.

De plus, à mesure que le développement et le déploiement de logiciels via le pipeline CI se modernisent, nous assistons à une migration vers des plates-formes cloud telles que Azure DevOps, Pivotal Cloud et Amazon Web Services (AWS).

Les entreprises de logiciels informatiques doivent endurer. Ils doivent offrir des expériences numériques hautement interactives à leurs clients à un rythme accéléré avec des ressources limitées. Mais quelque chose doit céder.

Assez souvent, avec ces forces rivales, vous vous retrouvez sacrifier la qualité Dans le processus. Il est plus important que jamais de s'assurer que la qualité est une priorité afin que les clients qui interagissent directement avec vous via des expériences numériques ne souffrent pas. La meilleure façon de continuer à offrir des expériences de qualité dans un monde contraint est de rechercher des «modificateurs d'efficacité» pour votre pratique de test.

Les modificateurs d'efficacité vous font gagner du temps

Quels sont ces «modificateurs d'efficacité»? Ils se présentent sous plusieurs formes différentes:

  • Conception et optimisation de tests intelligents
  • Exigence complète pour coder la couverture
  • Exécution de test intelligente

Conception et optimisation de tests intelligents

Il y a tellement de choses à tester dans une application moderne, y compris l'interface utilisateur frontale, les services middleware, y compris les bases de données, les systèmes backend et les dépendances tierces. Chacune de ces couches ajoute de la complexité au processus de test global. De nombreux fournisseurs d'outils de test de logiciels proposent des solutions pour tester des pièces de cette architecture. Mais ce qui devient important, c'est de s'assurer que vous pouvez tester avec précision chaque composant dans son intégralité, depuis le moment où la première ligne de code est écrite jusqu'au test intelligent de l'interface utilisateur dans l'application terminée.

Un raccourci pour concevoir et optimiser ces tests nécessaires consiste à tirer parti de l'intelligence artificielle. Les organisations recherchent des solutions intelligentes qui intègrent l'intelligence artificielle pour optimiser le processus de création de tests. Cela peut prendre la forme d'une analyse intelligente du code pour identifier les mauvaises pratiques dans le code au fur et à mesure de son écriture, générer automatiquement des tests unitaires, identifier des modèles et des relations dans des séquences d'API pour créer des scénarios de test complets. Et, enfin, en utilisant l'auto-réparation alimentée par l'IA au niveau de la couche d'interface utilisateur pour récupérer des interfaces d'application changeantes.

Exigence complète de couverture du code

Il ne suffit pas de créer tout un tas de tests. Pour valider rapidement l'application, vous devez comprendre comment chacun des tests est en corrélation avec les exigences de l'entreprise afin que vous puissiez comprendre la priorité et comment elle est corrélée au code sous-jacent afin que vous puissiez commencer à comprendre l'exhaustivité des tests.

Ainsi, un puissant modificateur d'efficacité pour une équipe de test contrainte consiste à créer une pratique de test où les cas de test sont étroitement liés aux exigences de l'entreprise et au code de développement pour créer une vue complète et holistique de la qualité.

Exécution de tests intelligents

Maintenant, une fois que vous avez toute une série de tests et que vous comprenez comment les résultats des tests peuvent être exploités dans une perspective prioritaire en les liant aux exigences, vous devez être en mesure d'exécuter ces tests de la manière la plus efficace possible. La plupart des organisations exécuteront toute leur suite de tests pendant la nuit. Passez ensuite la moitié de la journée suivante à parcourir ces résultats pour essayer de déterminer si quelque chose a réellement mal tourné ou s'il y a eu du «bruit d'automatisation».

La meilleure façon de gagner en efficacité dans l'exécution de vos tests consiste à exécuter des tests intelligents. Il s'agit d'une exécution des seuls cas de test que vous devez exécuter pour valider les modifications apportées à votre application. En utilisant des technologies telles que l'exécution de tests intelligents, vous pouvez:

  • Identifiez rapidement les cas de test que le changement affecte.
  • Liez-les aux exigences associées.
  • Comprenez la priorité.
  • Dites à votre équipe de test contrainte exactement ce qu'elle doit faire.

Il y a de nombreuses pièces à ce puzzle de qualité comme indiqué ci-dessus. Beaucoup de ces pratiques de test sont largement comprises, telles que la capacité de tester des bases de données ou la capacité de tester une interface utilisateur. Mais une discipline qui est souvent négligée et laissée aux étapes ultérieures du test d'application est le test d'API.

Une perspective focalisée sur les tests d'API

Le test d'API consiste à valider les interfaces de votre application au niveau du service ou du composant. Ces API sont les mécanismes par lesquels les machines communiquent entre elles et servent souvent de point de rupture pour les applications une fois qu'elles sont rassemblées. Surtout dans le monde actuel des architectures orientées services ou microservices, ce point d'intégration critique est de la plus haute importance lorsqu'il s'agit de créer une expérience numérique.

En règle générale, l'application mobile n'est qu'une interface vers toute une série de services et ces services sont ce qui fournit la valeur critique de votre entreprise. En tant que tel, les organisations doivent créer une pratique de test d'API complète en parallèle avec le reste de leurs techniques de test.

Ceci est cependant plus facile à dire qu'à faire, car la plupart des interfaces API sont mal documentées ou contiennent une série d'API cachées et non documentées. Il est donc très difficile pour les équipes de test de comprendre comment tester toutes les API, dans quel ordre et comment s'assurer qu'elles ont couvert avec précision le nombre correct de cas d'utilisation.

Comment intégrer les tests API dans votre pratique de test

Une fois qu'une organisation décide d'adopter les tests d'API comme modificateur d'efficacité, la clé est de commencer de manière significative. La meilleure façon de démarrer ce processus est d'identifier un inventaire des API disponibles dans l'architecture de votre application. Parasoft SOAtestLe générateur de test d'API intelligent de vous permet de découvrir les API en enregistrant les interactions entre l'application et les services d'API.

La technologie tire parti intelligence artificielle (AI) pour fournir la construction de tests API significatifs en comprenant les modèles et les relations dans les séquences d'API. Il l'utilise ensuite pour créer des tests API automatisés qui s'exécutent en continu pour valider les interactions entre vos différents composants système.

En même temps, vous pouvez créer des tests de niveau d'interface utilisateur Selenium purs avec Parasoft Sélénic. Les tests d'interface utilisateur sont un élément important de la pratique globale des tests, mais des problèmes de maintenabilité peuvent survenir avec une stratégie de test purement centrée sur l'interface utilisateur. Parasoft Selenic utilise l'IA pour identifier les problèmes de stabilité des scripts de test et peut auto-réparer les tests au moment de l'exécution.

Bien que ce ne soit pas l'objet de cette conversation, la combinaison des deux composants garantit une large couverture de l'application et vous aide à être sûr que vos interfaces d'application ne sont pas en danger.

Si vous disposez déjà de tests d'interface utilisateur basés sur Selenium, vous pouvez utiliser Parasoft Selenic pour extraire les appels d'API pertinents et les alimenter dans le moteur de test d'API. En effectuant un inventaire des interfaces disponibles et en créant des tests automatisés pour ces interfaces, vous pouvez démarrer rapidement la création d'une pratique de test d'API.

Comment savoir quand j'ai terminé les tests d'API?

C'est un problème très complexe. Comment savez-vous que vous en avez suffisamment testé? Il y a beaucoup de débats autour de ce sujet, mais je pense qu'il se décompose en trois métriques.

  • Couverture de code
  • Couverture API
  • Couverture des exigences

Obtention de la couverture du code

La couverture du code est en grande partie facile à obtenir. Vous instrumentez votre application avec un moniteur de niveau de code et exercez vos applications via les API. Le moniteur de niveau de code identifiera les classes et les méthodes avec lesquelles interagissent et remettra ces informations dans votre moteur de reporting et d'analyse.

De par leur nature même, les API n'exposent pas toutes les fonctionnalités de code disponibles via l'API, de sorte que votre organisation doit identifier le code accessible par les API. Une fois que vous avez ces informations, vous pouvez définir un seuil pour le niveau de couverture de code que vous souhaitez atteindre grâce à vos tests d'API. Généralement, 80% est un bon niveau à atteindre.

Obtention de la couverture API

La couverture du code n'est cependant qu'une partie de l'histoire. Vous souhaitez également examiner la couverture des API. La couverture d'API est une métrique qui indique, du nombre total d'API disponibles qui sont accessibles, combien de ces API sont testées avec vos tests d'API automatisés. Il peut y avoir de nombreux cas où, bien que vous atteigniez un niveau élevé de couverture de code, vous présentez toujours des risques dans votre application car vous n'avez pas validé certaines API clés.

Peut-être que ces API clés ne touchent qu'une petite partie du code, elles se perdent donc dans la couverture globale du code, mais comme elles touchent un composant critique, elles présentent un risque important en cas de mauvais comportement ou d'abus intentionnel.

Vous pouvez atteindre la couverture API via votre solution de test automatisé en dérivant le delta entre les services disponibles dans les définitions de service, tels que Swagger, API ouverte et autres, par rapport aux points de terminaison auxquels vous accédez dans vos tests API. Grâce à cette métrique, vous pourrez voir le nombre total de services couverts par rapport au nombre total de services disponibles. Généralement, 90% est un bon niveau à atteindre en fonction de la taille des API.

Obtention de la couverture des exigences

Enfin, nous devons parler de la couverture des exigences. Bien que la couverture du code et la couverture de l'API indiquent le pourcentage de l'application que vous touchez, elles n'indiquent pas si elle atteint ce que vous vouliez pour vos clients.

La couverture des exigences est le processus d'association des exigences aux scénarios de test. Vous devez établir que le scénario de test automatisé valide le cas d'utilisation à un niveau technique. Vous serez alors en mesure de comprendre par l'exécution si toutes vos exigences sont couvertes. Si non, quelles exigences restent à découvert? Et quelle est leur priorité commerciale?

On dirait que la couverture des exigences est la plus importante des trois techniques - idéalement une couverture à 100%. Mais, en réalité, vous devez utiliser les trois mesures en combinaison pour bien comprendre quand vous avez un niveau de risque acceptable pour la libération.

Comment puis-je réduire l'écart entre l'identification des défauts et la correction?

Une rétroaction continue est vitale dans un environnement de travail à distance. Nous devons être en mesure de réagir aux problèmes de qualité qui se manifestent dans nos expériences numériques de manière significative et le plus rapidement possible. Étant donné que les API représentent le plus proche possible du code sans regarder les sources, elles représentent une bonne première ligne de défense pour l'ingénierie de la qualité pour identifier quand des défauts ont été introduits dans l'application qui pourraient potentiellement se propager aux utilisateurs. Les tests d'API automatisés vous permettent de valider vos API de manière continue. Potentiellement comme étape de construction dans votre pipeline CI / CD. Une clé pour s'assurer que ce processus est évolutif est d'adopter une exécution de test intelligente.

Comme mentionné précédemment, l'exécution de tests intelligents est un terme générique faisant référence au processus consistant à exécuter uniquement les tests nécessaires pour valider les modifications. Ces changements peuvent provenir du code ou de l'exigence.

En implémentant une exécution de test intelligente dans votre processus CI / CD ou DevOps, vous pouvez exécuter les tests API appropriés pour valider votre architecture changeante. En n'exécutant pas toute la suite de tests pour chaque build, vous pouvez réduire considérablement le laps de temps entre la détection des défauts et la correction. Ces cycles de rétroaction rapides sont vitaux dans un monde aux ressources limitées.

Résumé

Le monde a changé. Avouons-le. Ce sera comme ça dans un avenir prévisible. Mais nous n'avons pas besoin de voir cela comme un moment pour nous inquiéter. Nous pouvons plutôt utiliser cela comme une opportunité de transformation numérique.

En examinant nos processus de qualité et en identifiant les domaines dans lesquels ajouter des modificateurs d'efficacité, nous pouvons sortir de cette pandémie dans une position beaucoup plus favorable. Tests fonctionnels de l'API est l'une des nombreuses pratiques qu'une organisation peut adopter pour fournir des informations précieuses sur la fiabilité et l'évolutivité de nos applications.

Pour en savoir plus sur la création d'une pratique de test d'API, regardez notre webinaire à la demande.

Améliorez la qualité des logiciels grâce aux tests d'API basés sur l'IA Regardez le webinaire

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