Die Salesforce Sales Cloud ist eine der führenden CRM-Plattformen weltweit. Sie bietet enorme Flexibilität, Skalierbarkeit und Konfigurierbarkeit. Das macht sie für Unternehmen äußerst attraktiv – Testautomatisierungsteams dagegen sind mit einer sehr anspruchsvollen Umgebung konfrontiert. Wer hier automatisieren will, muss nicht nur mit klassischen UI-Herausforderungen umgehen, sondern auch die Eigenheiten der Salesforce-Architektur verstehen.
Wichtiger Hinweis vorab: Dieser Beitrag bezieht sich ausschließlich auf die Salesforce Sales Cloud. Die Salesforce Marketing Cloud basiert auf einer völlig anderen technischen Architektur (z. B. ExactTarget, AMPscript, SQL-basierte Datenhaltung) und erfordert eigene Teststrategien, die mit den hier beschriebenen Ansätzen nicht vergleichbar sind.
Was macht Testautomatisierung in der Sales Cloud so anspruchsvoll?
Häufige System-Updates
Salesforce veröffentlicht dreimal jährlich umfassende Releases. Diese Updates bringen neue Funktionen, Änderungen bei bestehenden Komponenten und Anpassungen mit sich. Für die Testautomatisierung bedeutet das: Testskripte können plötzlich fehlschlagen, wenn z. B. DOM-Strukturen geändert wurden oder UI-Komponenten verschwinden. Die ständige Wartung der Tests ist daher Pflicht.
Shadow DOMs und eingeschränkter Zugriff
Viele Lightning-Komponenten nutzen Shadow DOMs zur Kapselung. Diese Technik verhindert, dass Standard-Selektoren (z. B. XPath, CSS) problemlos auf Elemente zugreifen können. Test-Frameworks müssen daher spezielle Strategien oder Bibliotheken einsetzen, um dennoch verlässlich mit solchen Elementen interagieren zu können.
Dynamische und instabile Selektoren
Salesforce generiert IDs oft dynamisch. Solche IDs ändern sich bei jedem Seitenaufruf. Das erschwert das Auffinden von UI-Elementen. Tests, die auf solche instabilen Selektoren setzen, neigen dazu, unzuverlässig zu werden. Wenn keine stabilen Merkmale wie z. B. data-testid Attribute vorhanden sind, müssen Testentwickler:innen oft auf komplexe und fragile XPath-Ausdrücke zurückgreifen. Diese orientieren sich an sichtbaren Labels oder an der Position im DOM – ein fehleranfälliger und wartungsintensiver Ansatz.
iFrames und komplexe Frame-Wechsel
Salesforce nutzt häufig Tabs und iFrames zum Laden von Komponenten. Der Zugriff auf Inhalte innerhalb dieser Frames ist besonders in Selenium-basierten Automatisierungen herausfordernd, da man manuell in den korrekten Kontext wechseln muss. Ohne klare Struktur kann das schnell zu fehleranfälligen Tests führen.
Asynchrones DOM-Laden
Die Sales Cloud arbeitet mit komplexen, dynamischen Komponenten, die Inhalte erst bei Bedarf nachladen. Wer nicht mit intelligentem Waiting (explizites Warten auf bestimmte Zustände) arbeitet, produziert sogenannte „Flaky Tests“. Diese können das eine Mal durchlaufen – und das andere Mal scheitern.
Eingeschränkter Zugriff auf Testdaten
Direkte Datenbankzugriffe sind in Salesforce nicht möglich. Für Set-ups und Validierungen müssen REST/SOAP-APIs oder UI-Aktionen verwendet werden. Das erschwert ein schnelles Testdatenmanagement und erhöht die Komplexität der Testlogik.
Hohe Konfigurierbarkeit
Jede Salesforce-Instanz kann stark individuell konfiguriert sein. Unterschiedliche Layouts, Felder oder Berechtigungen sind dabei an der Tagesordnung. Das bedeutet: Ein einmal entwickelter Test läuft nicht zwangsläufig in mehreren Umgebungen oder Mandanten stabil durch.
Salesforce-Governance-Limits
API-Aufrufe, Speichergrenzen und Ausführungszeiten pro Transaktion sind streng limitiert. Besonders bei umfangreichen Testreihen kann es passieren, dass Skripte abbrechen oder langsamer ausgeführt werden als erwartet. Hier helfen Maßnahmen wie das Gruppieren von Testfällen in Batches, das Mocking externer Systeme mit Tools wie WireMock oder die Verwendung der Bulk-API zur Verarbeitung großer Datenmengen.
CI/CD-Integration
In klassischen Software-Projekten ist die Integration in CI/CD-Pipelines meist unkompliziert möglich. Doch in Salesforce-Projekten müssen zusätzliche Anforderungen berücksichtigt werden. Dazu gehören etwa die Nutzung von Salesforce DX für die Verwaltung von Scratch Orgs, der Authentifizierungsaufbau in automatisierten Abläufen und der Umgang mit API-Limits im Rahmen der Builds. Mit geeigneten Tools wie Jenkins, GitHub Actions oder Copado sowie paralleler Testausführung lassen sich diese Herausforderungen erfolgreich bewältigen.
Best Practices für die Testautomatisierung in der Sales Cloud
Testet schichtweise: Unit, Integration und UI
Eine effektive Testautomatisierung in der Sales Cloud folgt einem schichtweisen Ansatz. Auf der untersten Ebene stehen Unit-Tests, die mit Apex-Testklassen direkt auf Methoden und Geschäftslogik zugreifen. Darüber folgen Integrationstests, die beispielsweise Trigger, Validierungsregeln oder API-Antworten prüfen. Die oberste Ebene bilden UI-Tests, die vollständige Geschäftsprozesse wie die Umwandlung eines Leads in eine Opportunity durchlaufen. Diese End-to-End-Tests sind zwar wartungsintensiver, aber für die Absicherung der Nutzererfahrung essenziell.
Fokussiert Euch auf kritische Pfade und häufig genutzte Prozesse
Beim Aufbau der Testabdeckung sollten zuerst die kritischsten Pfade automatisiert werden. Dazu zählen häufig genutzte Funktionen, zentrale Datenflüsse und vergangene Fehlerquellen. Typische Beispiele sind die Benutzeranmeldung, die Erstellung von Accounts und Kontakten, sowie Freigabe- und Genehmigungsprozesse. Wer diese Prozesse automatisiert, schafft eine stabile Grundlage für die Regressionssicherheit.
Setzt auf das Page Object Model
Gerade bei komplexen UI-Tests hilft das Page Object Model (POM), die Testlogik von der konkreten UI-Struktur zu trennen. So können Änderungen an der Oberfläche zentral gepflegt werden, ohne alle Tests anpassen zu müssen. Bei UI-Anpassungen müssen dann nur die Page Objects angepasst werden – und nicht sämtliche Testfälle.
Verwendet stabile, semantische Selektoren
Wenn möglich, sollten data-testid, data-qa-id oder benutzerdefinierte Selektoren eingesetzt werden. Bei fehlenden Selektoren helfen konsistente XPath-Strategien, idealerweise mit sprechenden Labels oder Platzhaltern als Anker.
Kombiniert API-Tests mit UI-Tests
Um Testlaufzeiten zu reduzieren und stabile Testdaten zu erzeugen, sollten möglichst viele Tests auf der API-Ebene stattfinden. UI-Tests eignen sich vorrangig für kritische Geschäftsprozesse, während Datenvorbereitung und Validierung effizienter über die Salesforce-API erfolgen.
Automatisiert Euer Testdatenmanagement
Erzeugt und löscht Eure Testdaten automatisiert – idealerweise über REST/SOAP-APIs, Tools wie Salesforce DX (SFDX) oder Bulk-Import. Damit lassen sich definierte Testdatensätze für bestimmte Szenarien gezielt generieren und aufräumen.
Definiert testbare Konfigurationen
Sorgt dafür, dass Testumgebungen so konfiguriert sind, dass Testnutzer:innen über alle nötigen Berechtigungen verfügen und keine Validierungen oder Automatisierungen (wie z. B. Workflows, Triggers oder Flows) die Tests ungewollt beeinflussen.
Erkennt und minimiert „Flaky Tests“
Verwendet explizite Waits, Wiederholungsmechanismen bei instabilen Interaktionen, Logging und Screenshots zur Fehlerdiagnose. Identifiziert häufig fehlschlagende Tests und investiert in Stabilität.
Wählt das richtige Toolset
Open-Source-Tools wie Selenium, Playwright oder Cypress erfordern gute Kenntnisse und individuelle Anpassungen an Salesforce. Alternativ eignen sich spezialisierte Tools wie Opkey, Tricentis Tosca, Testim oder Provar, denn sie bieten eine native Unterstützung der Sales Cloud.
Plant Monitoring und regelmäßige Wartung ein
Testautomatisierung ist kein „Fire-and-Forget“-Projekt. Gerade in Salesforce sollten Tests regelmäßig überprüft und bei Bedarf angepasst werden – insbesondere nach Salesforce-Updates oder nach Änderungen in der Konfiguration.
Praxisbeispiel: Automatisierte Tests eines Salesforce Market Templates mit Python und Selenium
Ein führender Automobilhersteller stand vor der Herausforderung, ein bestehendes CRM-System durch Salesforce zu ersetzen. Ziel war es, ein zentrales Template für Kernprozesse wie Anfragen, Leads, Kampagnen und Beschwerdemanagement zu entwickeln. Dieses Template diente als Standardlösung für internationale Märkte, die darauf basierend eigene Anpassungen vornehmen konnten.
Für die Qualitätssicherung kam ein bewährtes Testautomatisierungs-Framework zum Einsatz, das auf Python und Selenium basierte. Dieses Framework hatte sich bereits in früheren Projekten des Unternehmens etabliert und wurde gezielt für Salesforce erweitert – unter anderem mit einer stabilen Page-Object-Architektur, Unterstützung für Shadow DOMs und dem dynamischen Warten auf UI-Elemente. Die Tests wurden in einer Jenkins-basierten CI/CD-Pipeline ausgeführt und deckten sowohl UI-gestützte Geschäftsprozesse als auch API-basierte Validierungen ab.
Durch die frühzeitige Automatisierung der kritischen Geschäftsprozesse konnten Regressionen bei späteren Roll-outs in andere Märkte signifikant reduziert werden. Auf diese Weise ließ sich die Qualität der Releases messbar steigern. Ein weiterer Erfolgsfaktor in einem multinationalen Roll-out-Szenario wie diesem: der modulare Aufbau des Frameworks, um eine schnelle Anpassung an marktspezifische Unterschiede zu ermöglichen.
Fazit
Die Testautomatisierung in Salesforce-Projekten – insbesondere in der Sales Cloud – stellt Teams vor eine Vielzahl technischer und organisatorischer Herausforderungen. Doch mit einer durchdachten Strategie, einer stabilen Architektur und gezielten Investitionen in das richtige Tooling lassen sich stabile, wartbare und geschäftsrelevante Tests aufbauen. Entscheidend ist dabei, nicht auf maximale Abdeckung, sondern auf gezielte Absicherung kritischer Pfade und eine nachhaltige Wartbarkeit zu setzen.
Testautomatisierung in Salesforce ist kein Sprint, sondern ein langfristiger Verbesserungsprozess. Doch dieser Weg lohnt sich für alle Beteiligten.
Wie wir Euch bei der Testautomatisierung in der Salesforce Sales Cloud unterstützen
Als erfahrener Dienstleister im CRM-Bereich unterstützen wir Unternehmen auch dabei, nachhaltige und effiziente Testautomatisierungslösungen für die Salesforce Sales Cloud zu etablieren. Dabei bringen wir nicht nur ein tiefes technisches Verständnis für die Salesforce-Plattform mit, sondern auch praxiserprobte Frameworks und Best Practices aus vielen erfolgreichen Projekten.
Gemeinsam mit Euch analysieren wir kritische Geschäftsprozesse, identifizieren sinnvolle Automatisierungsziele und entwickeln maßgeschneiderte Teststrategien. Ob beim Aufbau eines robusten Frameworks, bei der Integration in bestehende CI/CD-Pipelines oder beim Know-how-Transfer in Euer eigenes Team: Wir begleiten Euch partnerschaftlich auf dem Weg zu mehr Qualität und Release-Sicherheit in Eurer Salesforce-Landschaft.


