OpenText-Startseite.
Technische Themen

Was ist Performance Engineering?

Illustration von IT-Elementen mit Schwerpunkt auf einer Glühbirne

Übersicht

Verbesserte Effizienz und höhere Zuverlässigkeit mit Performance Engineering

Performance Engineering ist proaktives, kontinuierliches und durchgängiges Testen und Überwachen der Anwendungsleistung. Es ermöglicht eine nahtlose Zusammenarbeit zwischen Teams, Tools und Prozessen durch kontinuierliche Feedbackschleifen. Hier sind nicht nur Tester für die Qualitätssicherung verantwortlich, sondern auch Entwickler, Performance-Ingenieure, Product Owner und Business-Analysten.

Durch den Einsatz von Tools in der richtigen Größe, die von den Entwicklern bis zu den Performance-Ingenieuren reichen, ermöglicht das Performance-Engineering Leistungstests von links nach rechts und die Überwachung der Anwendungsleistung von rechts nach links. Es ist schwierig zu verstehen, wie sehr sich das Performance Engineering von den traditionellen Leistungstests unterscheidet, wenn man nicht weiß, was klassische Leistungstests sind.

Performance Engineering

Was ist der Unterschied zwischen Performance Testing und Performance Engineering?

Klassische Leistungstests sind ein Teilbereich des Performance Engineering. In der Regel handelt es sich um eine einmalige Belastungsprüfung als Teil des Qualitätssicherungszyklus nach der Entwicklung. Bei Leistungstests werden die Geschwindigkeit, Zuverlässigkeit, Skalierbarkeit, Stabilität, Reaktionszeit und Ressourcennutzung einer Anwendung unter der erwarteten Arbeitslast geprüft. Bevor wir uns mit den Unterschieden zwischen Performance-Engineering und Performance-Testing befassen, werfen wir zunächst einen Blick auf das Performance-Testing an sich und darauf, warum es für sich genommen nicht mehr tragfähig ist.

  • Erstens wird das Testen isoliert betrachtet und als ein nachträglicher Gedanke behandelt, der erst am Ende des Funktionstests beginnt.
  • Zweitens führt die Arbeit in Silos zu großen Kommunikationslücken zwischen den Teilteams des Projekts und verhindert die Zusammenarbeit, die für die Lieferung eines qualitativ hochwertigen Produkts erforderlich ist.
  • Drittens hat das Unternehmen zu dem Zeitpunkt, an dem die Leistungstests beginnen, bereits viel Zeit, Mühe und Geld in das Design, die Entwicklung und die Vermarktung der Anwendung gesteckt.
  • Viertens werden Leistungstests oft als nachträglicher Gedanke behandelt und gehören nicht zu den Kriterien, die vor der Freigabe erfüllt sein müssen. Zu diesem Zeitpunkt braucht das Unternehmen die App also dringend in der Produktion und erwartet keine Verzögerungen. In diesem Zusammenhang erfolgt das Feedback der QS zu spät, um es noch vor der Freigabe vollständig zu korrigieren. Es war unvermeidlich, dass eine große Anzahl von Leistungsproblemen unnötigerweise in die Produktionsumgebung gelangte, nur damit die Veröffentlichung im Zeitplan blieb. Die Behebung eines Fehlers in der Produktion ist viel teurer und störender als die Behebung in der frühen Entwicklungsphase.
  • Fünftens: Traditionelle Leistungstests mögen für das Wasserfallmodell perfekt gewesen sein, sind aber in der heutigen DevOps-zentriertenWelt fehl am Platz. DevOps verringert die Fehlerquote bei neuen Versionen, indem es die Zeit zwischen dem Zeitpunkt, an dem eine Änderung in das System eingespielt wird, und dem Zeitpunkt, an dem die Änderung in die Produktion übernommen wird, verkürzt. Kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) sorgen dafür, dass die Software während ihres gesamten Lebenszyklus stets in einem veröffentlichungsfähigen Zustand ist. DevOps konzentriert sich auch auf die Neuausrichtung der Organisation, um eine durchgängige Zusammenarbeit zwischen Beteiligten, Funktionen und Tools zu unterstützen. Um den Anforderungen der schnellen Bereitstellung von DevOps gerecht zu werden, benötigt die Softwareentwicklung einen weiterentwickelten Ansatz für Leistungstests. Dieser neue Ansatz ist das Software Performance Engineering.

Lassen Sie uns nun die wichtigsten Unterschiede zwischen Performance Engineering und Performance Testing erläutern.

  • Erstens: Leistungstests sind eine Qualitätsprüfung der Lastverarbeitung und der Reaktionsfähigkeit der Anwendung. Dabei wird festgestellt, wie gut das System einer Produktionslast standhält, und es werden die Probleme vorweggenommen, die unter schweren Lastbedingungen auftreten könnten. Beim Performance-Engineering geht es darum, die Anwendung von Anfang an mit Blick auf Leistungskennzahlen zu konzipieren und die Entdeckung von Problemen in einem frühen Stadium der Entwicklung zu erleichtern.
  • Zweitens sind Leistungstests ein QS-Prozess, der in der Regel nach Abschluss einer Software-Entwicklungsrunde durchgeführt wird. Performance Engineering ist ein kontinuierlicher Prozess, der in alle Phasen des Softwareentwicklungszyklus eingebettet ist - vom Design über die Entwicklung bis hin zum Endbenutzer.
  • Drittens werden Leistungstests vom QA-Team durchgeführt, während an der Leistungsentwicklung RND und QA beteiligt sind.

Leistungstechnische Konzepte

Durch die folgenden Konzepte liefern DevOps und Performance Engineering konsistente Ergebnisse bei der Produktionsleistung, so dass Kunden Anwendungen effizient und mit mehr Vertrauen bereitstellen und hochleistungsfähige, stabile Software einführen können, die die Erwartungen der Benutzer erfüllt.

End-to-End-Optimierung

Das Performance-Engineering bietet eine End-to-End-Systemoptimierung durch einen kontinuierlichen Test- und Überwachungsprozess. Dadurch werden Leistungs- und Lasttests in den Entwicklungsprozess verlagert. Dies steht im Gegensatz zu den traditionellen Leistungstests, bei denen die Tests nach der Stabilisierung der Funktionstests und der Freigabe des Codes durchgeführt werden.

Nach der Freigabe des Codes verfolgt das Performance Engineering die Anwendung in der Produktion, indem es die Tools zur Überwachung der Anwendungsleistung (APM) nutzt.

Funktionsübergreifendes Team von Leistungsbeteiligten

Performance Engineering ermöglicht die Zusammenarbeit zwischen den Projektbeteiligten - von Business-Analysten bis hin zu Entwicklern. Die Aufrechterhaltung eines hohen Leistungsniveaus, das das Kundenerlebnis verbessert, mit dem Geschäftstempo Schritt hält und die End-to-End-Leistung verwaltet, macht jeden, nicht nur QA/Performance Engineers, zu einem Verwalter der Produktleistung. So geht's.

Kompetenzzentrum für Tests

Das Testing Center of Excellence (CoE) dient als vertrauenswürdiger Berater für das Testen und als Hüter der besten Praktiken. Das CoE unterstützt verschiedene Geschäftsbereiche und Testmethoden (z. B. DevOps und Agile) und hat die Flexibilität, bei Bedarf Leistungstests und Testtools zu empfehlen. Um bessere Testmodelle zu erstellen und die Testqualität zu verbessern, fungiert das CoE als zentrale Stelle für die Konsolidierung und Wiederverwendung von Testdaten, die im Laufe der Zeit in verschiedenen Geschäftsbereichen generiert und gesammelt wurden.

Leistungsingenieur

Der Performance Engineer bietet eine ganzheitliche Sicht auf den gesamten Code in der Entwicklung, um sicherzustellen, dass die Kriterien für Leistungstests umfassend sind, das Gesamtbild umfassen und alle einzelnen Teile des Codes in der Entwicklung berücksichtigen. Der Performance-Engineer ist der Hauptanwender von Performance-Testing-Tools und verfügt über ein hohes Maß an Fachwissen bei der Erstellung von Skripten, dem Entwurf, der Durchführung und der Analyse von Testergebnissen. Beim Performance-Engineering wird der Performance-Ingenieur in die frühe Phase der Entwicklung einbezogen, wo er Leistungskennzahlen und -szenarien bereitstellen kann, die erforderlich sind, damit der Code als bereit für die Veröffentlichung angesehen werden kann. Durch die frühzeitige Einbindung kann der Performance Engineer sicherstellen, dass die Lösung die zu Beginn der Entwicklung festgelegten Leistungserwartungen erfüllt. Sie bestätigen auch, dass die Architektur und das Design während der gesamten Entwicklung einheitlich sind.

Software-Entwickler

Entwickler sind Experten in der Programmierung, aber oft wenig versiert in Funktions- und Leistungstests. Sie arbeiten in ihrer integrierten Entwicklungsumgebung (IDE) und neigen dazu, ihre bevorzugten Tools zu verwenden, ohne dass sie bereit sind, neue zu lernen. Das Performance-Engineering verlagert sich von der Leistungsprüfung in den Verantwortungsbereich des Softwareentwicklers. Mit dem Input des Performance-Ingenieurs können Softwareentwickler Leistungstests durchführen, während sie den Code schreiben. Der Entwickler gibt seinen Code nicht frei, bevor er die Leistungstests bestanden hat.

DevTester

Den Devtester gibt es im klassischen Performance-Testing nicht, da es klare Unterschiede zwischen Softwareentwicklern und Performance-Ingenieuren gibt. Beim Performance-Engineering wird der Devtester zu einem Akteur, der Performance-Engineering und Entwicklerteams miteinander verbindet. Sie überbrücken die Lücke, indem sie über solide Programmier- und Testfähigkeiten verfügen, wenn auch nicht ganz auf dem gleichen Niveau wie der Entwickler und der Performance Engineer. Sie können Tests schnell durchführen und sind viel flexibler als Entwickler, wenn es darum geht, verschiedene Tools je nach Bedarf einzusetzen.

Business-Analysten und Anwendungsingenieure

Durch die Verlagerung der Tests bringt das Performance Engineering Geschäftsanalytiker und Anwendungsingenieure an Bord. Dadurch wird gewährleistet, dass die Leistungsanforderungen von Unternehmen und Anwendungen, die die Qualität der Benutzererfahrung bestimmen, in die Leistungskriterien einfließen. Diese beiden Rollen überwachen die Anwendung in der Produktion, um jederzeit eine erstklassige Anwendungsleistung zu gewährleisten.


Holen Sie sich den richtigen Partner für Performance Engineering

Performance Engineering verändert die Softwareentwicklungslandschaft und die Berufsbilder aller, die sich damit beschäftigen. Und da nun eine größere Anzahl von Rollen involviert ist, ist der Bedarf an Werkzeugen und Technologien zur Rationalisierung des Prozesses größer als je zuvor. Performance Engineering erfordert eine durchgängige Integration und Zusammenarbeit von rechts nach links und von links nach rechts sowie Einblicke und Analysen in Echtzeit. Herkömmliche Anbieter von Leistungstests sind nicht ausreichend gerüstet, um diese Welle chaotischer Veränderungen zu bewältigen. OpenText verfügt jedoch über die bewährten Erfahrungen und Technologielösungen, um das Test-Chaos in technische Ordnung zu verwandeln.

Die offene Architektur der Performance-Engineering-Lösungen von OpenText unterstützt das Testen für jedes Protokoll und jeden Anwendungstyp in jeder Entwicklungsumgebung. Es ermöglicht den Beteiligten, von Entwicklern bis hin zu Geschäftsanalysten, die Verwendung zahlreicher Anbieter- und Open-Source-Tools, um eine vollständige CI/CD-Integration in großem Umfang zu ermöglichen. OpenText-Tool-Integrationen bieten die Möglichkeit, Wartezeiten bei der Entwicklung und beim Testen, die die Anwendungsbereitstellung verlangsamen, schnell zu beseitigen. Die Integrationen ermöglichen die schnelle Erstellung realistischer Simulationen von APIs, Netzbedingungen und virtuellen Diensten. Die Performance-Engineering-Lösungen von OpenText bauen auf einer bestehenden On-Premises- oder Cloud-Infrastruktur auf und fördern die Wiederverwendung von Ressourcen, um von bestehenden Investitionen zu profitieren. Dies ermöglicht eine schnelle Skalierung, um die Anforderungen von Leistungstests für mehrere Anwendungen im gesamten Unternehmen zu erfüllen.

Herkömmliche Leistungstests begannen erst nach Abschluss der funktionalen Tests und begannen erst am Ende der Leistungstests mit der Identifizierung von Fehlern und deren Ursachen. Die Performance-Engineering-Lösungen von OpenText bieten kontinuierliche End-to-End-Messungen und Analysen von Fehlern, um die Ursachen in Echtzeit zu ermitteln, noch bevor der Performance-Test beendet ist. Die Leistungskriterien sind in der Definition und den Anforderungen von "erledigt" enthalten. OpenText Echtzeit-Analysen helfen dem Performance-Ingenieur, dem Entwickler schnelles Feedback zu geben, um die Fehlerbehebung frühzeitig im Entwicklungsprozess einzuleiten. Die synthetische Überwachung und die Überwachung von realen Benutzern in der Produktion geben Aufschluss über Leistungsprobleme, die beim Testen nicht erkannt wurden und in der nächsten Version behoben werden müssen. Die Erfassung und Analyse der Stimmung der Endbenutzer unter Leistungsgesichtspunkten gibt den Entwicklern ein spezifischeres Feedback, damit sie die Anwendung für eine bessere Leistung optimieren können.

Wie können wir behilflich sein?

Fußnoten