Die Integration von Fertigungssystemen, Erweiterungen, Beratung und kundenspezifische Softwarelösungen für vertikale Branchen der diskreten Fertigung sind die Kernkompetenz der Systema GmbH. Systema hat über 200 Mitarbeiter an 8 Standorten weltweit. Der gute Ruf unserer Marke beruht auf mehr als einem Vierteljahrhundert Geschäftstätigkeit mit einer Ethik, die von gegenseitigem Respekt und Vertrauen geprägt ist - bei unserem Team, unseren Kunden, Partnern und Wettbewerbern.
Für unseren Kunden, ein namhaftes Unternehmen der feinmechanisch-optischen Industrie, entwickeln wir Erweiterungen für das SAP Manufacturing System.
Diese Plugins ergänzen den Funktionsumfang und bieten den Nutzern individuell angepasste Oberflächen je nach deren spezifischen Anforderungen.
Um die Qualität und die Stabilität unserer Entwicklung sicher zu stellen, suchten wir eine Möglichkeit, diese Plugins direkt im SAP Manufacturing System zu testen.
Da wir bereits in anderen Projekten erfolgreich mit QF-Test gearbeitet hatten, war es unsere erste Wahl als Testtool.
Unser Ziel war es die Handlungen des Nutzers in den Tests nachzustellen, um eine möglichst nahe Reproduktion der Abläufe in der Produktion zu erarbeiten.
Die Durchführung der Tests muss automatisiert erfolgen, um manuelle Aufwände zu reduzieren.
Eine Anforderung an die Tests ist, dass diese die Realität möglichst nahe abbilden.
GUI-Testtools wie QF-Test, welche tatsächlich mit der Benutzeroberfläche interagieren, stellen hier die beste Lösung dar.
Zur Vorbereitung wurden anhand der spezifizierten Anforderungen Test Cases erstellt, welche dann in Szenarien zusammengefasst wurden. Das Ergebnis war ein detaillierter Testplan, welcher vom Automatisierungsteam mit QF-Test umgesetzt wurde.
Die Erstellung der Tests mit QF-Test erfolgte zum Großteil anhand der Aufzeichnungsfunktion.
Probleme ergaben sich durch die Verwendung von generierten Komponenten-IDs, welche die eineindeutige Identifizierung verhinderten und somit die Reproduzierbarkeit der Tests verhinderten.
Zur Lösung dieses Problems wurden generische Komponenten erstellt, welche anhand von regulären Ausdrücken und einem entsprechend konfigurierten CustomWebResolver die reproduzierbare Auflösung der Zielkomponenten ermöglichten. Hierbei ist auch der hervorragende Support von QFS zu erwähnen, der diese Lösung mit erarbeitet hat.
Im Verlauf der Testentwicklung zeigte sich eine weitere Herausforderung. Das SAP Manufacturing System besteht aus mehreren Komponenten, welche im Zusammenspiel komplexe Daten bereitstellen. Unser Zielsystem ist das ME als Frontend mit dem MII als eine Erweiterung des Backend. Daneben gibt es noch das ERP-System.
Um die Komplexität zu reduzieren und reproduzierbare Ergebnisse zu erhalten, entschieden wir uns das ERP zu simulieren (Mockup).
Unter Verwendung des MockServer Frameworks entwickelten wir diesen Mock, welcher vorhersehbaren Daten bereitstellt.
MockServer ist ein eigenes Softwareprojekt und beinhaltet verschiedene Templates, welche für die unterschiedlichen Funktionalitäten vorkonfiguriert sind. Um neue Anforderungen umzusetzen, muss lediglich ein dazu passendes Template erstellt werden.
Nach Abschluss der Testentwicklung und der erfolgreichen manuellen Erprobung wurde als nächster Schritt die Automatisierung angegangen. Dazu wurden eine Microsoft Azure Pipeline verwendet.
Die Pipeline ermöglicht es uns automatisiert die Testdaten vorzubereiten, der Testsuite Nutzerdaten und Variablen zu übergeben die Ergebnisse auszuwerten und im Anschluss alle Systeme aufzuräumen.
Da sowohl der Mock Server als auch die QF-Test Testsuite in GIT gepflegt werden, ist bei jeder Ausführung sichergestellt das immer die neueste Version verwendet wird.
Durch die Verwendung von MockServers und QF-Test wurde eine Kombination aus Backend- (Logiken-) Tests und GUI-Tests erreicht. So konnten wir effizient eine realitätsnahe und verlässliche Testumgebung aufbauen, um für unseren Kunden entwickelte Plugins direkt im SAP Manufacturing System automatisiert zu testen. Durch Einbindung in eine Azure Pipeline wurde das Prinzip des Continuous Testings umgesetzt. Dadurch wird ein schnelles Test-Feedback erreicht und somit früh Regression wirksam verhindert als auch der manuelle Testaufwand minimiert.
Im weiteren Projektverlauf werden die Tests kontinuierlich gepflegt, verbessert und ausgebaut, um auch neu hinzukommende Funktionalität entsprechend abzusichern.