Was ist nicht-funktionales Testen?
sobes.tech KI
Antwort von AI
Nicht-funktionale Tests sind eine Art der Softwareprüfung, die darauf abzielt, die nicht-funktionalen Anforderungen zu überprüfen. Sie bewerten die Eigenschaften des Systems, die nicht direkt mit bestimmten Funktionen verbunden sind, sondern eher damit, "wie" das System funktioniert.
Die Hauptziele nicht-funktionaler Tests:
- Sicherstellen, dass das System den Erwartungen der Nutzer und des Geschäfts in Bezug auf Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und andere Aspekte entspricht.
- Probleme erkennen, die die Stabilität, Skalierbarkeit und Sicherheit des Systems beeinträchtigen könnten.
- Bestätigen, dass das System den festgelegten Standards und Anforderungen entspricht.
Arten nicht-funktionaler Tests:
| Testtyp | Kurze Beschreibung | Beispiele für überprüfte Eigenschaften |
|---|---|---|
| Leistungstests | Bewertung der Geschwindigkeit, Reaktionsfähigkeit, Stabilität und Skalierbarkeit des Systems unter Last. | Antwortzeit, Bandbreite, CPU-/Speicherauslastung. |
| Lasttests | Überprüfung des Verhaltens des Systems bei erwarteter Spitzenauslastung. | Anzahl gleichzeitiger Nutzer, Transaktionen pro Sekunde. |
| Stresstests | Überprüfung des Verhaltens des Systems bei Überschreitung der erwarteten Spitzenauslastung oder Ressourcenknappheit. | Systemausfallpunkt, Verhalten bei Überlastung. |
| Stabilitätstests (Endurance Testing) | Überprüfung der Fähigkeit des Systems, längere Zeit unter Last kontinuierlich zu arbeiten. | Speicherlecks, Leistungsverschlechterung im Laufe der Zeit. |
| Sicherheitstests | Überprüfung des Schutzes des Systems vor externen und internen Bedrohungen, unbefugtem Zugriff. | Schutz vor SQL-Injektionen, XSS-Angriffe, Authentifizierung, Autorisierung. |
| Usability-Tests | Bestimmung, wie einfach und intuitiv das System für Benutzer ist. | Verständliche Schnittstelle, einfache Navigation, Zugänglichkeit. |
| Kompatibilitätstests | Überprüfung der Funktionalität des Systems in verschiedenen Umgebungen (Browser, Betriebssysteme, Geräte). | Unterstützung verschiedener Browser-Versionen, Betriebssysteme. |
| Zuverlässigkeitstests | Bewertung der Fähigkeit des Systems, seine Funktionen ohne Fehler über einen bestimmten Zeitraum auszuführen. | Mittlere Zeit bis zum Ausfall (MTBF), Ausfallwahrscheinlichkeit. |
| Barrierefreiheitstests | Überprüfung der Benutzerfreundlichkeit für Menschen mit Behinderungen. | Einhaltung der WCAG-Standards. |
| Lokalisierungs-/Internationalisierungstests | Überprüfung der Anpassung des Systems an verschiedene Sprachen und regionale Einstellungen. | Übersetzte Zeichenketten, Datums-/Zahlenformate. |
Nicht-funktionale Tests werden in der Regel in früheren Phasen des Softwareentwicklungszyklus durchgeführt als funktionale Tests, aber ihre Planung beginnt mit der Anforderungserhebung. Sie können Teil automatisierter Prozesse sein, insbesondere bei Leistungstests und Sicherheitstests.
Tools für nicht-funktionale Tests:
- Leistung: JMeter, LoadRunner, Gatling, k6.
- Sicherheit: OWASP ZAP, Burp Suite, Acunetix.
- Kompatibilität: BrowserStack, Sauce Labs.
- Benutzerfreundlichkeit: UserTesting.com, Eye-Tracking-Tools.
Ein Beispiel für die Automatisierung eines Teils der nicht-funktionalen Tests könnte ein Skript sein, das die Ladezeit einer Seite überprüft:
import time
import requests
def measure_page_load_time(url):
"""
Misst die Ladezeit der angegebenen URL.
"""
start_time = time.time()
try:
response = requests.get(url)
response.raise_for_status() # Wirft HTTPError bei schlechten Antworten (4xx oder 5xx)
end_time = time.time()
load_time = end_time - start_time
print(f"Ladezeit {url}: {load_time:.2f} Sekunden")
return load_time
except requests.exceptions.RequestException as e:
print(f"Fehler beim Laden von {url}: {e}")
return None
# Beispiel für die Verwendung
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)
Die Ergebnisse nicht-funktionaler Tests werden häufig in Form von Berichten, Diagrammen und Metriken präsentiert, die es ermöglichen, die Eigenschaften des Systems zu bewerten und Entscheidungen über notwendige Verbesserungen zu treffen.