Optez pour une voie plus rapide et plus intelligente vers l'automatisation des tests C/C++ pilotée par l'IA. Découvrez comment >>
Test de régression fonctionnelle avec SOAtest dans le cadre d'un processus d'intégration continue
L'intégration continue fusionne toutes les copies de travail des développeurs dans une ligne principale partagée. Ce processus rend le développement logiciel plus accessible, plus rapide et moins risqué pour les développeurs. Lisez cet article pour comprendre comment configurer SOAtest pour exécuter des tests de régression fonctionnelle dans le cadre de CI.
Aller à la section
L'intégration continue fusionne toutes les copies de travail des développeurs dans une ligne principale partagée. Ce processus rend le développement logiciel plus accessible, plus rapide et moins risqué pour les développeurs. Lisez cet article pour comprendre comment configurer SOAtest pour exécuter des tests de régression fonctionnelle dans le cadre de CI.
Une régression est définie comme « une tendance ou un glissement vers un état inférieur ou imparfait », ce que nous cherchons tous à éviter lors du développement de logiciels. Les tests de régression permettent de détecter les défauts qui s'infiltrent dans nos logiciels à mesure que nous ajoutons de nouvelles fonctionnalités, corrigeons des bugs ou apportons d'autres modifications à l'application.
Le test de régression est une méthode courante que la plupart des processus de développement de logiciels utilisent pour revérifier la fonctionnalité du logiciel après y avoir apporté des modifications. Ces tests déterminent si les nouvelles modifications affectent les fonctionnalités actuelles du logiciel. Bien sûr, de nouveaux tests sont nécessaires pour de nouvelles fonctionnalités. Les tests de régression permettent de s'assurer que ce qui est déjà testé reste fonctionnel.
Les tests de régression jouent un rôle essentiel dans l'intégration continue (CI) dans le développement de logiciels en garantissant que le code nouvellement intégré ne casse pas les fonctionnalités existantes ou n'introduit pas de régressions. Ces tests fournissent la rétroaction rapide essentielle dans CI en détectant les défauts dans le code nouvellement intégré afin qu'ils puissent être rapidement identifiés et résolus avant qu'ils n'affectent la stabilité du logiciel.
Les tests de régression Inclut les tests fonctionnels. En pratique, la plupart des tests fonctionnels se transforment progressivement en tests de régression. La principale différence réside dans le calendrier et l'objectif de ces tests.
Test fonctionel Ce test est généralement effectué pendant le développement, lors du développement, de l'implémentation et du test de nouvelles fonctionnalités. Il se concentre sur des fonctions, des fonctionnalités ou des cas d'utilisation spécifiques du logiciel afin de vérifier leur comportement attendu. Il peut impliquer diverses techniques de test, telles que les tests unitaires, les tests d'API, les tests d'interface utilisateur, etc.
Les tests de régression, en revanche, sont effectués pendant le développement dans le cadre du pipeline CI et/ou après des étapes de développement importantes, comme à la fin d'un sprint ou d'un cycle de publication. Les tests de régression sont automatisés autant que possible afin qu'ils puissent être reproductibles et efficaces, et ils incluent à la fois des tests fonctionnels et non fonctionnels. Plus à ce sujet ci-dessous.
Les tests de régression bénéficient considérablement de l'automatisation et, par conséquent, les outils conçus pour prendre en charge la pratique prennent également en charge l'automatisation de tous les types de tests. Ces outils permettent d'automatiser l'exécution des scénarios de test qui vérifient la fonctionnalité du logiciel, rassemblent et analysent les résultats et signalent tout problème de régression. Voici quelques classes d'outils d'automatisation logicielle couramment utilisées pour les tests de régression fonctionnelle.
Ces types d'outils mentionnés sont un sous-ensemble des nombreux outils différents qui peuvent être nécessaires pour valider complètement une application. Il est essentiel que ces outils fonctionnent ensemble de manière transparente afin de faciliter le pipeline CI/CD.
CI est une pratique bien comprise et bien adoptée et une première étape nécessaire pour améliorer de manière significative la vitesse de livraison des applications. Il permet aux développeurs de pousser leurs modifications directement dans une branche principale du code source. Un seul développeur peut potentiellement apporter de nombreuses modifications à la branche principale au cours d'une même journée. Pour s'assurer que la branche principale est vierge, compilable et de qualité production, il est essentiel d'avoir des cas de test appropriés pour chaque modification, car elle sert de copie dorée du code source de l'application.
Voyons comment configurer Parasoft SOAtest pour exécuter des tests fonctionnels et des tests de régression dans le cadre d'un processus d'intégration continue. Nous allons passer en revue les étapes pour configurer Parasoft SOAtest avec Jenkins, une plate-forme d'automatisation populaire utilisant l'application de démonstration open source Parabank et la déployer à l'aide de Docker pour simplifier les choses.
Le diagramme ci-dessous montre le flux de travail décrit dans cet article. Suivez les étapes de gauche à droite.

Certes, ce n'est pas tout à fait dans l'esprit d'une véritable intégration continue puisque nous partons d'une image Docker pré-construite. Mais cela nous évite d'avoir à construire Parabank avec Maven et à installer et configurer Tomcat/Java.
Le diagramme ci-dessous montre un diagramme de CI plus réaliste et plus réel. Dès qu'un développeur vérifie le code source dans GitHub, nous voulons exécuter les tests de régression nécessaires et tout nouveau cas de test fonctionnel pour vérifier que l'application est toujours en bon état même après les modifications du développeur.

Un changement de code source dans GitHub déclenche automatiquement une construction dans Jenkins, et Jenkins lance une étape de construction Maven, qui exécute toute analyse de code statique et JUnit teste et construit notre application. Si tous les tests unitaires réussissent, l'application packagée, parabank.war, est déployée sur un serveur d'applications (dans ce cas, Tomcat) dans le cadre de l'étape de déploiement. SOAtest lance ensuite l'étape de test et exécute des tests de régression et des tests fonctionnels.
Ce n'est qu'après la réussite des tests unitaires et des cas de test de la boîte noire lors de l'exécution de SOAtest que les modifications initiales du développeur sont considérées comme bonnes.
Passons en revue les prérequis et les étapes pour configurer le processus dans le premier diagramme.

![]()

![]()




![]()



Si nous voulons que notre build Jenkins échoue en raison d'échecs de test SOAtest, nous ajoutons l'indicateur -fail lorsque nous invoquons soatestcli. Comme ça:
soatestcli.exe -fail -data %TEMP_WORKSPACE_PATH% -resource /Parabank -config "builtin://Demo Configuration" -localsettings %LOCALSETTINGS_PATH%
Si vous ouvrez le test dans l'interface utilisateur SOAtest Desktop, vous découvrirez que cet échec de test est principalement un problème de données de test et de configuration de l'environnement de test. Le service de traitement des prêts a refusé un prêt qu'il aurait dû approuver.
La mise en œuvre de l'intégration continue dans votre processus de développement logiciel augmente considérablement la vitesse de livraison des applications. Des solutions automatisées comme SOAtest offrent une stratégie de test de régression évolutive et efficace avec la possibilité d'exécuter des cas de test qui vérifient la fonctionnalité du logiciel, rassemblent et analysent les résultats et signalent tout problème de régression. Cette combinaison aide les équipes à atteindre une plus grande vitesse de publication, à améliorer la productivité des tests et à garantir une couverture de test élevée.
Modernisez vos applications : passez des tests manuels au CI/CD