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