Salesforce verbindet leistungsstarke integrierte Funktionen mit der Flexibilität, eigene Low-Code-Funktionen zu erstellen. Doch wie jeder erfahrene Entwickler bestätigen wird, ist das Erstellen von Anwendungen der einfache Teil. Die eigentliche Herausforderung besteht darin, sicherzustellen, dass sie im Laufe der Zeit nicht ausfallen, und robuste Schutzmechanismen einzurichten, damit Sie ohne Angst vor Fehlschlägen weiter entwickeln – und experimentieren – können.
Deshalb ist das Testen, insbesondere automatisiertes Testen, so wichtig. Testen ist ein zentraler Aspekt der digitalen Transformation. Unabhängig von der Größe des Unternehmens werden Teams die erforderliche Geschwindigkeit und Zuverlässigkeit bei Änderungen nicht erreichen, wenn sie dem Testen keine Priorität einräumen.
Um mehr darüber zu erfahren, wie Teams ihre Testprozesse verwalten, befragte Copado mehr als 275 Salesforce-Experten, die Einzelheiten zu den Stärken und Schwächen ihrer Teams beim Testen mitteilten. Hier sind einige wichtige Erkenntnisse:
- 41 % der Teams haben nicht genügend Zeit, um vor jedem Release jede Änderung zu testen.
- 92 % erleben aufgrund unzureichender Tests Probleme in der Produktionsumgebung.
- 84 % verlassen sich zumindest teilweise weiterhin auf manuelles Testen.
- 51 % der Unternehmen verfügen über 25+ Vollzeit-QA-Ressourcen (20 % haben 100+ Ressourcen).
- 95 % haben beim manuellen Testen höhere Gesamtbetriebskosten als bei kommerzieller Testautomatisierung.
Siehe auch: Leitfaden zur digitalen Transformation: Definition, Arten und Strategie
Häufige Herausforderungen beim Testen
Tests müssen auf vielen Ebenen stattfinden – von Unit-Tests bis hin zu systemübergreifenden UI-Tests. Salesforce-Unit-Tests sind hilfreich, doch die Unit-Test-Kultur unter Salesforce-Entwicklern ist deutlich schwächer ausgeprägt als in anderen Sprachen wie Ruby.
Salesforce schreibt eine Codeabdeckung durch Unit-Tests von 75 % vor, um Deployments in die Produktionsumgebung zu ermöglichen. Da Continuous Integration bei Salesforce bis vor Kurzem jedoch nicht üblich war, wissen die meisten Salesforce-Entwickler die Bedeutung dieser Tests nicht vollständig zu schätzen. Daher findet man häufig nachlässige Tests, die zwar die Schwelle von 75 % erfüllen, aber kaum oder gar keinen tatsächlichen Schutz bieten.
Auch UI-Tests sind auf Salesforce schwierig, insbesondere bei der neueren Benutzeroberfläche Lightning. Lightning verwendet aus Sicherheits- und Performancegründen ein Shadow DOM (Document Object Model), was Tools wie Selenium, die auf dem DOM basieren, die Arbeit erschwert.
Auch das zugrunde liegende DOM kann sich ohne Vorwarnung ändern. Dadurch können Tests fehlschlagen, selbst wenn das eigentliche System ordnungsgemäß funktioniert. Das bedeutet, dass UI-Testtools für Salesforce über eine beträchtliche integrierte Intelligenz verfügen müssen.
Salesforce wird außerdem häufig in andere Systeme wie ServiceNow, SAP, und Oracle Financials integriert. Daher müssen Testtools in der Lage sein, alle verbundenen Systeme zu testen, um die durchgängige Funktionalität sicherzustellen.
Als Low-Code-Plattform kann sich die Entwicklung auf Salesforce ziemlich schnell vollziehen. Die zugrunde liegende Salesforce-Plattform wird außerdem dreimal jährlich aktualisiert. Diese schnelleren Softwarezyklen bedeuten mehr Änderungen und Aktualisierungen, die später zu unerwünschten Überraschungen führen, wenn keine guten Tests vorhanden sind.
Das Systemverhalten kann außerdem von den zugrunde liegenden Daten im System abhängen. Daher ist das Management von Testdaten wichtig, insbesondere bei der Arbeit mit komplexen Apps, die auf Salesforce aufbauen, wie Salesforce CPQ, Veeva und nCino.
Letztlich ist Salesforce darauf ausgelegt, Low-Codern einen Schub zu geben. Daher sollten Testtools idealerweise auch für Nicht-Programmierer einfach zu bedienen sein.
Siehe auch: DevOps, Low-Code und RPA: Vor- und Nachteile
Einige Trends beim Testen auf Salesforce
Da Salesforce in Umfang und Funktionalität ausgereifter wird, müssen Unternehmen auf hochwertige, cloudübergreifende Anpassungen vorbereitet sein und Integrationen von Drittanbietern über andere Technologien und Plattformen hinweg überprüfen.
Die Teams in unserer Umfrage (41 %) gaben an, nicht genügend Zeit zu haben, um alle Änderungen vor einem Release ausreichend zu testen. Unsere Analyse zeigt, dass Teams aufgrund aggressiver Projektzeitpläne unter dem Druck stehen, Funktionen bereitzustellen, und dass die Entwicklung länger dauert als erwartet.
Das Testen wird deshalb letztlich zurückgestellt. Teams räumen dem Testen oft nicht die ihm gebührende Bedeutung ein und verlagern es ans Ende eines Sprints, anstatt testgetriebene Entwicklung oder andere Methoden zur frühzeitigen Qualitätssicherung einzusetzen.
Siehe auch: Was bringt 2022 für die intelligente Automatisierung?
Low-Code-Tests noch in den Anfängen
Low-Code-Plattformen wie Salesforce werden die digitale Landschaft weiterhin dominieren, während jedes Unternehmen seine Infrastruktur in die Cloud verlagert. Die Geschwindigkeit und Einfachheit der Entwicklung auf diesen Plattformen ist unübertroffen, doch sie erfordern robuste Tests, um sicherzustellen, dass Änderungen bestehende Systeme nicht beeinträchtigen.
Low-Code-Plattformen befinden sich beim Testen noch in einer frühen Phase. Auf Grundlage der Untersuchungen von Salesforce unter seinen Experten verlässt sich die Mehrheit der Teams nach wie vor hauptsächlich auf manuelle Arbeit. Doch der Aufstieg von DevOps und die Beschleunigung des Wandels machen automatisierte Tests zum nächsten Entwicklungsfeld für die digitalen Unternehmen von heute.
Über den Autor:
Andrew Davis, Salesforce-DevOps-Spezialist und Senior Director of Research and Innovation bei Copado.

