Soak-Test
Was ist ein Soak-Test?
Ein Soak-Test ist eine Art von Leistungstest, bei dem gemessen wird, wie eine Anwendung über einen längeren Zeitraum hinweg mit einer steigenden Anzahl von Benutzern oder zunehmend anspruchsvollen Aufgaben zurechtkommt. Soak-Tests sind sowohl eine Art von nicht-funktionalen Tests als auch eine Form von Stresstests. Der Prozess gibt Softwaretestern Aufschluss darüber, ob eine Anwendung nach Stunden oder Tagen der Nutzung zufriedenstellend funktioniert. Soak-Tests decken Softwareprobleme auf, die erst nach längerer Laufzeit sichtbar werden, wie zum Beispiel allmähliche Speicherlecks.
Während des Soak-Tests zeichnet ein Qualitätssicherungsteam (QS-Team) Kennzahlen für wichtige Leistungsindikatoren wie Durchsatz, Reaktionszeit und Speicherauslastung auf und vergleicht diese vom Beginn bis zum Ende des Tests.
Ein Qualitätssicherungsexperte führt Soak-Tests durch, bevor eine Anwendung oder ein Update in die Produktion geht und für echte Benutzer verfügbar ist. Soak-Tests finden in der Regel parallel zu Systemtests statt, bei denen Softwarekomponenten als ein System untersucht werden, um sicherzustellen, dass sie den festgelegten Anforderungen entsprechen. Auf dieser Teststufe werden häufig auch andere nicht-funktionale Tests durchgeführt, beispielsweise Lasttests.
Ein Testteam kann Soak-Tests über Nacht oder am Wochenende durchführen, um andere Mitglieder des Softwareentwicklungsteams während der normalen Arbeitszeiten nicht zu stören.
Soak-Tests im Vergleich zu Lasttests und Stresstests
Soak-Tests können mit anderen Arten von Leistungstests, darunter Last- und Stresstests, verwechselt oder vermischt werden.

Bei Lasttests wird eine Anwendung oder ein System einer Arbeitslast ausgesetzt, die es voraussichtlich bewältigen muss. Dieser Prozess zielt darauf ab, die idealen Grenzen der Arbeitslast zu ermitteln, die eine Anwendung oder Software bewältigen kann. Bei Stresstests werden Anwendungen einer Arbeitslast von mehr als 100 Prozent der erwarteten Auslastung – auch als Soll-Last bezeichnet – ausgesetzt, um die Schwelle zu ermitteln, ab der die Software oder das System nicht mehr zuverlässig funktioniert. Im Gegensatz zu Lasttests werden Stresstests in der Regel so lange durchgeführt, bis das Ziel erreicht ist.
Soak-Tests unterscheiden sich von beiden Methoden, da sie sich auf die langfristige Leistungsfähigkeit konzentrieren und nicht die Obergrenzen der Leistungsfähigkeit eines Systems ermitteln. Ein Soak-Test stellt fest, ob eine Anwendung funktioniert, wenn sie über einen längeren Zeitraum bis zu 100 Prozent ihrer vorgesehenen Belastung ausgesetzt ist. In einem Soak-Test überwachen die Tester die Auswirkungen der aufgelaufenen Belastung.
Soak-Test-Tools
Viele Tools können Soak-Tests in Verbindung mit anderen Techniken durchführen. In der Regel verwendet ein Qualitätssicherungsexperte ein Lasttest-Tool, um einen Soak-Test durchzuführen und je nach Bedarf Zeiträume mit hohem, mittlerem oder geringem Datenverkehr sowie die Dauer des Tests zu programmieren. Wenn das Tool eine maximale Dauer hat, kann der Tester die Ergebnisse extrapolieren, um die Leistung über längere Zeiträume, zum Beispiel eine Woche oder einen Monat, zu schätzen.
Beispiele für Tools und automatisierte Systeme mit Soak-Test-Funktionen sind Apache JMeter, LoadUI, WebLOAD, Appvance IQ und eine Vielzahl von Plug-ins auf GitHub und Jenkins.