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

Accélérez les tests Salesforce avec l'IA et l'automatisation

Accélérez les tests Salesforce avec l'IA et l'automatisation Temps de lecture : 7 minutes

Dans un post précédent, J'ai proposé quelques trucs et astuces pour tester les applications Salesforce avec Selenium. Salesforce fournit un environnement de développement flexible qui permet aux développeurs de définir leur logique métier et leurs éléments d'interface utilisateur de manière abstraite afin que Salesforce puisse implémenter ces éléments sur la page.

Cette flexibilité se fait au détriment de Automatisation des tests d'interface utilisateur car les développeurs n'ont pas de contrôle direct sur le contenu final du navigateur. Les applications d'entreprise Salesforce sont notoirement difficiles à tester avec des frameworks d'automatisation open source tels que Selenium.

Pourquoi tester Salesforce avec Selenium est difficile

Pour résumer les problèmes dont j'ai discuté dans mon article précédent, voici quelques-unes des raisons pour lesquelles le test des applications Salesforce est difficile à automatiser avec Selenium.

Identificateurs d'élément dynamiques

Les identificateurs d'élément dans une application Salesforce semblent très étranges, par exemple, id = "940: 1376; a". Pire encore, les identifiants changent de manière aléatoire entre les visites de pages. Cela rend les identifiants inutiles pour l'automatisation des tests.

Applications d'entreprise hébergées sur le cloud lentes

Malgré le nom «Lightning», les applications d'entreprise hébergées dans le cloud de Salesforce peuvent parfois être assez lentes. Les ingénieurs en automatisation des tests connaissent les défis associés aux applications qui peuvent être lentes à répondre. Un script de test échouera s'il essaie d'exécuter l'étape suivante avant que l'application ne soit prête.

Mémorisation et réinitialisation des composants de l'interface utilisateur Lightning

Une autre épine dans le côté de l'automatisation des tests de l'interface utilisateur est que Salesforce se souvient des derniers composants de l'interface utilisateur Lightning ouverts et réinitialise le dernier état connu lors de la connexion. Cela signifie que la mise en page initiale disponible pour le test est sujette à modification en fonction de l'historique enregistré.

Mises à jour fréquentes du logiciel Salesforce

L'interface utilisateur de Salesforce Lightning dispose de plusieurs mises à jour chaque année. Chaque mise à jour peut provoquer des interruptions pour l'automatisation des tests de l'interface utilisateur. Dans de tels cas, l'auto-réparation alimentée par l'IA est nécessaire pour que l'automatisation des tests continue de fonctionner sur un calendrier de mise à jour aussi fréquent.

j'ai offert trucs et astuces pour faire face à ces défis. Bien qu'ils soient utiles pour faire fonctionner Selenium avec les applications Salesforce, cela représente encore beaucoup de travail. Heureusement, il existe des outils pour vous aider.

Améliorez les tests d'interface utilisateur automatisés Selenium avec la technologie AI

Parasoft Sélénic automatise efficacement la création de tests Selenium et simplifie la maintenance des tests. Avec Selenic, vous pouvez enregistrer les interactions avec les applications d'entreprise Salesforce dans votre navigateur. Créez ensuite facilement des classes de test Selenium qui exploitent toutes ces mêmes techniques.

L'enregistreur intégré de Parasoft Selenic fournit une sélection d'applications afin que vous puissiez choisir de rassembler des attributs spécifiques à Salesforce lors de l'enregistrement des actions de l'interface utilisateur. Selenic intègre ensuite ces attributs lors de la création de tests d'interface utilisateur Selenium et utilise la technologie de l'IA pour appliquer l'auto-guérison aux tests qui sont interrompus en raison de changements dans les localisateurs ou des conditions d'attente.

Mais attendez. Il y a plus!

Vous pouvez également tirer parti des tests d'API et de la virtualisation des services pour améliorer vos tests Salesforce, les rendre plus rapides et moins chers. Voyons comment Parasoft peut vous aider à atteindre ces trois objectifs.

Soyez intelligent : utilisez la simulation pour accélérer les tests d'API

Mieux tester votre application Salesforce

La difficulté d'utiliser l'automatisation avec les applications Salesforce est susceptible d'entraîner des tests médiocres en général. La couverture des tests est probablement faible et son augmentation nécessite beaucoup plus de travail. Pour mieux tester ces applications, la solution d'automatisation des tests doit faciliter la création et la maintenance des tests.

Selenic enregistre les interactions de l'interface utilisateur pendant l'exécution de l'application et crée un test Selenium réutilisable en conséquence. À l'aide d'un plugin d'enregistrement pour Chrome, Selenic intercepte toutes les interactions de l'interface utilisateur pendant l'exécution de l'application et identifie les éléments à l'aide du Modèle d'objet de page Selenium, qui améliore la capacité à identifier de manière unique les localisateurs malgré l'utilisation d'identifiants atypiques dans les applications Salesforce.

Ce qui suit illustre le flux de travail de la création de tests avec Selenic. Les interactions avec les applications sont enregistrées dans le navigateur avec les appels d'API associés (nous en parlerons plus tard) et transformées en projets Selenium Java dans votre IDE.

Quatre captures d'écran dans le sens des aiguilles d'une montre en commençant par l'application Salesforce avec une flèche pointant vers Selenic Recording et une flèche pointant vers Selenic IDE Plugin avec une dernière flèche pointant vers les résultats des tests Selenium

Les tests sont créés rapidement et facilement à partir de scénarios de test existants et convertis en tests Selenium dans votre IDE.

Que se passe-t-il quand les choses changent?

Les tests de sélénium sont quelque peu fragiles et cessent rapidement de fonctionner une fois les modifications apportées à l'application. Selenic aide en fournissant une auto-guérison pour ces tests cassés.

Selenic continue d'enregistrer les interactions lors des exécutions de test suivantes pour détecter les changements depuis la version de test précédente et met à jour les tests en fonction des différences détectées telles que les localisateurs ayant échoué et les conditions d'attente.

Selenic assure également le suivi des mesures de performance lors des enregistrements, ce qui peut aider à comparer et à déboguer les problèmes de performance. Le flux de travail général pour l'auto-guérison Selenic est illustré ci-dessous.

Capture d'écran de Selenic Configurator Activer l'auto-guérison avec la flèche pointant vers la droite vers l'application Salesforce modifiée et la flèche vers le bas pointant vers le rapport d'auto-guérison Selenic

Les heuristiques IA de Selenic diagnostiquent les échecs de test et ajustent automatiquement les éléments manquants pour «guérir» les tests. Cela fonctionne directement à partir de l'EDI comme indiqué ici et fonctionne aussi bien dans un pipeline CI / CD. Les recommandations issues des tests observés peuvent être importées dans l'EDI et mises à jour en un seul clic.

La génération automatisée combinée à l'auto-guérison garantit que les tests Selenium pour les applications Salesforce sont moins fragiles et plus faciles à maintenir. Cela devrait aider les équipes à améliorer considérablement leurs tests automatisés, car elles peuvent enregistrer de manière fiable des suites de tests entières et les réutiliser sans les problèmes traditionnels qui affectent les tests Selenium. Ces tests sont moins susceptibles de s'interrompre en raison des modifications apportées à l'interface utilisateur et sont facilement maintenus tout au long du cycle de vie du développement.

Accélérer les tests d'interface utilisateur est très utile et le retour sur investissement de l'investissement dans les tests Selenium au niveau de l'interface utilisateur en vaut la peine. Même avec ces améliorations, les tests au niveau de l'interface utilisateur constituent toujours un goulot d'étranglement et il est plus efficace de tester la logique métier au niveau de l'API.

Testez vos applications Salesforce plus rapidement

Heureusement, lors de l'enregistrement de scénarios de test d'interface utilisateur avec Selenic, il est également possible d'enregistrer les interactions d'API qui se déroulent à l'aide de Parasoft SOAtest. Ces enregistrements, tout comme les interactions de l'interface utilisateur, sont réutilisés, paramétrés et modifiés pour créer des scénarios de test d'API.

SOAtest utilise la technologie de l'IA pour analyser les modèles et localisateurs de trafic de données complexes et les fusionner dans des tests API organisés. Ces tests d'API peuvent ensuite être appliqués à l'application pour tester la même logique mais sans interaction avec l'interface utilisateur. Cela réduit considérablement la surcharge des tests et, avec quelques ajustements, les tests d'API peuvent être réduits au minimum d'interactions nécessaires pour tester un cas d'utilisation particulier. Ce qui suit montre le flux de travail typique pour l'utilisation de SOAtest avec les tests d'API d'application Salesforce.

Capture d'écran de l'application Salesforce en cours d'exécution avec un temps d'exécution de l'interface utilisateur de 32 s + une flèche pointant vers l'enregistrement SOAtest avec un temps d'exécution de l'API de 19 s et une flèche vers une capture d'écran du test optimisé avec un temps d'exécution optimisé de 6 secondes.

Test au niveau de l'API valide la logique métier de la même manière que le cas de test d'origine de l'interface utilisateur, mais avec des temps d'exécution nettement inférieurs. Jusqu'à 97 %. Cela signifie que les suites de tests prennent beaucoup moins de temps et cela ouvre également la possibilité d'étendre les tests pour valider des parties de la logique métier manquantes au niveau de l'interface utilisateur.

Les tests de l'API SOAtest sont destinés à être réutilisés et paramétrés selon les besoins. De nouveaux scénarios sont créés sur la base des enregistrements originaux avec l'ajout d'ensembles de données créés par le testeur et de données générées automatiquement si nécessaire. Un ensemble complet de tests API est désormais possible à partir d'un simple enregistrement en élargissant les ensembles de données pour les tests.

Capture d'écran du schéma de message de l'API SOAtest pointant vers des captures d'écran de la source de données + générateur de données pointant vers la nouvelle capture d'écran des tests d'API.

En tirant parti de ces tests d'API flexibles, il est possible de tester davantage l'application car nous avons effectivement supprimé la dépendance à l'interface utilisateur pour une grande partie de nos tests. Cette indépendance signifie que les tests peuvent évoluer rapidement et beaucoup plus tôt dans le calendrier de développement.

Bien sûr, les tests d'API sont excellents, mais il y a toujours le problème de l'environnement d'exécution des tests. Aucun système d'entreprise n'est dépendant des services externes et des systèmes hérités. Ce sont généralement le fléau des testeurs, car ils excluent complètement les tests du système de production - nécessitant un fax raisonnable dans un laboratoire - ou rendent les tests d'intégration extrêmement risqués. C'est là que la virtualisation des services devient essentielle pour découpler les dépendances sur ces systèmes de production.

Comment choisir la bonne solution de virtualisation de service

Testez vos applications Salesforce à moindre coût

Services virtualisés fournis par outils de virtualisation comme Parasoft Virtualiser sont essentiels pour découpler les applications testées de leurs environnements de production complexes. La simulation des dépendances signifie que l'application testée est découplée de l'environnement de production.

Cela offre un contrôle complet des données, un déploiement à la demande et la possibilité de paralléliser et d'accélérer considérablement les tests, sans les coûts des API payantes, d'un laboratoire de test ou d'interférence avec les systèmes de production.

Parasoft CTPLe gestionnaire d'environnement de permet de cartographier l'environnement de test de l'application testée et de mettre en place des services simulés selon les besoins. Ces services peuvent fournir des réponses réalistes et prendre en charge des modèles de données qui imitent les services du monde réel.

CTP fournit un modèle de données pour le service virtualisé et la possibilité de gérer les ensembles de données associés au modèle de données. La complexité du service virtualisé évolue en fonction des besoins de l'application testée.

Capture d'écran de Parasoft CTP Environment Manager montrant un modèle de données pour le service virtualisé et pointant vers le bas vers deux autres captures d'écran: Parasoft CTP Data model + Data Set Editor.

La virtualisation des services rend les tests d'intégration plus faciles et moins chers. Et cela signifie également tester plus tôt. Vous pouvez déplacer l'API et les tests d'intégration beaucoup plus à gauche que jamais.

Voir Parasoft Virtualize en action

Le meilleur de tous: améliorer la collaboration entre équipes

Un avantage clé de l'automatisation des tests est la possibilité de collecter des données et des résultats pendant l'exécution des tests. Parasoft DTP regroupe et analyse les données des différentes pratiques de test utilisées par l'équipe pour créer une vision centralisée de la qualité. De plus, il peut corréler ces résultats de test à vos user stories dans des outils de gestion des exigences tels que Jira.

La possibilité de «relier les points» entre vos cas d'utilisation, les résultats des tests, la couverture du code et l'état général est essentielle pour prendre des décisions éclairées. La collaboration en équipe est améliorée car tout le monde voit la même source de vérité sur l'état de l'application et peut agir sur les mêmes informations si nécessaire.

Capture d'écran du tableau de bord des applications Salesforce montrant les tendances et la couverture des tests dans des diagrammes et des graphiques en anneau et à secteurs.

Résumé

L'automatisation des tests des applications Salesforce peut être gênante. L'utilisation de Selenium pour les tests d'interface utilisateur est possible, mais cela prend du temps sans assistance supplémentaire. Parasoft Selenic fournit la bonne assistance nécessaire pour rendre les tests Selenium des applications Salesforce pratiques et pour améliorer les résultats des tests basés sur l'interface utilisateur.

Les tests basés sur l'interface utilisateur sont importants, mais c'est un moyen inefficace de tester toute la logique métier d'une application. Les tests d'API accélèrent les tests d'applications tout en améliorant la couverture des tests.

Plus de tests sont possibles dans un temps plus court que les tests d'interface utilisateur. L'impact des tests d'API est encore amélioré avec la virtualisation des services, qui dissocie votre application Salesforce de son environnement de production complexe et coûteux. La puissante combinaison de Parasoft SOAtest, Virtualize et CTP signifie que les tests sont plus complets et peuvent être démarrés plus tôt dans le cycle de développement.

Enfin, la collaboration en équipe s'améliore avec une vision centralisée de la qualité issue de l'automatisation des tests aux différents niveaux de l'application. Parasoft DTP fournit des informations utiles pour une prise de décision judicieuse et augmente la capacité de l'organisation à se concentrer sur l'innovation.

Texte du titre : Réalisez des tests continus d'applications à faible code avec un bouton d'appel à l'action rouge : Télécharger le livre blanc

 

Écrit par

Amour mat

Ingénieur en chef de produit chez Parasoft, Matt gère le développement de nouvelles fonctionnalités pour la gestion de l'environnement, les tests d'API, la virtualisation des services et la modélisation des données de test.

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