Suivez le chemin de la pyramide de test pour réaliser des tests continus

Par Marc Lambert

11 septembre 2019

4  min lire

À mesure que le développement de logiciels devient plus complexe avec des éléments tels que les microservices, les conteneurs et les API, et que la demande de versions plus rapides augmente, les tests comme d'habitude peuvent être considérés comme une étape maladroite et déplacée dans le processus de livraison. Dans cet article, découvrez comment inverser la tendance.

Réaliser des tests continus, ce n'est pas comme suivre la route de briques jaunes… ou est-ce? Bien que cela semble simple, il existe divers tests, pièges et astuces pour arriver là où vous devez aller. Les organisations qui ont adopté les méthodologies de développement Agile et DevOps savent qu'il est difficile pour les tests de suivre le rythme de ces pratiques de développement modernes. Les outils qui ne permettent pas des choses comme l'automatisation des tests et les tests continus entravent leurs efforts.

Mais comme Agile et DevOps, avec des tests continus il n'y a pas de bonne réponse pour faire les choses, et cela peut rendre difficile pour les organisations de comprendre clairement par où commencer. Faire un certain niveau d'automatisation des tests d'un point de vue fonctionnel est fondamental pour les tests continus. La virtualisation des services est une technologie habilitante clé pour les tests continus ; cependant, pour que vous puissiez même profiter de la virtualisation des services et devenir vraiment un véritable praticien des tests continus, vous devez avoir un certain niveau d'automatisation des tests en place pour commencer.

De nombreuses organisations commenceront par automatiser simplement les tests d'interface utilisateur, mais pour permettre des tests continus, les organisations doivent se concentrer sur la création d'une pratique d'automatisation de test évolutive qui suit la pyramide des tests, telle que définie par Mike Cohn (dans son livre, Réussir avec Agile) et leader d'opinion Agile Martin Fowler. À la base de la pyramide se trouve une base de tests unitaires, isolés et plus rapides à exécuter. Au fur et à mesure que vous montez dans la pyramide, les actifs que vous testez sont plus intégrés et prennent plus de temps à fonctionner. Le milieu de la pyramide est l'endroit où vous effectuez l'intégration de services, ou les tests d'API, qui est le point idéal pour l'automatisation des tests fonctionnels, puis les tests d'interface utilisateur de bout en bout sont le plus petit élément, complétant la pyramide.

Optimiser pour que les tests d'API atteignent la première phase des tests continus

Si vous souhaitez réaliser des tests continus, une base de tests unitaires est une donnée, et les tests d'API deviennent la couche critique pour valider vos cas d'utilisation. Vous souhaiterez également optimiser votre utilisation des tests d'interface utilisateur de bout en bout au sommet de la pyramide. Vous ne devriez pas éliminer les tests d'interface utilisateur, mais vous voulez les rendre aussi efficaces et ciblés que possible, car vous devez vous soucier de maintenir ces tests, ce qui peut prendre beaucoup de temps.

Une fois cela fait, les organisations atteignent la première phase de la valeur à partir des tests continus - l'identification à un stade précoce des régressions - et le meilleur moyen de trouver ces régressions est au niveau de l'API, car elles sont plus rapides à exécuter, plus faciles à diagnostiquer et plus facile à reproduire que leurs cousins ​​de niveau UI.

Libérer la deuxième phase de valeur des tests continus

Une fois que vos tests unitaires et fonctionnels sont en cours d'exécution, et que vous utilisez la virtualisation des services pour exécuter vos tests de régression de manière plus continue, vous pouvez examiner vos exigences commerciales non fonctionnelles, par exemple les performances et la sécurité.

Dans le cas des performances, par exemple, il est très facile pour les équipes de développement d'introduire des problèmes de performances incrémentielles dans l'application sans même s'en rendre compte, et il est essentiel de détecter ces problèmes au début du processus de développement pour s'assurer que les caractéristiques de performance globales de l'application ne le sont pas. aller en dehors de votre niveau de service défini de l'accord (SLA).

C'est là que vous pouvez profiter de votre pratique de tests continus pour effectuer des tests de performance de décalage vers la gauche. Commencez par appliquer la virtualisation des services pour isoler votre partie du système et supprimer les goulots d'étranglement des performances dans l'infrastructure de test. Ensuite, prenez votre solide ensemble de tests d'API et réutilisez-les pour générer une charge de votre part du système global. Enfin, intégrez l'exécution des tests de performance dans votre pipeline CI et exécutez ces tests en continu. C'est à ce moment-là que vous commencez vraiment à obtenir votre deuxième phase de valeur grâce à des tests continus.

Les technologies Parasoft qui font des tests continus une réalité

Chez Parasoft, nos outils couvrent l'unité, les fonctions, l'interface utilisateur et les tests de régression, afin d'aider nos clients à fournir des logiciels de haute qualité qui répondent également aux souhaits et aux besoins des utilisateurs finaux. Nous travaillons sur tout, des tests unitaires et fonctionnels de l'API et de l'interface utilisateur, à la gestion des données de test, à la conformité en matière de sûreté et de sécurité, à la gestion des changements, etc.

En suivant la pyramide de test, vous pouvez commencer à la base et obtenir Parasoft C / C ++test Parasoft dotTEST et Jtest Parasoft développement d'outils de test, couvrant des éléments tels que l'analyse statique pour découvrir une fiabilité et une sécurité profondes (avec prise en charge des normes OWASP, CWE et CERT), les tests unitaires, la couverture et la traçabilité.

En remontant la pyramide, vous pouvez tirer parti Parasoft SOAtest, notre solution de test fonctionnel qui se concentre sur la validation des applications au niveau de l'API. Pour aider les organisations à passer de des tests manuels aux tests API automatisés, vous pouvez utiliser le générateur de test d'API intelligent de SOAtest, qui exploite IA et apprentissage automatique pour créer des scénarios de test à partir des relations de données extraites du trafic applicatif enregistré.

Pour vraiment tenir la promesse des tests continus, vous pouvez ensuite tirer parti de la virtualisation des services avec Parasoft Virtualiser, qui permet aux organisations de dissocier l'automatisation des tests des contraintes au sein de l'environnement de test. Cela permet de véritables tests continus, permettant aux tests automatisés d'être exécutés en continu tout au long du pipeline CI.

Automatisez les tâches de test chronophages pour les développeurs et les testeurs

Par Marc Lambert

Vice-président des produits chez Parasoft, Mark est chargé de s'assurer que les solutions Parasoft apportent une valeur réelle aux organisations qui les adoptent. Mark travaille chez Parasoft depuis 2004, travaillant avec un large éventail de clients de Global 2000, des implémentations technologiques spécifiques aux initiatives plus larges d'amélioration des processus SDLC.

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