- Lösungen für Sie
Unsere Lösungen
Digitale Lösungen, die Strategie, Technologie, Automatisierung und Menschen kombinieren.
Menü - Branchen
Branchen
Wir bieten auf Ihren Sektor zugeschnittene Lösungen, die Sie dabei unterstützen, Chancen zu erkennen, Werte zu realisieren und neue Märkte zu erschließen.
- Unsere Mission
Unsere Mission
Die neuesten Updates zur Unterstützung zukunftsorientierter Organisationen bei den wichtigsten Themen im Geschäftsleben.
News
Bleiben Sie auf dem Laufenden über Unternehmensnachrichten und Ankündigungen bei NashTech
Ressourcen
Das neueste Fachwissen und die Vordenkerrolle von NashTech und unseren Kunden
Ressourcen
Fachkundige Beratung zu allen Themen, von komplexen technologischen Fragen bis hin zu aktuellen Trends
Bericht zur digitalen Führung
Erfahren Sie mehr über die neuesten Erkenntnisse aus der weltweit größten und am längsten laufenden Studie über Technologieführerschaft
- Case Studies
- Über uns
Über uns
Finden Sie heraus, was uns zu dem macht, was wir sind
Führungsteam
Das vielfältige Führungsteam bei NashTech
Nash Squared
Ein globales Unternehmen für professionelle Dienstleistungen mit drei Schwerpunkten
Vietnam 360°
Erleben Sie einen 360-Grad-Rundgang durch die Büros von NashTech in Vietnam
ESG
Entdecken Sie unser Engagement für Umwelt, Soziales und Governance
Vielfalt, Gleichstellung und Integration
Vielfalt, Gleichberechtigung und Integration zu einem festen Bestandteil unserer Kultur machen
Unsere Standorte
Lerne unser Netzwerk kennen und erfahre mehr über unsere weltweiten Niederlassungen sowie Kompetenz- und Innovationszentren.
- Deutsch
Auf Microservices aufgebaute Anwendungen bieten viele Vorteile, erfordern aber neue Testansätze
Die Software-Architektur hat sich in den letzten drei Jahrzehnten erheblich weiterentwickelt – und die Ansätze für Software-Tests mussten sich ändern, um Schritt zu halten. Vinh Pham, Senior Test Team Manager bei NashTech, erörtert hier Best-Practice-Ansätze für das Testen der heutigen Microservices-basierten Anwendungen.
Von monolithischen zu Microservices - die Herausforderungen beim Testen
Die Softwarearchitektur entwickelt sich ständig weiter: Von den spaghettiartigen Entwürfen der 1990er Jahre sind wir Anfang der 2000er Jahre zu lasagneartigen Schichtarchitekturen übergegangen. Heute sind diese Architekturen eher wie Ravioli – kleine Pakete (“Microservices”), die in einer Soße schwimmen.
Eine Microservices-Architektur ermöglicht es, Softwareanwendungen als eine Reihe kleinerer Dienste aufzubauen, die untereinander über definierte APIs kommunizieren. Im Vergleich zu einer herkömmlichen “monolithischen” Architektur bietet eine Microservices-Architektur die Flexibilität, eine Anwendung mit verschiedenen Programmiersprachen und Technologien zu erstellen. Außerdem erhöht es die Skalierbarkeit und eignet sich besser für eine kontinuierliche Integration und Bereitstellung (CI/CD) oder einen DevOps-Ansatz.
Wie bei jeder neuen Architektur ist jedoch ein neuer Ansatz für die Prüfung erforderlich. Bei einer Microservices-Architektur muss die Teststrategie Aspekte wie die Kommunikation der Dienste, die Sicherheit der einzelnen Dienste, die Datenkonsistenz und den Einfluss der einzelnen Dienste auf die anderen abdecken. Es sollte funktionale Tests, nicht-funktionale Tests und auf das jeweilige Projekt zugeschnittene Werkzeuge kombinieren. Und es sollte das Testen der einzelnen Komponentendienste und des Verhaltens des Systems als Ganzes unterstützen.
Eine Microservices-Architektur bringt auch eine Reihe von Herausforderungen beim Testen mit sich. Um Testfälle richtig zu schreiben, brauchen wir ein tiefes Verständnis für jeden Dienst. Wir brauchen auch eine klare Vorstellung davon, wie jeder Dienst funktionieren soll:
- Unabhängig laufen
- Arbeiten Sie mit anderen Diensten zusammen, um die Anwendung zu erstellen
Es sollte eine klare Anfrage/Antwort für jeden verwendeten API-Endpunkt geben und die Möglichkeit, Dienste von Drittanbieteranwendungen oder Partnern auszuführen.
Fünf Ebenen der Prüfung
Um zu überprüfen, ob eine Microservices-basierte Anwendung korrekt funktioniert, wenden wir einen fünfschichtigen Ansatz an, der Unit-, Integrations-, Komponenten-, Vertrags- und End-to-End-Tests umfasst.
Einheitliche Prüfung
Ermöglicht es uns zu verstehen, ob die kleinsten Serviceeinheiten – die kleinstmöglichen testbaren Teile einer Anwendung – wie erwartet laufen, entweder auf Klassenebene oder auf der Ebene einer kleinen Gruppe von verwandten Klassen, die von Programmierern definiert wurden. Unit-Tests können aufgeteilt werden in:
- Einzelne Tests – ermöglichen die Beseitigung aller Abhängigkeiten einer Komponente durch die Verwendung von Testdoubles wie Mocks oder Stubs
- Soziologische Tests – testet das externe Verhalten einer Komponente
Prüfung von Bauteilen
Umgeht die Komplexität, die oft bei Microservices-basierten Anwendungen auftritt, indem jeder Teil der Anwendung (Komponente oder Microservice) isoliert getestet wird. Wir testen jede Komponente allein, indem wir ihre Abhängigkeiten durch Testdoubles oder Mock-ups der anderen Dienste ersetzen. Komponententests machen das Testen von Microservices einfacher, schneller und zuverlässiger.
Integrationstests
Bietet die Möglichkeit, die Kommunikationspfade und Interaktionen zwischen Komponenten oder Microservices auszuführen, um sicherzustellen, dass die Abhängigkeiten korrekt funktionieren. Wir können Bottom-up-, Top-down- oder Sandwich-/Hybrid-Ansätze verwenden, um zu validieren, dass die Microservices reibungslos zusammenarbeiten und die Geschäftsanforderungen erfüllen.
Vertragsprüfung
Ermöglicht die Überprüfung, ob die expliziten und impliziten Verträge Ihrer Microservices wie angekündigt funktionieren. Es gibt zwei Perspektiven:
- Verbraucher – die Einheit, die den Microservice nutzt
- Anbieter – die Einrichtung, die die Dienstleistung erbringt
Bei der Vertragsprüfung geht es darum, sicherzustellen, dass die Dinge so funktionieren, wie sie in der Vereinbarung angekündigt wurden. Es bedeutet, dass die Attribute oder das Format der Daten, die über die API übertragen werden, sowie die Antworten überprüft werden. Sie stellt sicher, dass der API-Endpunktcode wie erwartet ausgeführt wird. Darüber hinaus können wir die verbrauchervertragsgesteuerten Tests nutzen, um Fehler in Verbraucher-Workflows zu entdecken.
End-to-End-Tests
Ziel ist es, den gesamten Prozess und alle Benutzerströme der App zu testen, um zu prüfen, ob die Geschäftsprozesse korrekt und reibungslos funktionieren und den Anforderungen entsprechen. Sie umfasst alle Dienste und Datenbankintegrationen.
Jeder bewegliche Teil der auf Microservices basierenden Anwendung wird durch End-to-End-Tests abgedeckt. Sie deckt auch die Lücken zwischen den Diensten ab und sorgt dafür, dass die Abhängigkeiten zwischen den Microservices getestet werden.
Sicherheits- und Leistungstests
Zusätzlich zu den fünf wichtigsten Testschichten führen wir Sicherheitstests durch, um sicherzustellen, dass die Anfrage/Antwort von APIs bei Datenübertragungen sicher ist, insbesondere wenn Dienste von Drittanbietern von der Microservices-App verwendet werden.
Leistungstests (oder “Lasttests”) sind in einer Microservices-Architektur notwendig, da die Anwendung aus mehreren Diensten besteht, die zwar isoliert sind, aber voneinander abhängen. Die App wird oft Dienste von Drittanbietern aus externen Umgebungen (PaaS) beinhalten. Wenn diese nicht gut funktionieren, kann das große Auswirkungen auf die Gesamtleistung der App haben.
Testautomatisierung
Bei Microservices-basierten Architekturen kommt der Automatisierung beim Testen eine wichtige Rolle zu. Die Automatisierung trägt dazu bei, dass Regressionstests bei inkrementellen Releases und nach Aktualisierungen von Service-API-Versionen schnell und einfach auf jeder Testebene durchgeführt werden können, um sicherzustellen, dass die gesamte Anwendung korrekt funktioniert.
Die Rentabilität von Investitionen in die Testautomatisierung hängt von den Besonderheiten der Anwendungsarchitektur und der Häufigkeit der Änderungen ab. Die Verwendung von Tools wie Postman oder SoapUI für das Testen der Integrationsschicht kann von Vorteil sein.
Wollen Sie mehr wissen?
Wenn Sie mehr über NashTech Software Testing Services erfahren möchten, senden Sie eine E-Mail an info@nashtechglobal.com. Ein Mitglied des Teams wird sich mit Ihnen in Verbindung setzen.
Empfohlene Artikel
Vom Überwinden von Widrigkeiten zum Reiten der Welle der digitalen Transformation im Bildungssektor
Erfahren Sie, wie NashTech dem Trinity College London hilft, die Welle der digitalen Transformation im Bildungssektor zu reiten
Migration und Modernisierung der virtuellen Lernumgebung auf AWS für ein verbessertes Erlebnis
Das migrierte und modernisierte Moodle Infrastruktur bedeutet, dass The Open Die Universität kann nun folgende Vorteile nutzen Cloud-Vorteile.
Ein Einblick in eine einjährige RPA-Reise mit einem führenden digitalen Werbedienst
Ein Einblick in eine einjährige RPA-Reise mit einem führenden Anbieter von digitalen Werbedienstleistungen und -lösungen und wie NashTech ihnen geholfen hat.
Wir helfen Ihnen dabei, Ihre technologische Entwicklung zu verstehen, sich in der komplexen Welt der Daten zurechtzufinden, Geschäftsprozesse zu digitalisieren oder eine nahtlose Benutzererfahrung zu bieten.
- Themen: