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

Recherche Gartner: tests d'API, virtualisation de services et tests continus

Par Parasoft

21 April 2016

3  min lire

gartner_devops_continuoustesting.jpgAlors que les pratiques de développement agile mûrissent et que les principes DevOps commencent à s'infiltrer dans nos cultures d'entreprise, les organisations réalisent l'opportunité distincte d'accélérer la livraison de logiciels. Cependant, lorsque vous accélérez un processus, les zones de pratique immatures et les obstacles deviennent beaucoup plus prononcés. C'est la différence entre la conduite sur un dos d'âne à 5 mi / h contre 50 mi / h ... à 50 mi / h, ce dos d'âne va être assez discordant.

L'accélération de tout processus métier exposera des contraintes systémiques qui enchaînent l'ensemble de l'organisation à son composant le plus lent. Dans le cas du SDLC accéléré, les tests sont devenus l'obstacle le plus important pour tirer pleinement parti des approches itératives du développement logiciel. Pour que les organisations tirent parti de ces stratégies de développement transformatrices, elles doivent passer de automatisation des tests vers les tests continus. Établir une distinction entre l'automatisation des tests et les tests continus peut sembler être un exercice de sémantique, mais l'écart entre l'automatisation des tests fonctionnels et l'exécution d'un processus de tests continus est considérable.

De nombreuses nuances sont associées à la transformation des tests automatisés en tests continus. Dans cet article, concentrons-nous sur trois distinctions clés:

  • Aligner le «test» sur le risque commercial
  • Accès omniprésent à des environnements de test complets
  • Automatisation extrême des tests au niveau de la couche API / message

Aligner les risques liés aux tests et à l'entreprise

Le changement le plus fondamental requis pour passer de l'automatisation au continu est d'aligner le «test» sur le risque commercial. Particulièrement avec le DevOps et la livraison continue, publier avec rapidité et confiance nécessite d'avoir un retour immédiat sur les risques commerciaux associés à une version de logiciel candidate. Compte tenu du coût et de l'impact croissants des défaillances logicielles, vous ne pouvez pas vous permettre de lancer une version susceptible de perturber l'expérience utilisateur existante ou d'introduire de nouvelles fonctionnalités qui exposent l'organisation à de nouveaux risques de sécurité, de fiabilité ou de conformité. Pour éviter cela, l'organisation doit passer de la validation des exigences ascendantes à l'évaluation des exigences système associées aux objectifs commerciaux globaux.

Accès omniprésent à des environnements de test complets

L'une des plus grandes contraintes associées à l'exercice de tests significatifs est l'accès à un environnement de test complet, y compris la myriade de systèmes dépendants avec lesquels l'application testée (AUT) interagit. Compte tenu de la nature composite des applications actuelles, il est presque impossible de mettre en place un environnement de test complet. C'est là que la virtualisation des services entre en jeu. La virtualisation de services vous permet d'émuler le comportement de composants spécifiques dans des applications hétérogènes basées sur des composants, telles que des applications basées sur des API, des applications basées sur le cloud et des architectures orientées services. En simulant les interactions de l'AUT avec les dépendances manquantes ou indisponibles, la virtualisation des services vous aide à garantir que les données, les performances et le comportement sont cohérents entre les différentes exécutions de test. De plus, il vous aide également à «décaler vers la gauche» les tests afin qu'ils puissent commencer beaucoup plus tôt dans chaque itération et exposer les défauts lorsqu'ils sont les plus rapides et les plus faciles à corriger.

En règle générale, vous devez effectuer les tests sur l'environnement le plus proche de la production auquel vous pouvez accéder… sinon en production. Cependant, cela présente généralement un défi de taille en termes de coût, de sécurité et de confidentialité. Utilisant technologies de simulation telles que la virtualisation des services vous permet de contourner les contraintes associées aux systèmes dépendants hors de votre contrôle afin d'exécuter des tests significatifs de bout en bout.

Automatisation extrême des tests au niveau de l'API / de la couche de message

Test au niveau de l'API/de la couche de message (services, files d'attente de messages, couches d'abstraction de base de données, etc.) offre plusieurs avantages distincts pour permettre des tests continus à la vitesse de DevOps :

  • Stabilité: alors que les tests d'interface graphique échouent souvent en raison de changements d'application sans conséquence, un échec au niveau de l'API / message signale généralement une faille fondamentale dans la logique de l'application, ce qui est susceptible d'avoir un impact sur l'expérience utilisateur principale. Si vous configurez un échec de suite de tests pour servir de «porte» le long du pipeline de déploiement automatisé, il est important de vous assurer que chaque échec indique un problème vraiment spectaculaire.
  • Vitesse: les méthodes de test traditionnelles, qui reposent fortement sur des tests manuels et des tests d'interface graphique automatisés nécessitant des mises à jour fréquentes, ne peuvent pas suivre le rythme requis pour DevOps. Le test est retardé jusqu'à ce que l'interface graphique soit disponible, ce qui est généralement en retard dans le processus. De plus, les tests d'interface graphique sont notoirement fragiles et nécessitent une mise à jour importante à chaque modification d'application. Les tests API peuvent être définis dès que la description du service (par exemple, Swagger ou RAML) est disponible, peuvent être exécutés beaucoup plus tôt dans le processus d'implémentation que les tests GUI et nécessitent une maintenance minimale.
  • Évaluation précise des risques: dans les applications modernes, la fonctionnalité exposée au niveau de la couche GUI n'est que la pointe de l'iceberg. Le cœur de la logique d'application est contrôlé par la couche API / message. Sans un test exhaustif des transactions critiques des utilisateurs au niveau de l'API / de la couche message, il est difficile d'être assuré que les systèmes hautement distribués d'aujourd'hui fonctionnent vraiment comme prévu.

Par Parasoft

Les outils de test de logiciels automatisés de pointe de Parasoft prennent en charge l'ensemble du processus de développement logiciel, depuis le moment où le développeur écrit la première ligne de code jusqu'aux tests unitaires et fonctionnels, jusqu'aux tests de performance et de sécurité, en exploitant des environnements de test simulés en cours de route.

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