Ist ihre Software „Robust“?

Die Robustheit der Software ist ein wesentliches Qualitätsmerkmal. Qualitativ hochwertige Programme sind in der Lage, in ungewöhnlichen Situationen wie hoher Last, bestmögliche Funktionalität zu erbringen. Ein qualitativ hochwertiges Programm  kann beim Auftreten von Fehlern die geforderte Funktionalität erbringen  – Fehlertoleranz.

Robustheitstests

Robustheitstests erhöhen die Qualität und Effizienz ihrer Software. Ausfallzeiten werden deutlich reduziert, was zu einer Steigerung der Kundenzufriedenheit und des Kundenvertrauens führt. Robustheitstests lassen sich einfach in den Deployment- oder Delivery-Prozess einbinden. So wird Robustheit fester Bestandteil der Software.

Lasttests

Lasttests simulieren eine zu erwartende, extreme Last auf ihrem System, wobei das System auch bewusst über die Lastgrenze beansprucht wird (Stresstest).

Das Verhalten des Systems wird beobachtet und analysiert. Dabei werden Fehler aufgedeckt, die in den funktional orientierten Intergrationstests nicht erkannt werden. Bei Lasttests werden also die nichtfunktionalen Merkmale getestet, die für  einen Effizienten Einsatz ihrer Software von enormer Wichtigkeit sind.

Lasttests analysieren:

  • ob ihr System auch unter hoher Last akzeptabel arbeitet
  • wie sich die Antwortzeiten in ihrem System in Abhängigkeit von der Last verändern
  • ob es zu Dateninkonsistenzen kommt
  • ob das System undefiniertes Verhalten zeigt, was zum Absturz führt
  • ob das/ihr System nach der Überlast wieder in den normalen Bereich zurückkehrt
  • wie sich das System bei hohen Speicher- und CPU Anforderungen verhält, z.Bsp. viele Anwender greifen auf ein System zu.

Performance-Analyse und -Optimierung untersucht eine der bedeutendsten nichtfunktionalen Eigenschaften ihrer Software – die Performance (Leistung) – einhergehend mit der Verarbeitungsgeschwindigkeit des Softwaresystems.

Ist die Performance ihres Systems zu schwach, führt dies zu einer Verlangsamung von Arbeitsabläufen. Eine träge Anwendung, die zu langsam reagiert, führt schnell zu Verärgerung bei den Benutzern, was wiederum das Verhältnis Unternehmen-Kunde negativ beeinflusst. Der Verlust von Kunden führt  zu hohen finanziellen Einbußen.

Die Identifikation von Performance-Problemen erfolgt in Zeittests und Lasttests.

Der Zeittest betrachtet das Performance-Verhalten der Anwendung im Einzelnutzerbetrieb, aber mit realistischem Datenvolumen im Datenspeicher. Es wird genau ein Benutzer simuliert, der die Benutzeroberfläche bedient und auf einem realistisch befüllten Datenspeicher arbeitet.

Der Lasttest betrachtet das Performance-Verhalten der Anwendung unter Alltagsbedingungen. Das heißt: es wird eine repräsentative Menge Anwendungsnutzer simuliert, die die Anwendung zeitgleich über einen längeren Zeitraum bedienen. Sind im Rahmen der Zeittests und Lasttests Probleme erkannt worden, so beginnt der Optimierungsprozess.

Der Optimierungsprozess verbessert das Antwortzeitverhalten der Anwendung. Mit speziellen Techniken wie dem Memory-Debugging wird der Speicherverbrauch genau untersucht. Speicherlecks werden lokalisiert und eliminiert. Beim Profiling werden detaillierte Informationen von Systemkomponenten ausgewertet um zum Beispiel ineffiziente Algorithmen und Zugriffspfade zu verbessern.