NashTech

Warum frühe Leistungstests zu besseren Agile-Ergebnissen beitragen

Early-performance-testing

Die meisten Unternehmen sind sich der Vorteile bewusst, die die agile Entwicklung mit sich bringt, und wissen, wie wichtig es ist, häufig und frühzeitig zu testen. Leistungstests werden jedoch selten bis kurz vor der Bereitstellung durchgeführt. In diesem Artikel erörtert Lam Pham, Senior Test Team Manager bei NashTech, wie Performance-Tests neben Scrum Agile implementiert werden können, einschließlich der Verwendung von Testautomatisierung.

Leistungstests - jetzt oder später?

Der geschäftliche Nutzen von agiler Entwicklung und DevOps – in Form von besserer Softwarequalität und schnellerer Markteinführung – ist heute allgemein bekannt. Es wird auch allgemein anerkannt, dass häufiges und frühzeitiges Testen für agile Ansätze entscheidend ist. Leistungstests werden jedoch nur selten in Sprints durchgeführt. In der Regel wird sie am Release Candidate kurz vor der Bereitstellung durchgeführt, was zu Projektrisiken führen kann.

Wir bei NashTech empfehlen die Implementierung von Leistungstests parallel zu Scrum Agile. Durch die Durchführung von Leistungstests während der Sprints und die Definition von nicht-funktionalen Akzeptanzkriterien für jede Story als Teil der Definition of Done (DoD) kann nachgewiesen werden, dass die Leistung den Anforderungen entspricht, bevor die Funktionalität als vollständig anerkannt wird.

Die 3 größten Herausforderungen bei Leistungstests in Sprints

Trotz der Vorteile, die die Durchführung von Leistungstests in Sprints mit sich bringt, gibt es eine Reihe von Herausforderungen:

  • Wie lassen sich Leistungstests in die kontinuierliche Integrationspipeline (CI) integrieren?
  • Wie testet man eine unfertige und sich häufig ändernde Codebasis auf ihre Leistungsfähigkeit?
  • Wie erhalten Sie aussagekräftige Ergebnisse in einer Umgebung, die viel kleiner ist als die Produktionsumgebung?

Bei NashTech haben wir eine dreiteilige Strategie entwickelt, um diese Herausforderungen zu meistern.

1. Leistungstests in der CI-Pipeline

Leistungstests spielen eine entscheidende Rolle bei der Festlegung akzeptabler Qualitätsniveaus für den Endbenutzer, da sie die Qualität des Systems unter einer bestimmten Arbeitslast bewerten. Durch die Verlagerung der Leistungstests nach links, d. h. so nah wie möglich an der Entwicklung, erhalten die Entwickler ein frühes Feedback zu Leistungsproblemen.

Angesichts des wachsenden Bedarfs an schnelleren Veröffentlichungszyklen tragen kontinuierliche Integration (CI) und kontinuierliche Bereitstellung (CD) zur Verbesserung der Produktqualität bei und senken gleichzeitig die Projektkosten.

Es liegt also auf der Hand, dass Leistungstests ein notwendiger Bestandteil der CI/CD-Pipeline sind. Die Ermittlung der Ziele (einschließlich der Volumenmetriken) und der Akzeptanzwerte in einer bestimmten Umgebung ist entscheidend für erfolgreiche Leistungstests. Abhängig von den Zielen ermitteln wir den Schwellenwert für jedes Modul und legen dessen DoD im Sprint fest. Die Leistungstests werden dann durchgeführt, wenn der neue Build fertig ist. Und wenn etwas schief geht, werden wir sofort benachrichtigt.

2. Leistungstests an einer unfertigen und sich ändernden Codebasis

Es gibt nicht die eine richtige Antwort für alle Situationen: Wir müssen den Ansatz der Leistungsprüfung an den jeweiligen Fall anpassen. Die folgenden Aspekte müssen berücksichtigt werden.

Messungen und Metriken. Zunächst müssen Sie die erforderlichen Leistungsmessungen und -metriken verstehen. Um sie realistisch zu gestalten, berücksichtigen wir die technischen Stacks des Systems, die Geschäftsregeln und die Art und Weise, wie die Anwendung in der Produktion eingesetzt wird. Anschließend legen wir die Ziele der Leistungsprüfung und die Bewertungsmethoden fest.

Die Durchführung zu vieler Messungen erschwert die Analyse und kann sich auch negativ auf die tatsächliche Leistung der Anwendung auswirken. Deshalb ist es wichtig zu verstehen, welche Messungen und Metriken für die Erreichung der Testziele am wichtigsten sind.

Frühzeitig testen. Leistungstests sollten so früh wie möglich mit einer Komponente des Systems durchgeführt werden. Dies ist oft billiger als ein Test mit dem gesamten System – und er kann durchgeführt werden, sobald eine einzelne Komponente entwickelt ist. Der Auslöser für die Durchführung von Leistungstests ist jeder Build im CI-Prozess. Der Test sollte jedoch mit allen Aspekten der Technologien durchgeführt werden, einschließlich der Infrastruktur und des Datenvolumens. Die Tests müssen sicherstellen, dass das System zum Zeitpunkt seiner Einführung für die vorgesehene Zielgruppe bereit ist.

Test-Szenario. Im Allgemeinen sollten wir mit einem möglichst realistischen Szenario testen. Zu diesem Zweck stützen wir das Szenario auf so viele Informationen wie möglich über den Test, den Anwendungsfall, den Zweck und die Umgebung, die wir im Voraus gesammelt haben. Diese Art von Test wird durchgeführt, sobald alle Komponenten integriert sind.

3. Sicherstellung aussagekräftiger Ergebnisse

Häufig wird angenommen, dass Leistungstests in einer einfachen, unauffälligen Umgebung durchgeführt werden können und dass dann auf der Grundlage der Analyse der Ergebnisse eine Vorhersage für die reale Umgebung getroffen werden kann. Dieser Ansatz birgt jedoch viele Risiken. Insbesondere der Umfang und die Struktur der Daten können die Ergebnisse von Lasttests erheblich beeinflussen.

Je näher die Testumgebung in Bezug auf Datenumfang, Struktur und Infrastruktur an der Produktionsumgebung liegt, desto zuverlässiger sind die Ergebnisse der Leistungstests.

Wie bereits erwähnt, sammeln wir mit Hilfe der Testwerkzeuge und Überwachungsdienste so viele Informationen wie möglich.

Die Durchführung regelmäßiger automatisierter Leistungstests ist vor allem aus zwei Gründen hilfreich:

  • Wir haben die Daten so schnell wie möglich
  • Je mehr Informationen wir haben, desto einfacher ist es, Trends zu erkennen.

Ein besseres Verständnis des Systemverhaltens in Verbindung mit einer schnelleren Identifizierung der Problempunkte ermöglicht es uns, schneller eine genaue Vorhersage darüber zu treffen, wie das System in der Produktion funktionieren wird.

Abschließende Überlegungen

Die Aufdeckung von Leistungsproblemen in jedem agilen Sprint hat erhebliche Vorteile. Wenn Sie die Leistungstests erst kurz vor der Bereitstellung durchführen, müssen Probleme sofort behoben werden, was die Veröffentlichung verzögern kann.

Die frühzeitige Sensibilisierung für Leistungsprobleme erhöht nicht nur die Wahrscheinlichkeit, dass Ihr Projekt rechtzeitig in Betrieb genommen werden kann, sondern führt auch zur Entwicklung besser gestalteter, skalierbarerer Anwendungen.

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

AWS
AWS
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.

Nach oben scrollen
BEISPIEL TITEL
Muster kurz
Musterüberschrift lorem isump
DE FREE WHITEPAPER
Erschließen Sie die Macht des Wissens mit unserem neuen Whitepaper
“Verbesserung der Benutzererfahrung für Produktbesitzer”
KOSTENLOSES WHITEPAPER
Erschließen Sie die Macht des Wissens mit unserem neuen Whitepaper
"Verbesserte Benutzererfahrung für Produktverantwortliche"