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

3 Strategien zur Maximierung des ROI von Microservices-Tests

3 Strategien zur Maximierung des ROI von Microservices-Tests Lesezeit: 5 Minuten

Microservices sind bestrebt, herkömmliche monolithische Anwendungen in kleine, skalierbare und individuell bereitstellbare Dienste zu zerlegen. Einige Microservice-Architekturen arbeiten in einer reaktiven Umgebung, in der Services asynchron kommunizieren können, ohne eine Antwort zu blockieren.

Diese Arten von Microservice-basierten Umgebungen sind weniger fehleranfällig, wenn Teile des Systems ausfallen oder sich schlecht verhalten. Für die volle Funktionalität ist weiterhin der korrekte Betrieb aller Abhängigkeiten erforderlich, aber ein großer Vorteil dieses Ansatzes ist die Entkopplung, die er bietet.

Microservices sind in sich abgeschlossen, das heißt, sie können individuell bereitgestellt, skaliert und nach Bedarf geändert werden. Dies ermöglicht eine schnelle Iteration. Um jedoch schnellere Iterationen und einen zuverlässigen Service zu erzielen, wird nun APIs mehr Aufmerksamkeit geschenkt – sowohl öffentlich zugänglichen als auch intern zwischen Abhängigkeiten verwendeten.

Wenn es um das Testen von Microservices geht, tauchen eine ganze Reihe neuer Herausforderungen auf.

Infografik mit 3D-Box auf der linken Seite, Monolith, mit Stiften mit der Bezeichnung Feature # 1-13, wobei der Pfeil mit der Bezeichnung dupliziertes Feature auf 3D-Spalten auf der rechten Seite zeigt, die in sich geschlossene Systeme darstellen.

Neue Herausforderungen beim Testen von Mikrodiensten

Die Umstellung auf Microservices stellt Softwareteams vor neue Herausforderungen, die den ROI beim Übergang verringern.

Viele weitere zu automatisierende Interaktionen auf der API-Ebene

Die Interdependenzen zwischen Microservices erfordern viel mehr Übergaben und Interaktionen, die hinter den Kulissen auf der API-Ebene stattfinden. Angemessene Tests erfordern, dass wir diese Wechselwirkungen nicht nur verstehen, sondern auch isolieren und testen können.

Hindernisse für die parallele Entwicklung

Microservices sind in Bezug auf Modifikation und Neuverteilung agil, aber die Komplexität des Testens verlangsamt die parallele Entwicklung. Diese Komplexität ist auf zahlreiche Interaktionen zwischen Diensten zurückzuführen. Dies verkompliziert die Testumgebung und trübt das Verständnis der Vorgänge.

Auswirkungen auf die traditionellen Testmethoden

Microservices stehen im Widerspruch zu herkömmlichen Tests, die normalerweise auf synchronen Anforderungs- / Antwortinteraktionen beruhen. Microservices werden manchmal in reaktiven, ereignisgesteuerten Architekturen mit neuen Protokollen und Nachrichtenformaten und asynchroner Kommunikation bereitgestellt.

Weitere potenzielle Fehlerquellen

Erhöhte Interaktionen und Abhängigkeiten erhöhen die potenziellen Fehlerquellen. Und aufgrund des reaktiven Charakters von Diensten können neue Ereignisflüsse außer Betrieb geraten und ausfallen.

Entwicklungsstörungen

Die Umstellung auf eine Microservice-Architektur hat Vorteile, ist jedoch auch mit Kosten verbunden, die das Entwicklungsteam häufig von der Implementierung umsatzgenerierender Funktionen ablenken. Ohne die Beseitigung der Hindernisse für Tests und parallele Entwicklung ist es schwierig, den tatsächlichen ROI zu erzielen.

Drei Strategien, um Microservices-Tests voll auszunutzen

Um den ROI von zu maximieren Microservices-TestsBefolgen Sie diese Taktik:

  • Erhöhen Sie die Qualität der Abdeckung funktionaler API-Tests mit AI, um sicherzustellen, dass die bereitgestellten Services den Anforderungen entsprechen.
  • Automatisieren Sie komplexe, ereignisgesteuerte Workflows, um das Testen zu beschleunigen.
  • Verbessern Sie die Testumgebung, um die Zuverlässigkeit und Stabilität der Tests zu verbessern.

Erhöhen Sie die funktionale API-Testabdeckung mit AI

Das Fehlen von Code und Testabdeckung ist ein Problem in Bezug auf Qualität, Sicherheit und Kundenerfahrung. Wenn Dienste nur teilweise getestet bereitgestellt werden, sind es Kunden, die die Fehler entdecken! Eine erhöhte Abdeckung bedeutet mehr Tests. Um dies zu verwirklichen, ist eine Testautomatisierung erforderlich, um die Funktionstests zu beschleunigen und eine schnelle Testerstellung zu nutzen, die die vorhandenen nutzt Selenium UI-Tests.

Darüber hinaus ist es wichtig, die Validierung von API-Sequenzen zu automatisieren, die einen Datenaustausch zwischen Diensten erfordern. Die meisten dieser API-Sequenzen basieren auf „Aufzeichnungen“ des API-Verkehrs aus Ihren automatisierten UI-Tests. Diese API-Sequenzen können kloniert und transformiert werden, um die Testabdeckung zu erhöhen.

Durch die Erhöhung der Testautomatisierung wird die Zeit zur Behebung von Problemen verkürzt, indem Fehlerstellen identifiziert werden.

Wenn Sie weniger Zeit für das Debuggen von Testfehlern aufwenden, bedeutet dies mehr Zeit für die Testfunktionalität.

Automatisierte API-Tests sind eine Plattform für nicht funktionierende Tests, da reale Sequenzen für Last- und Leistungstests mit denselben Testressourcen und demselben Testframework automatisiert werden können.

Automatisieren Sie komplexe, ereignisgesteuerte Workflows

Um die Abdeckung der Funktionstests zu erhöhen, sind mehr Permutationen der Testdaten erforderlich. Die Testautomatisierung hilft, indem große Datenpermutationen aus End-to-End-Szenarien direkt über die APIs bereitgestellt werden.

Das Testdatenmanagement ist eine wichtige Funktion der Testautomatisierung. Die Sicherheit der Testdaten (sofern sie auf Produktionsdaten basieren) und die Parametrisierung der Daten müssen gewährleistet sein, um neue und komplexe Szenarien zu unterstützen.

Um das korrekte Verhalten zu überprüfen, ist ein Einblick in die Serviceinteraktionen erforderlich. Um Transparenz in die ereignisgesteuerte Architektur zu schaffen, ist Service-Virtualisierung. Virtualisierung hilft, indem sie ein Proxy inmitten verschiedener Anwendungen ist, die zusammen integriert sind. Durch das Erstellen eines virtuellen Dienstes, um beispielsweise eine Legacy-Datenbank zu simulieren, ist es möglich, Anfragen zu überwachen, die von und zu dem Legacy-System und dem getesteten Microservice eingehen.

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

Die Möglichkeit, Interaktionen in einer ereignisgesteuerten Architektur zu überwachen, ist nützlich. Mithilfe der Servicevirtualisierung können wir die Validierung dieser komplexen Workflows automatisieren, wenn Daten zwischen Systemen übertragen werden. In den virtualisierten Diensten werden Zusicherungen platziert, um korrekte Anforderungs- / Antworttransaktionen sicherzustellen, die es ermöglichen, komplexe ereignisgesteuerte Interaktionen sowohl zu überwachen als auch zu verifizieren.

Testen von Mikrodiensten für Stabilisierung, Isolierung und Verschiebung nach links

Service-Virtualisierung bringt Service-Mocking auf die nächste Stufe. Es simuliert das komplexe, zustandsbehaftete Verhalten Ihrer API-Interaktionen, um Ihre Funktionstestautomatisierung zu stabilisieren und von schwer zu verwaltenden, nachgelagerten Abhängigkeiten zu isolieren. Diese virtualisierte, stabile Testumgebung kann für jeden Entwickler und Tester repliziert werden, wodurch die Komplexität realer Umgebungen beseitigt wird und das erforderliche Verhalten für das Testen beibehalten wird. Dies ermöglicht außerdem eine kontinuierliche Validierung Ihres Microservice-Inventars, einschließlich Client-Systemtests als Teil Ihrer CI/CD/DevOps-Pipeline.

Geschäftsfolgen einer verbesserten Teststrategie

In vielen Organisationen ist das Testen kopflastig. Mit anderen Worten, für manuelle oder UI-Tests wird mehr Testzeit und -aufwand aufgewendet als für API- oder Unit-Tests. Diese Organisationen wissen, dass sie eine bessere Abdeckung benötigen, aber UI-Tests sind einfacher zu verstehen und zu definieren (Benutzeroberflächen sind intuitiver). Infolgedessen können weniger technische (und kostengünstigere) Ressourcen die Tests durchführen.

Software-Unternehmen versuchen häufig, die derzeit durchgeführten Tests zu automatisieren, bei denen es sich hauptsächlich um UI-Tests handelt. Obwohl dies hilfreich ist, ist die UI-Automatisierung instabil und erfordert eine ständige Wartung. Darüber hinaus sind die meisten Probleme auf der Benutzeroberfläche auf Fehler auf der API-Ebene zurückzuführen. Die mangelnde Sichtbarkeit der zugrunde liegenden Aktivitäten und Interaktionen bedeutet Zeitverschwendung bei der Ermittlung der Grundursache.

Unternehmen, die bereit sind, ihre Tests zu transformieren, erhalten besser getestete Produkte und sparen Zeit und Geld, indem sie Tests mit einem kombinierten Top-Down- und Bottom-Up-Ansatz betrachten. Eine neue Teststrategie hat einen hohen ROI, da gründlich validierte APIs die Instabilitäten in der Benutzeroberfläche reduzieren, was eine bessere Kundenerfahrung bedeutet.

Höhere Testabdeckungen sind jetzt mit reduzierter Testerstellungszeit möglich. Eine bessere Sichtbarkeit der Interaktionen auf API-Ebene bedeutet eine kürzere mittlere Zeit bis zur Korrektur. Entwickler werden schneller mehr Probleme herausfinden. Es ist eine Win-Win-Situation mit hohem ROI bei einer relativ bescheidenen Investition.

Zusammenfassung

Diese drei Strategien vereinfachen den Testerstellungsprozess radikal, indem sie die KI-gesteuerte Testerstellung nutzen. API-Testautomatisierungund Service-Virtualisierung. Das Testen wird durch eine bessere Codeabdeckung verbessert, ohne die Produktpläne zu beeinträchtigen, was zu besseren Microservices führt. Die Anwendung dieser Strategien hilft Softwareteams, den ROI zu erzielen, den sie beim Testen erreichen möchten.

Aufruf zum Handeln, um das Whitepaper mit dem Titel Testing Microservices zu erhalten

Geschrieben von

Chris Colosimo

Als Produktmanager bei Parasoft strategisiert Chris die Produktentwicklung der Funktionstestlösungen von Parasoft. Seine Expertise in der SDLC-Beschleunigung durch Automatisierung hat ihn zu wichtigen Unternehmensbereitstellungen wie Capital One und CareFirst geführt.

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