Softwarequalität und Performance
Performance ist ein entscheidendes Qualitätsmerkmal von Software. Nach ISO 25010 gehört Performance Efficiency zu den wichtigsten Charakteristiken. Nutzer erwarten schnelle Reaktionszeiten, und Studien zeigen, dass lange Ladezeiten direkt zur Abwanderung führen.
In a Nutshell
- Performance ist ein Qualitätsmerkmal nach ISO 25010.
- Performance Efficiency umfasst Zeitverhalten, Ressourcennutzung und Kapazität.
- Performance muss früh geplant und kontinuierlich gemessen werden.
- Performance Testing und Monitoring sind essenziell.
Performance Efficiency nach ISO 25010
Performance Efficiency ist in ISO 25010 in drei Untermerkmale unterteilt. Jede beschreibt einen anderen Aspekt der Performance.
Zeitverhalten
Das Zeitverhalten beschreibt, wie schnell eine Software auf Eingaben reagiert und wie viele Anfragen sie in einer bestimmten Zeit verarbeiten kann. Wichtige Kennzahlen sind Reaktionszeit, Durchsatz und Verarbeitungszeit. Eine Webseite, die unter drei Sekunden lädt, wird von Nutzern positiver wahrgenommen als eine langsame Seite.
Ressourcennutzung
Die Ressourcennutzung betrachtet den Verbrauch von CPU, Arbeitsspeicher, Netzwerk-Bandbreite, Energie und Datenträger. Eine effiziente Software erledigt ihre Aufgaben mit möglichst wenig Ressourcen. Das ist besonders wichtig für mobile Geräte, Cloud-Kosten und die Umweltfreundlichkeit.
Kapazität
Kapazität beschreibt die maximale Last, die ein System bewältigen kann, bevor die Performance unzureichend wird. Dazu gehören gleichzeitige Nutzer, Datenmenge, Transaktionen pro Sekunde oder Speichergrenzen. Skalierbarkeit ist eng mit der Kapazität verbunden.
Best Practices für gute Performance
Effiziente Algorithmen und Datenstrukturen
Die Wahl des richtigen Algorithmus und der passenden Datenstruktur hat oft den größten Einfluss auf die Performance. Ein schlechter Algorithmus lässt sich auch mit schneller Hardware nicht ausreichend beschleunigen.
Datenbankoptimierung
Indizes, optimierte Abfragen, Verzicht auf N+1-Selects und sinnvolle Schema-Designs beschleunigen Datenbankzugriffe erheblich. Langsame Datenbanken sind einer der häufigsten Performance-Engpässe.
Caching-Strategien
Caching speichert häufig verwendete Daten oder berechnete Ergebnisse zwischen, um wiederholte Zugriffe zu beschleunigen. Browser-Caches, Server-Caches, CDNs und Datenbank-Caches sind gängige Varianten.
Asynchrone Verarbeitung
Aufgaben, die nicht sofort erledigt werden müssen, können asynchron im Hintergrund verarbeitet werden. Das verbessert die Reaktionszeit für Nutzer und entlastet die Hauptanwendung.
Pagination für große Datenmengen
Statt alle Datensätze auf einmal zu laden, werden sie in kleinere Seiten aufgeteilt. Pagination reduziert Ladezeiten, Speicherverbrauch und Netzwerklast.
Monitoring und Alerting
Kontinuierliches Monitoring in Produktion zeigt Performance-Engpässe frühzeitig. Sinnvolle Alerts helfen, Probleme zu erkennen, bevor Nutzer sie bemerken.
Praxisbeispiel
Eine E-Commerce-Produktseite ist ein ideales Beispiel für Performance-Optimierung, weil sie viele typische Engpässe gleichzeitig enthält: Datenbankabfragen, Bilder, externe APIs und statische Inhalte. Dieses Beispiel ist gewählt, weil es zeigt, wie verschiedene Best Practices zusammenwirken, um sowohl Zeitverhalten als auch Ressourcennutzung zu verbessern.
E-Commerce-Produktseite:
- Datenbankabfragen mit Index optimieren
- Produktbilder lazy loading
- Ergebnisse paginieren
- API-Antworten cachen
- CDN für statische Assets
Warum diese Maßnahmen?
- Datenbankabfragen mit Index optimieren: Reduziert die Abfragezeit und die CPU-Last der Datenbank.
- Lazy Loading für Produktbilder: Lädt Bilder erst, wenn sie im sichtbaren Bereich sind. Das verkürzt die initiale Ladezeit.
- Pagination: Begrenzt die Anzahl der gleichzeitig geladenen Produkte und schont Speicher sowie Netzwerk.
- API-Antworten cachen: Vermeidet wiederholte Berechnungen und reduziert die Last auf Backend-Dienste.
- CDN für statische Assets: Verteilt Bilder, CSS und JavaScript auf Server nahe beim Nutzer. Das verbessert die Ladezeit weltweit.
Diese Kombination zeigt, dass Performance-Optimierung nicht auf eine einzelne Maßnahme beschränkt bleiben darf, sondern mehrere Ebenen der Anwendung berücksichtigen muss.
Vorteile und Nachteile
| Vorteile | Nachteile |
|---|---|
| Bessere Nutzererfahrung | Optimierung erhöht die Komplexität |
| Höhere Conversion Rates | Frühe Performance-Anforderungen nötig |
| Geringere Infrastrukturkosten | Messung und Monitoring erfordern Aufwand |
| Bessere Skalierbarkeit | Risiko von Überoptimierung |
| Kürzere Ladezeiten | Spezialisiertes Wissen erforderlich |
| Wettbewerbsvorteil | Tests benötigen realistische Umgebungen |
Prüfungsrelevante Stichpunkte
- Performance Efficiency: ISO-25010-Charakteristik mit Zeitverhalten, Ressourcennutzung und Kapazität.
- Zeitverhalten: Reaktionszeit, Durchsatz und Verarbeitungszeit sind zentrale Kennzahlen.
- Ressourcennutzung: CPU, Speicher, Netzwerk, Energie und Datenträger sollen effizient genutzt werden.
- Kapazität: Maximale Nutzerlast, Datenmenge oder Transaktionen pro Sekunde.
- Skalierbarkeit: Fähigkeit, mit mehr Ressourcen mehr Last zu bewältigen.
- Caching: Zwischenspeichern von Daten zur Reduzierung von Zugriffszeiten.
- Pagination: Aufteilung großer Datensätze in kleinere Seiten.
- Lazy Loading: Laden von Ressourcen erst bei Bedarf.
- Datenbankoptimierung: Indizes, optimierte Abfragen und Vermeidung von N+1-Selects.
- Asynchrone Verarbeitung: Verlagerung nicht-kritischer Aufgaben in den Hintergrund.
- CDN: Content Delivery Network zur Verteilung statischer Inhalte.
- Performance Testing: Last-, Stress-, Load- und Performance-Tests zur Messung.
- Monitoring: Kontinuierliche Messung der Performance in Produktion.
- Performance Engineering: Ganzheitliche Betrachtung von Performance über Tests hinaus.
Wichtigste Quellen
- https://iso25000.com
- https://web.dev/performance-scoring/
- https://en.wikipedia.org/wiki/Software_performance_testing
Häufig gestellte Fragen
Ist Performance ein Qualitätsmerkmal nach ISO 25010?
Ja, nach ISO 25010 gehört Performance Efficiency zu den acht Hauptcharakteristiken von Softwarequalität.
Was ist Performance Efficiency?
Performance Efficiency ist die ISO-25010-Charakteristik, die beschreibt, wie gut Software Zeit, Ressourcen und Kapazität nutzt. Sie besteht aus Zeitverhalten, Ressourcennutzung und Kapazität.
Was ist Zeitverhalten?
Zeitverhalten beschreibt Reaktionszeit, Durchsatz und Verarbeitungszeit. Es sagt aus, wie schnell die Software auf Nutzer reagiert und wie viele Anfragen sie verarbeiten kann.
Was ist Ressourcennutzung?
Ressourcennutzung beschreibt den Verbrauch von CPU, Arbeitsspeicher, Netzwerk-Bandbreite, Energie und Datenträgern. Effiziente Software nutzt diese Ressourcen sparsam.
Was ist Kapazität?
Kapazität beschreibt die maximale Last, die ein System verkraften kann, beispielsweise gleichzeitige Nutzer, Datenmenge oder Transaktionen pro Sekunde.
Nenne eine wichtige Performance-Metrik.
Wichtige Metriken sind Reaktionszeit, Durchsatz, CPU-Auslastung, Speicherverbrauch und Fehlerrate.
Was ist Caching?
Caching speichert häufig verwendete Daten oder Ergebnisse zwischen, um wiederholte Zugriffe zu beschleunigen und Serverlast zu reduzieren.
Was ist Pagination?
Pagination teilt große Datensätze in kleinere Seiten auf, um Ladezeiten, Speicherverbrauch und Netzwerklast zu reduzieren.
Was ist Lazy Loading?
Lazy Loading lädt Ressourcen wie Bilder oder Module erst dann, wenn sie tatsächlich benötigt werden. Das verkürzt die initiale Ladezeit.
Was ist ein Performance-Engpass?
Ein Performance-Engpass ist eine Komponente, die die Gesamtgeschwindigkeit der Anwendung begrenzt, wie eine langsame Datenbank oder ein unoptimierter Algorithmus.
Was ist Performance Monitoring?
Performance Monitoring ist die kontinuierliche Messung der Performance in der Produktion, um Engpässe frühzeitig zu erkennen.
Was ist Skalierbarkeit?
Skalierbarkeit ist die Fähigkeit eines Systems, mit mehr Ressourcen mehr Last zu bewältigen, ohne die Qualität zu verlieren.
Was ist ein CDN?
Ein CDN ist ein Content Delivery Network, das statische Inhalte über geografisch verteilte Server schneller ausliefert.
Warum ist Performance wichtig?
Lange Ladezeiten schrecken Nutzer ab, senken Conversion Rates und erhöhen Infrastrukturkosten.
Was ist Performance Engineering?
Performance Engineering ist die ganzheitliche Betrachtung von Performance über Tests hinaus, einschließlich Design und Architektur.
Was ist asynchrone Verarbeitung?
Asynchrone Verarbeitung führt Aufgaben im Hintergrund aus, um die Reaktionszeit für Nutzer zu verbessern.
Was ist ein Datenbank-Index?
Ein Index beschleunigt Abfragen auf Datenbanktabellen, ähnlich wie ein Inhaltsverzeichnis in einem Buch.
Was ist Load Testing?
Load Testing prüft das Verhalten einer Anwendung unter erwarteter oder höherer Nutzerlast.
Was ist der Unterschied zwischen horizontaler und vertikaler Skalierung?
Vertikale Skalierung erhöht die Ressourcen eines Servers, horizontale Skalierung fügt weitere Server hinzu.
Was ist ein N+1-Select?
Ein N+1-Select führt für jedes Datenelement eine zusätzliche Datenbankabfrage aus und ist ein häufiger Performance-Engpass.
Weiter im Softwarequalität Lernpfad
Der nächste Artikel im Softwarequalität Lernpfad behandelt Softwarequalität und Testabdeckung — wie Testabdeckung die Qualität sichert.



