Holen Sie sich die neuesten wichtigen Update-Informationen für die Log4j-Sicherheitslücke. Sehen Sie sich an, wie Sie das Problem mithilfe der Parasoft-Anleitung beheben können. Erfahren Sie mehr >>

X
BLOG

Beschleunigen Sie Salesforce-Tests mit AI & Automation

Beschleunigen Sie Salesforce-Tests mit AI & Automation Lesezeit: 7 Minuten

In einem previous postIch habe einige Tipps und Tricks zum Testen von Salesforce-Anwendungen mit Selenium angeboten. Salesforce bietet eine flexible Entwicklungsumgebung, mit der Entwickler ihre Geschäftslogik und Benutzeroberflächenelemente abstrakt definieren können, damit Salesforce diese Elemente auf der Seite implementieren kann.

Diese Flexibilität geht zu Lasten von UI-Testautomatisierung weil Entwickler keine direkte Kontrolle über den endgültigen Inhalt im Browser haben. Salesforce-Unternehmensanwendungen sind mit Open-Source-Automatisierungsframeworks wie Selenium bekanntermaßen schwer zu testen.

Warum das Testen von Salesforce mit Selen schwierig ist

Um die Probleme zusammenzufassen, die ich in meinem vorherigen Beitrag besprochen habe, sind hier einige der Gründe aufgeführt, warum das Testen von Salesforce-Anwendungen mit Selenium schwierig zu automatisieren ist.

Dynamische Elementkennungen

Elementkennungen in einer Salesforce-App sehen sehr seltsam aus, z. B. id = "940: 1376; a". Schlimmer noch, die Bezeichner ändern sich zwischen den Seitenbesuchen zufällig. Dies macht die Bezeichner für die Testautomatisierung unbrauchbar.

Langsame Cloud-gehostete Unternehmensanwendungen

Trotz des Namens "Lightning" können die in der Cloud gehosteten Unternehmensanwendungen von Salesforce manchmal recht langsam sein. Testautomatisierungsingenieure sind mit den Herausforderungen vertraut, die mit Anwendungen verbunden sind, die möglicherweise nur langsam reagieren. Ein Testskript schlägt fehl, wenn es versucht, den nächsten Schritt auszuführen, bevor die Anwendung bereit ist.

Speichern und Neuinitialisieren von Lightning-UI-Komponenten

Ein weiterer Dorn im Auge der UI-Testautomatisierung ist, dass Salesforce sich merkt, welche Lightning-UI-Komponenten zuletzt geöffnet waren, und den letzten bekannten Status bei der Anmeldung neu initialisiert. Dies bedeutet, dass sich das anfängliche Seitenlayout, das dem Test zur Verfügung steht, je nach gespeichertem Verlauf ändern kann.

Häufige Salesforce-Softwareupdates

Die Salesforce Lightning-Benutzeroberfläche wird jedes Jahr mehrfach aktualisiert. Jedes Update kann zu Unterbrechungen bei der Automatisierung von UI-Tests führen. In solchen Fällen ist eine AI-gestützte Selbstheilung erforderlich, damit die Testautomatisierung über einen so häufigen Aktualisierungsplan hinweg funktioniert.

Ich bot an Tipps und Tricks mit diesen Herausforderungen umzugehen. Obwohl sie hilfreich sind, um Selenium für die Arbeit mit Salesforce-Anwendungen zu nutzen, ist es immer noch viel Arbeit. Zum Glück gibt es Tools, die helfen können.

Verbessern Sie automatisierte Selenium-UI-Tests mit AI-Technologie

Parasoft Selenic Automatisiert die Erstellung von Selenium-Tests effizient und vereinfacht die Testwartung. Mit Selenic können Sie Interaktionen mit Salesforce-Unternehmensanwendungen in Ihrem Browser aufzeichnen. Erstellen Sie dann einfach Selenium-Testklassen, die alle diese Techniken nutzen.

Der integrierte Recorder von Parasoft Selenic bietet eine Anwendungsauswahl, mit der Sie Salesforce-spezifische Attribute erfassen können, während Sie UI-Aktionen aufzeichnen. Selenic berücksichtigt diese Attribute dann beim Erstellen von Selenium-UI-Tests und verwendet KI-Technologie, um Selbstheilung auf Tests anzuwenden die aufgrund von Änderungen in Locators oder Wartebedingungen defekt sind.

Aber warte. Es gibt mehr!

Sie können auch nutzen API-Tests und Service-Virtualisierung um Ihre Salesforce-Tests besser, schneller und kostengünstiger zu machen. Schauen wir uns an, wie Parasoft Ihnen helfen kann, alle drei zu erreichen.

Get Smart: Verwenden Sie Simulation, um API-Tests zu beschleunigen

Testen Sie Ihre Salesforce-Anwendung besser

Die Schwierigkeit bei der Verwendung der Automatisierung mit Salesforce-Anwendungen führt im Allgemeinen wahrscheinlich zu schlechten Tests. Die Testabdeckung ist wahrscheinlich gering und die Erhöhung erfordert erheblich mehr Arbeit. Um diese Anwendungen besser testen zu können, muss die Testautomatisierungslösung die Erstellung und Wartung von Tests vereinfachen.

Selenic zeichnet die UI-Interaktionen während der Anwendungsausführung auf und erstellt als Ergebnis einen wiederverwendbaren Selenium-Test. Mithilfe eines Aufnahme-Plugins für Chrome fängt Selenic alle Interaktionen der Benutzeroberfläche während der Anwendungsausführung ab und identifiziert Elemente mithilfe von Selenium-SeitenobjektmodellDies verbessert die Möglichkeit, Locators trotz der Verwendung atypischer Bezeichner in Salesforce-Anwendungen eindeutig zu identifizieren.

Im Folgenden wird der Workflow für die Testerstellung mit Selenic veranschaulicht. Anwendungsinteraktionen werden im Browser zusammen mit den zugehörigen API-Aufrufen (dazu später mehr) aufgezeichnet und in Ihrer IDE in Selenium-Java-Projekte umgewandelt.

Vier Screenshots im Uhrzeigersinn, beginnend mit der Salesforce-Anwendung, wobei ein Pfeil auf Selenic Recording und ein Pfeil auf Selenic IDE Plugin zeigt und ein letzter Pfeil auf Selenium-Testergebnisse zeigt

Tests werden schnell und einfach aus vorhandenen Testszenarien erstellt und in Ihrer IDE in Selenium-Tests konvertiert.

Was passiert, wenn sich die Dinge ändern?

Selentests sind etwas zerbrechlich und funktionieren schnell nicht mehr, nachdem Änderungen an der Anwendung vorgenommen wurden. Selen hilft, indem es Selbstheilung für diese gebrochenen Tests bereitstellt.

Selenic zeichnet weiterhin Interaktionen während nachfolgender Testläufe auf, um Änderungen seit der vorherigen Testversion zu erkennen, und aktualisiert die Tests basierend auf erkannten Unterschieden wie fehlgeschlagenen Locators und Wartebedingungen.

Selenic verfolgt auch die Leistungsmetriken während der Aufzeichnung, was beim Benchmarking und Debuggen von Leistungsproblemen hilfreich sein kann. Der allgemeine Arbeitsablauf für die selenische Selbstheilung ist unten dargestellt.

Screenshot des Selenic Configurator Aktivieren Sie die Selbstheilung, wobei der Pfeil nach rechts auf die modifizierte Salesforce-Anwendung und der Abwärtspfeil auf den Selenic Self Healing-Bericht zeigt

Die KI-Heuristiken von Selenic diagnostizieren Testfehler und passen fehlende Elemente automatisch an, um die Tests zu „heilen“. Dies funktioniert direkt von der IDE aus, wie hier gezeigt, und funktioniert genauso gut in einer CI / CD-Pipeline. Die Empfehlungen aus den beobachteten Tests können in die IDE importiert und mit einem einzigen Klick aktualisiert werden.

Die automatisierte Generierung in Kombination mit der Selbstheilung stellt sicher, dass Selentests für Salesforce-Anwendungen weniger spröde und einfacher zu warten sind. Dies sollte den Teams helfen, ihre automatisierten Tests erheblich zu verbessern, da sie ganze Testsuiten zuverlässig aufzeichnen und wiederverwenden können, ohne die traditionellen Probleme zu haben, die Selen-Tests plagen. Es ist weniger wahrscheinlich, dass diese Tests aufgrund von Änderungen in der Benutzeroberfläche unterbrochen werden, und sie können während des gesamten Entwicklungslebenszyklus problemlos gewartet werden.

Das Beschleunigen von UI-Tests ist sehr nützlich und der ROI für die Investition in Selentests auf UI-Ebene lohnt sich. Trotz dieser Verbesserungen ist das Testen auf der Benutzeroberfläche immer noch ein Engpass und es ist effizienter, Geschäftslogik auf API-Ebene zu testen.

Testen Sie Ihre Salesforce-Anwendungen schneller

Glücklicherweise ist es beim Aufzeichnen von UI-Testszenarien mit Selenic auch möglich, API-Interaktionen aufzuzeichnen, die mithilfe von Selenic stattfinden Parasoft SOAtest. Diese Aufzeichnungen werden ebenso wie die Interaktionen mit der Benutzeroberfläche wiederverwendet, parametrisiert und geändert, um API-Testszenarien zu erstellen.

SOAtest verwendet AI-Technologie, um die komplexen Datenverkehrsmuster und Locators zu analysieren und sie zu organisierten API-Tests zusammenzuführen. Diese API-Tests können dann auf die Anwendung angewendet werden, um dieselbe Logik zu testen, jedoch ohne Interaktion mit der Benutzeroberfläche. Dies reduziert den Overhead der Tests erheblich und mit einigen Optimierungen können die API-Tests auf die minimalen Interaktionen reduziert werden, die zum Testen eines bestimmten Anwendungsfalls erforderlich sind. Im Folgenden wird der typische Workflow für die Verwendung von SOAtest mit Salesforce-Anwendungs-API-Tests gezeigt.

Bildschirmaufnahme der Salesforce-Anwendung mit einer UI-Ausführungszeit von 32 Sekunden + Pfeil, der auf die SOAtest-Aufzeichnung mit einer API-Ausführungszeit von 19 Sekunden zeigt, und ein Pfeil zur Bildschirmaufnahme des optimierten Tests mit einer optimierten Ausführungszeit von 6 Sekunden.

Durch Testen der API-Ebene wird die Geschäftslogik auf dieselbe Weise wie im ursprünglichen UI-Testfall überprüft, jedoch mit erheblich kürzeren Ausführungszeiten. Bis zu 97%. Dies bedeutet, dass Testsuiten viel weniger Zeit in Anspruch nehmen und die Möglichkeit bietet, die Tests zu erweitern, um Teile der Geschäftslogik zu validieren, die auf der Ebene der Benutzeroberfläche übersehen werden.

SOAtest-API-Tests sollen nach Bedarf wiederverwendet und parametrisiert werden. Neue Szenarien werden basierend auf den Originalaufzeichnungen erstellt, wobei vom Tester erstellte Datensätze und nach Bedarf automatisch generierte Daten hinzugefügt werden. Eine ganze Reihe von API-Tests ist jetzt aus einer einfachen Aufzeichnung heraus möglich, indem die Datensätze für die Tests erweitert werden.

Screenshot des SOAtest-API-Nachrichtenschemas, das auf Screenshots von Data Source + Data Generator verweist, die auf die neue API-Test-Screenshot verweisen.

Durch die Nutzung dieser flexiblen API-Tests ist es möglich, mehr von der Anwendung zu testen, da wir die Abhängigkeit von der Benutzeroberfläche für einen Großteil unserer Tests effektiv aufgehoben haben. Diese Unabhängigkeit bedeutet, dass Tests im Entwicklungsplan schnell und viel früher skaliert werden können.

Natürlich sind API-Tests großartig, aber es gibt immer noch das Problem der Testausführungsumgebung. Kein Unternehmenssystem ist ohne Abhängigkeit von externen Diensten und Legacy-Systemen. Dies ist normalerweise der Fluch der Tester, da sie entweder das Testen von Produktionssystemen insgesamt ausschließen - was ein angemessenes Fax in einem Labor erfordert - oder Integrationstests extrem riskant machen. Hier wird die Service-Virtualisierung unerlässlich, um die Abhängigkeiten von diesen Produktionssystemen zu entkoppeln.

So wählen Sie die richtige Service-Virtualisierungslösung aus

Testen Sie Ihre Salesforce-Anwendungen günstiger

Virtualisierte Dienste, die von Tools wie Parasoft bereitgestellt werden Virtualisieren sind entscheidend für die Entkopplung der zu testenden Anwendungen von ihren komplexen Produktionsumgebungen. Das Simulieren von Abhängigkeiten bedeutet, dass die zu testende Anwendung von der Produktionsumgebung entkoppelt ist.

Dies bietet vollständige Kontrolle über Daten, Bereitstellung bei Bedarf und die Möglichkeit, Tests erheblich zu parallelisieren und zu beschleunigen, ohne dass die Kosten für kostenpflichtige APIs, ein Testlabor oder die Beeinträchtigung von Produktionssystemen anfallen.

Parasoft CTPDer Umgebungsmanager ermöglicht es, die Testumgebung für die zu testende Anwendung abzubilden und nach Bedarf simulierte Dienste einzurichten. Diese Dienste können realistische Antworten liefern und Datenmodelle unterstützen, die reale Dienste imitieren.

CTP bietet ein Datenmodell für den virtualisierten Dienst und die Möglichkeit, die mit dem Datenmodell verknüpften Datensätze zu verwalten. Die Komplexität des virtualisierten Dienstes hängt von den Anforderungen der zu testenden Anwendung ab.

Screenshot von Parasoft CTP Environment Manager mit einem Datenmodell für den virtualisierten Dienst und zwei weiteren Screenshots: Parasoft CTP-Datenmodell + Datensatzeditor.

Service-Virtualisierung macht Integrationstests einfacher und kostengünstiger. Und bedeutet auch, früher zu testen. Sie können API- und Integrationstests viel weiter nach links verschieben als je zuvor.

Siehe Parasoft Virtualize in Action

Das Beste von allem: Verbessern Sie die teamübergreifende Zusammenarbeit

Ein Hauptvorteil der Testautomatisierung ist die Möglichkeit, Daten und Ergebnisse während der Testausführung zu erfassen. Parasoft DTP aggregiert und analysiert Daten aus den verschiedenen Testpraktiken, die vom Team verwendet werden, um eine zentralisierte Sicht auf die Qualität zu erstellen. Darüber hinaus können diese Testergebnisse in Anforderungsmanagement-Tools wie Jira wieder mit Ihren User Stories korreliert werden.

Die Fähigkeit, die Punkte zwischen Ihren Anwendungsfällen, Testergebnissen, Codeabdeckung und dem Gesamtstatus zu verbinden, ist für fundierte Entscheidungen von entscheidender Bedeutung. Die Zusammenarbeit im Team wird verbessert, da jeder die gleiche Quelle der Wahrheit über den Status der Anwendung sieht und bei Bedarf auf die gleichen Informationen reagieren kann.

Screenshot des Salesforce Apps-Dashboards mit Testtrends und -abdeckung in Donut- und Kreisdiagrammen und -diagrammen.

Zusammenfassung

Die Testautomatisierung von Salesforce-Anwendungen kann problematisch sein. Die Verwendung von Selen für UI-Tests ist möglich, jedoch zeitaufwändig, da keine weitere Toolunterstützung erforderlich ist. Parasoft Selenic bietet genau die richtige Unterstützung, um das Selenium-Testen von Salesforce-Anwendungen praktisch zu gestalten und die Ergebnisse von UI-basierten Tests zu verbessern.

UI-basiertes Testen ist wichtig, aber es ist eine ineffiziente Methode, um die gesamte Geschäftslogik einer Anwendung zu testen. API-Tests beschleunigen das Testen von Anwendungen und verbessern gleichzeitig die Testabdeckung.

Weitere Tests sind in kürzerer Zeit möglich als UI-Tests. Die Auswirkungen von API-Tests werden durch die Service-Virtualisierung weiter verbessert, die Ihre Salesforce-Anwendung von ihrer komplexen und teuren Produktionsumgebung entkoppelt. Durch die leistungsstarke Kombination von Parasoft SOAtest, Virtualize und CTP ist das Testen umfassender und kann früher im Entwicklungszyklus gestartet werden.

Schließlich verbessert sich die Teamzusammenarbeit durch eine zentralisierte Sicht auf die Qualität, die aus der Testautomatisierung auf den verschiedenen Ebenen der Anwendung resultiert. Parasoft DTP liefert aussagekräftige Erkenntnisse für eine fundierte Entscheidungsfindung und erhöht die Fähigkeit des Unternehmens, sich auf Innovation zu konzentrieren.

Titeltext: Erzielen Sie kontinuierliche Tests von Low-Code-Anwendungen mit rotem Call-to-Action-Button: Whitepaper herunterladen

 

Geschrieben von

Matt Liebe

Als Product Lead Engineer bei Parasoft verwaltet Matt die Entwicklung neuer Funktionen für das Umgebungsmanagement, API-Tests, Service-Virtualisierung und Testdatenmodellierung.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.