Lasttest vs. Stresstest: Unterschiede, Metriken und k6-Beispiele

  1. Startseite
  2. Blog
  3. Softwaretests

Softwaretests

Lasttest vs. Stresstest: Unterschiede, Metriken und k6-Beispiele

Eine beweist, dass Ihr System den erwarteten Datenverkehr verarbeitet. Der andere findet heraus, wo es kaputt geht und wie es sich erholt. Erfahren Sie, wann Sie die einzelnen Tests durchführen, welchen Zahlen Sie vertrauen sollten und wie Sie einen Test planen, der echte Antworten liefert.

9 Min. Lesezeit
Lasttests vs. Stresstests: Unterschiede, Metriken und K6-Beispiele

Das Wichtigste

  • Lasttests prüfen, ob ein System seine Ziele bei erwartetem Datenverkehr erreicht.
  • Stresstests überfordern die Kapazität, den Bruchpunkt zu finden und die Erholung zu untersuchen.
  • Die Werkzeuge sind in der Regel gleich. Was sich unterscheidet, ist das Ziel und das Verkehrsmuster.
  • Beurteilen Sie Ergebnisse mit Perzentilen wie p95 und p99, da Durchschnittswerte schwerwiegende Probleme verbergen können.

Ihre Anwendung funktioniert perfekt mit zehn Benutzern. Was passiert am Verkaufstag mit zehntausend? Lasttests vs. Stresstests beschreibt zwei verschiedene Möglichkeiten, dies zu beantworten, und ihre Verwechslung führt zu Tests, die nicht das beweisen, was Sie von ihnen erwarten.

In diesem Leitfaden wird erläutert, was die einzelnen Tests anzeigen, welche Testtypen sie haben und wie die Ergebnisse zu lesen sind. Wir haben die kleine Perzentilberechnung unten auf Python 3.13 mit simulierten Zahlen durchgeführt. Die k6-Skripte sind anschauliche Beispiele, die wir nicht ausgeführt haben, und die Benutzerzahlen und Ziele sind erfunden, also ersetzen Sie sie durch Ihre eigenen. Führen Sie diese Tests nur auf Systemen durch, die Sie besitzen oder zu deren Testen Sie berechtigt sind, da starker Datenverkehr wie ein Angriff aussehen und echte Ausfälle verursachen kann.

Die kurze Antwort

Bei einem Auslastungstest wird gefragt: Können wir den erwarteten Datenverkehr bewältigen und dabei unsere Ziele erreichen? Ein Stresstest fragt: Wie viel können wir aushalten, bevor wir scheitern, wie scheitern wir und wie schnell erholen wir uns?

Denken Sie an eine Brücke. Ein Belastungstest fährt die erwartete Anzahl an LKWs hinüber und bestätigt, dass alles in Ordnung ist. Bei einem Stresstest wird immer wieder Gewicht hinzugefügt, um herauszufinden, wann die Grenze erreicht ist und ob zuerst eine Warnung ausgegeben wird. Glücklicherweise ist es billiger, Software zu zerstören als eine Brücke.

Belastungstest und Stresstest nebeneinander

Aspekt Belastungstest Stresstest
Hauptfrage Erfüllen wir die Ziele bei der erwarteten Auslastung? Wo und wie brechen wir?
Verkehrsaufkommen Normaler bis erwarteter Höhepunkt Über dem erwarteten Höhepunkt
Muster Hochfahren, ruhig bleiben Steigern Sie weiter bis zum Scheitern
Misserfolg Ein fehlgeschlagener Test Das erwartete Ergebnis
Schlüsselkennzahlen Reaktionszeit, Durchsatz, Fehler Bruchpunkt, Fehlermodus, Wiederherstellungszeit
Typischer Zeitpunkt Vor jeder größeren Veröffentlichung oder Veranstaltung Nachdem das System unter Last stabil ist
Ergebnis Bestehen oder scheitern Sie gegen Ziele Eine Kapazitätsgrenze und eine Schwachstellenliste

Was ist ein Lasttest?

Lasttests simulieren den erwarteten realistischen Datenverkehr und messen, wie sich das System verhält. Es braucht ein Ziel zum Testen, zum Beispiel: „Bei 500 gleichzeitigen Benutzern werden 95 % der Checkout-Anfragen innerhalb von 800 ms abgeschlossen, mit weniger als 1 % Fehler.“

So könnte das als K6-Skript aussehen. k6-Tests sind in JavaScript geschrieben und thresholds verwandeln Ihre Ziele in ein bestandenes oder nicht bestandenes Ergebnis:

import http from "k6/http";
import { sleep } from "k6";

export const options = {
  stages: [
    { duration: "5m", target: 500 },   // ramp up
    { duration: "20m", target: 500 },  // hold at expected peak
    { duration: "2m", target: 0 },     // ramp down
  ],
  thresholds: {
    http_req_duration: ["p(95)<800"],
    http_req_failed: ["rate<0.01"],
  },
};

export default function () {
  http.get("https://staging.example.com/products");
  sleep(1);   // think time, as real users pause
}

Die sleep ist wichtig. Ohne Bedenkzeit hämmert jeder virtuelle Benutzer kontinuierlich auf den Server ein und erzeugt weitaus mehr Datenverkehr als die gleiche Anzahl realer Personen.

Was ist Stresstest?

Stresstests gehen bewusst über das erwartete Maß hinaus. Du versuchst nicht zu bestehen. Sie möchten Antworten auf Fragen wie:

  • Ab welchem Niveau beginnt die Leistung einzubrechen?
  • Welche Komponente fällt zuerst aus: die Datenbank, die Anwendungsserver oder ein Drittanbieteraufruf?
  • Schlägt es ordnungsgemäß mit eindeutigen Fehlern fehl oder stürzt es ab und verliert Daten?
  • Erholt es sich von selbst, wenn der Datenverkehr nachlässt?
export const options = {
  stages: [
    { duration: "5m", target: 500 },    // expected peak
    { duration: "5m", target: 1000 },   // beyond it
    { duration: "5m", target: 2000 },   // further
    { duration: "5m", target: 4000 },   // likely to break
    { duration: "10m", target: 0 },     // recovery: does it come back?
  ],
};

Diese letzte Genesungsphase wird häufig vergessen und ist möglicherweise die wertvollste. Ein System, das Fehler gut bewältigt, sich aber ohne einen manuellen Neustart nie erholt, bedeutet immer noch einen Ausfall, den jemand mitten in der Nacht beheben muss. Im Idealfall sollte ein System unter extremer Last auf kontrollierte Weise Arbeit abwerfen und eindeutige 503 Antworten zurückgeben, anstatt eine Zeitüberschreitung zu verursachen.

Spike, Soak und andere Arten

Last- und Stresstests gehören zu einer größeren Familie von Leistungstests:

Typ Muster Was es findet
Rauch (Aufführung) Ein paar Benutzer, kurz Ob das Skript und das System überhaupt funktionieren
Laden Erwarteter Höhepunkt, gehalten Ob Ziele erreicht werden
Stress Steigt über die Kapazität hinaus Grenzen und Fehlermodi
Spitze Ein plötzlicher Sprung, dann ein Tropfen Autoskalierung und Warteschlangenverhalten
Einweichen (Ausdauer) Normale Belastung über Stunden Speicherlecks, Verbindungen, die ausgehen
Kapazität Allmählicher Anstieg Die maximale Belastung innerhalb Ihrer Ziele

Einweichtests erkennen Probleme, die bei kurzen Tests nie sichtbar werden. Ein kleiner Speicherverlust kann zwanzig Minuten lang harmlos aussehen und den Dienst erst nach zwei Tagen zum Erliegen bringen. Spike-Tests eignen sich für Veranstaltungen wie Flash-Sales, bei denen der Traffic nicht allmählich ansteigt.

Kennzahlen, die wichtig sind

Metrisch Bedeutung Achten Sie auf
Reaktionszeit (Perzentile) Wie lange Anfragen dauern p95 und p99 steigend
Durchsatz Pro Sekunde verarbeitete Anfragen Abflachung mit zunehmender Benutzerzahl
Fehlerquote Prozentsatz fehlgeschlagener Anfragen Jeder plötzliche Anstieg
CPU und Speicher Nutzung der Serverressourcen Sättigung oder stetiges Wachstum
Datenbank Langsame Abfragen, Verwendung des Verbindungspools Pool erschöpft, Schleuse wartet
Warteschlangentiefe Arbeit wartet auf Bearbeitung Wachstum, das nie versiegt

Warum Durchschnittswerte irreführend sind

Durchschnittswerte verbergen die langsamen Anfragen, über die sich echte Menschen beschweren. Um dies zu zeigen, haben wir 100 simulierte Antwortzeiten generiert, von denen 95 schnell (80 bis 200 ms) und 5 sehr langsam (2,5 bis 4 Sekunden) waren, und dann die allgemeinen Statistiken berechnet:

import math, random, statistics

random.seed(3)
times = [random.randint(80, 200) for _ in range(95)] \
      + [random.randint(2500, 4000) for _ in range(5)]

def pct(values, p):
    values = sorted(values)
    return values[math.ceil(p / 100 * len(values)) - 1]

print("avg", round(statistics.mean(times)), "p50", pct(times, 50),
      "p95", pct(times, 95), "p99", pct(times, 99), "max", max(times))

# avg 302 p50 150 p95 199 p99 3740 max 3896

Schauen Sie sich diese Zahlen genau an. Der Durchschnitt von 302 ms beschreibt niemanden. Typische Anfragen dauerten etwa 150 ms, während die langsamen über 3 Sekunden dauerten. Sogar p95 sieht bei 199 ms gesund aus, und nur p99 offenbart das Problem. Eine Zahl wie p95 bedeutet, dass 95 % der Anfragen so schnell oder schneller waren.

Und ein Prozent der Anfragen ist keine Seltenheit. Wenn eine Seite 50 Anfragen stellt, wirkt sich ein langsamer p99 auf einen großen Teil der Seitenaufrufe aus. Legen Sie Ziele für die Perzentile fest, die für Sie wichtig sind, und betrachten Sie mehrere zusammen.

Tipp: Achten Sie in Ihren Diagrammen auf das „Knie“. Mit steigender Auslastung bleiben die Reaktionszeiten eine Zeit lang gleich, steigen dann aber plötzlich an, während der Durchsatz nicht mehr wächst. Dieser Punkt ist Ihre praktische Leistungsfähigkeit und kommt oft lange bevor etwas tatsächlich zusammenbricht.

Werkzeuge

Werkzeug Skripterstellung Bekannt für
k6 JavaScript Entwicklerfreundlich, Schwellenwerte passen zu CI
JMeter GUI und XML Ausgereift, unterstützt viele Protokolle
Gatling Scala, Java, Kotlin und andere Codebasiert, effizient
Heuschrecke Python Einfaches, Python-basiertes Benutzerverhalten

Jedes davon kann sowohl Last- als auch Stresstests durchführen. Wählen Sie diejenige aus, die zu den Fähigkeiten Ihres Teams passt, anstatt einer Funktionsliste hinterherzujagen. Informationen zur Verwendung in Ihrer Pipeline finden Sie unter Was ist CI/CD.

So planen Sie einen Test

  1. Setzen Sie sich Ziele. Verwenden Sie echte Analysen, um Ihren Spitzenverkehr zu ermitteln und Ziele zu definieren.
  2. Wählen Sie Reisen. Modellieren Sie realistisches Benutzerverhalten, wie z. B. Stöbern, Suchen und Bezahlen, in realistischen Proportionen. Ein bloßer Aufruf der Startseite beweist wenig.
  3. Verwenden Sie eine realistische Umgebung. Ein winziger Staging-Server kann die Produktion nicht vorhersagen. Beachten Sie etwaige Unterschiede.
  4. Bereiten Sie Daten vor. Verwenden Sie realistische Volumina, da eine Abfrage, die für 100 Zeilen schnell ist, möglicherweise 10 Millionen durchforstet.
  5. Warnen Sie die Leute. Informieren Sie Ihr Betriebsteam und alle Dritten und testen Sie einen Zahlungsanbieter nicht versehentlich. Gegebenenfalls externe Dienste simulieren.
  6. Fangen Sie klein an. Führen Sie zunächst einen kleinen Rauchtest durch, um zu bestätigen, dass Ihr Skript funktioniert.
  7. Überwachen Sie alles. Ohne Servermetriken werden Sie sehen, dass es langsamer wurde, aber nicht, warum.
  8. Wiederholen. Führen Sie es nach jedem Fix erneut aus und behalten Sie eine Basislinie zum Vergleich bei.

Lesen der Ergebnisse

Symptom Mögliche Ursache
Langsame Antworten, aber niedrige CPU Warten auf eine Datenbank, Sperre oder einen externen Dienst
Die Datenbank-CPU ist hoch Fehlende Indizes oder ineffiziente Abfragen
Plötzliche Verbindungsfehler Verbindungspool- oder Dateilimit erreicht
Das Gedächtnis steigt stetig Ein Leck oder ein unbegrenzter Cache
Die CPU des Lastgenerators ist hoch Der Flaschenhals ist das Testtool, nicht Ihr System

Datenbanken sind ein häufiger Engpass. Wenn also Abfragen das Problem sind, lesen Sie unseren Leitfaden zur SQL-Abfrageoptimierung. Diese letzte Zeile der Tabelle ist eine wichtige Falle: Überprüfen Sie immer auch den Zustand der Maschine, die die Last erzeugt.

Häufige Fehler

  • Verwirrung von Benutzern mit Anfragen. Machen Sie sich klar, ob ein Ziel gleichzeitige Benutzer oder Anfragen pro Sekunde bedeutet.
  • Denkzeit weglassen. Dies erhöht den Datenverkehr und führt zu irreführenden Ergebnissen.
  • Testen zu spät. Eine Woche vor dem Start bleibt keine Zeit, Architekturprobleme zu beheben.
  • Verwendung eines einzigen Endpunkts. Echter Datenverkehr mischt Lese-, Schreib- und Suchvorgänge.
  • Caching verbirgt alles. Identische wiederholte Anfragen testen möglicherweise nur Ihren Cache, also variieren Sie die Daten.
  • Einmal testen. Die Leistung ändert sich mit jeder Veröffentlichung, also führen Sie regelmäßig Tests durch.

Fazit

Führen Sie Lasttests durch, um sicherzustellen, dass Sie den erwarteten Datenverkehr bewältigen können, und führen Sie Stresstests durch, um zu erfahren, was passiert, wenn Sie dies nicht können. Fangen Sie klein an: Wählen Sie Ihre wichtigste User Journey, legen Sie ein klares Ziel fest und führen Sie einen kurzen Test mit Staging und aktivierter Überwachung durch. Bei diesem ersten Durchlauf lernen Sie normalerweise etwas, und Sie können darauf aufbauen.

Häufige Fragen

Was ist der Hauptunterschied zwischen Belastungs- und Stresstests?

Beim Lasttest wird das Verhalten bei erwartetem Datenverkehr anhand festgelegter Ziele überprüft. Stresstests gehen über die Kapazität hinaus, um den Bruchpunkt zu finden und herauszufinden, wie sich das System erholt.

Sollte ich zuerst einen Lasttest oder Stresstest durchführen?

Laden Sie zuerst den Test. Sobald das System seine Ziele bei erwartetem Datenverkehr erreicht, führen Sie Stresstests durch, um seine Grenzen auszuloten. Stressergebnisse haben bei einem instabilen System wenig Bedeutung.

Was ist der Unterschied zwischen einem Stresstest und einem Spike-Test?

Ein Stresstest erhöht typischerweise die Belastung schrittweise bis zum Ausfall. Ein Spike-Test springt plötzlich auf ein hohes Niveau, um zu sehen, wie das System mit abrupten Veränderungen umgeht.

Was ist die Reaktionszeit von p95?

Das bedeutet, dass 95 % der Anfragen zu diesem Zeitpunkt oder früher abgeschlossen wurden. Es beschreibt die Erfahrung der meisten Benutzer besser als der Durchschnitt.

Kann ich Lasttests in der Produktion durchführen?

Sie können dies tun, aber vorsichtig, mit Erlaubnis, Überwachung und einer Möglichkeit, schnell aufzuhören. Die meisten Teams beginnen mit einer produktionsähnlichen Staging-Umgebung, um das Risiko für echte Benutzer zu verringern.

Lerne weiter

Arbeiten Sie mit Stack Quora

Benötigen Sie Hilfe beim Testen, WordPress oder SEO?

Wir helfen Teams, bessere Software zu liefern und ihre Websites zu erweitern. Sagen Sie uns, woran Sie gerade arbeiten, und wir schlagen Ihnen einen klaren nächsten Schritt vor.

Lesen Sie weiter

Weitere Anleitungen finden Sie unter Tests, KI und moderne Entwicklung

Hat Ihnen dieser Artikel gefallen? Wählen Sie ein Thema und springen Sie direkt in unsere neuesten Tutorials.

Künstliche Intelligenz

KI-Halluzinationen erklärt: Warum Sprachmodelle Dinge erfinden und wie man sie reduziert

KI-Halluzinationen erklärt: Was sie sind, warum Sprachmodelle sie produzieren, gängige Typen, wie man sie mit Erdung und Eingabeaufforderungen reduz…

Artikel lesen →
DevOps

Erklärte Umgebungsvariablen: .env-Dateien, Geheimnisse und Konfiguration richtig gemacht

Umgebungsvariablen anhand von Python-Beispielen erklärt, die wir ausgeführt haben: Sie lesen und festlegen, warum jeder Wert ein String ist, .env-Da…

Artikel lesen →
Softwareentwicklung

API-Ratenbegrenzung erklärt: Algorithmen, Header und Behandlung von 429-Fehlern

API-Ratenbegrenzung anhand einer von uns durchgeführten Simulation erklärt: Token-Bucket, festes Fenster, gleitendes Fenster, 429 Antworten, Ratenbe…

Artikel lesen →
Testautomatisierung

Spott in Python: unittest.mock, Patch und die Fehler, die Tests zum Lügen machen

Mocking in Python mit unittest.mock, getestet: Mock und return_value, side_effect, Patchen, wo ein Name verwendet wird, Spezifikation und Autospec, …

Artikel lesen →
Softwaretests

Code-Abdeckung erklärt: Leitungs- und Zweigstellenabdeckung und was 100 % wirklich bedeutet

Erklärung der Codeabdeckung anhand eines echten Coverage.py-Laufs: Zeilen-, Zweig- und Bedingungsabdeckung, Lesen eines Berichts, warum bei 100 % Ab…

Artikel lesen →
Datenbanken & SQL

DELETE vs. TRUNCATE vs. DROP in SQL: Unterschiede, Rollback und Verwendungszweck

DELETE vs. TRUNCATE vs. DROP erklärt mit getestetem SQL: was jeweils entfernt wird, Rollback, Trigger, Identitätsrücksetzung, Geschwindigkeit und wi…

Artikel lesen →
Datenbanken & SQL

Erklärte SQL-Ansichten: Erstellen, nutzen und vermeiden Sie Fallstricke mit Beispielen

SQL-Ansichten anhand der von uns ausgeführten Abfragen erklärt: Erstellen einer Ansicht, Live-Ergebnisse, Ausblenden von Spalten, Leistung, aktualis…

Artikel lesen →
Softwareentwicklung

TypeScript-Schnittstelle vs. Typ: Echte Unterschiede, getestet mit dem Compiler

TypeScript-Schnittstelle vs. Typ, überprüft mit dem echten Compiler: Was beide können, was nur einer kann, Deklarationszusammenführung, Erweiterunge…

Artikel lesen →
Softwareentwicklung

Python *args und **kwargs erklärt: Flexible Funktionen mit klaren Beispielen

Python *args und **kwargs erklärt mit Code, den wir ausgeführt haben: Packen und Entpacken, Parameterreihenfolge, Nur-Schlüsselwort- und Nur-Positio…

Artikel lesen →
Softwareentwicklung

Python-Lambda-Funktionen: Syntax, tatsächliche Verwendung und wann man sie nicht verwendet

Python-Lambda-Funktionen erklärt mit Code, den wir ausgeführt haben: Syntax, Sortierung mit Schlüssel, Karte und Filter, Abschlüsse, die Late-Bindin…

Artikel lesen →
Künstliche Intelligenz

Was sind KI-Agenten? Wie sie funktionieren, mit einer einfachen Agentenschleife, die Sie ausführen können

Was sind KI-Agenten? Eine einfache Anleitung zur Agentenschleife, zu Tools, Speicher und Leitplanken, mit einer kleinen Python-Schleife, die wir aus…

Artikel lesen →
DevOps

Überwachung vs. Beobachtbarkeit: Der wahre Unterschied, mit Protokollen, Metriken und Traces

Überwachung vs. Beobachtbarkeit erklärt: bekannte und unbekannte Fehler, Protokolle, Metriken und Spuren, eine exemplarische Vorgehensweise für Chec…

Artikel lesen →
DevOps

Docker-Volumes vs. Bind Mounts: Containerdaten auf die richtige Art und Weise beibehalten

Docker-Volumes vs. Bind-Mounts erklärt: Warum Containerdaten verschwinden, benannte Volumes, Bind-Mounts, tmpfs, Compose-Beispiele, Backups, Berecht…

Artikel lesen →
Testautomatisierung

TDD vs. BDD: Hauptunterschiede, eine Funktion, die auf beide Arten entwickelt wurde und wann sie jeweils verwendet werden sollte

TDD vs. BDD erklärt mit einer Rabattfunktion, die in beide Richtungen aufgebaut ist: Rot-Grün-Refaktor mit Code, den wir ausgeführt haben, Gegeben-W…

Artikel lesen →
Softwaretests

Benutzerakzeptanztests (UAT): Prozess, Checkliste und reale Beispiele

Benutzerakzeptanztests erklärt: Wer führt ihn durch, wie unterscheidet er sich von der Qualitätssicherung, ein siebenstufiger Prozess, eine UAT-Test…

Artikel lesen →
Datenbanken & SQL

Erklärte SQL-NULL-Werte: IS NULL, COALESCE, NULLIF und die zu vermeidenden Fallen

SQL-NULL-Werte, die mit von uns ausgeführten Abfragen erklärt wurden: dreiwertige Logik, IS NULL, COALESCE, NULLIF, wie Aggregate, Joins und Sortier…

Artikel lesen →
Datenbanken & SQL

SQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler

SQL CASE WHEN anhand der von uns ausgeführten Abfragen erklärt: einfache und durchsuchte Formulare, Bedingungsreihenfolge, Pivots mit SUM, COUNT-Tri…

Artikel lesen →
Softwareentwicklung

Was ist JWT? JSON-Web-Tokens anhand eines funktionierenden Beispiels erklärt

Was ist JWT? JSON Web Tokens erklärt: die drei Teile, ein Token, das in dem von uns ausgeführten Code erstellt und manipuliert wurde, JWT vs. Sitzun…

Artikel lesen →
Softwareentwicklung

Erklärte JavaScript-Ereignisschleife: Aufrufstapel, Mikrotasks und Timer mit Beispielen

Die JavaScript-Ereignisschleife wurde mit dem von uns ausgeführten Code erklärt: Aufrufstapel, Aufgaben- und Mikrotask-Warteschlangen, warum setTime…

Artikel lesen →
Softwareentwicklung

Erklärung von Python-Generatoren und -Ertrag: Sparen Sie Speicher mit echten Beispielen

Python-Generatoren und Yield anhand des von uns ausgeführten Codes erklärt: wie sie angehalten und fortgesetzt werden, gemessene Speichereinsparunge…

Artikel lesen →
Künstliche Intelligenz

Was sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt

Was sind Einbettungen? Ein Leitfaden in einfacher Sprache zu Vektoren, Kosinusähnlichkeit und semantischer Suche, mit einem kleinen Beispiel, das wi…

Artikel lesen →
DevOps

Blau-Grün vs. Canary-Bereitstellung: Unterschiede, Kompromisse und Auswahl

Blue-Green vs. Canary-Bereitstellung erklärt: Funktionsweise, Kosten, Risiko und Rollback, stabiles Benutzer-Bucketing, das wir getestet haben, Date…

Artikel lesen →
Testautomatisierung

Flaky-Tests: Was sie verursacht und wie man sie endgültig behebt

Flaky-Tests wurden anhand von Demos erklärt, die wir durchgeführt haben: die Hauptursachen, wie man sie bestätigt und diagnostiziert, richtige Korre…

Artikel lesen →
Softwaretests

Lasttest vs. Stresstest: Unterschiede, Metriken und k6-Beispiele

Erläuterungen zu Lasttests und Stresstests: Was die einzelnen Tests beweisen, Spike- und Soak-Tests, welche Kennzahlen wichtig sind, warum Durchschn…

Artikel lesen →
Softwaretests

Testfall vs. Testszenario: Hauptunterschiede, Beispiele und wann man sie jeweils verwendet

Testfall vs. Testszenario erklärt: klare Definitionen, eine Tabelle nebeneinander, eine Funktion zum Zurücksetzen von Passwörtern, die von Szenarios…

Artikel lesen →
Datenbanken & SQL

SQL-Abfrageoptimierung: Ausführungspläne lesen und langsame Abfragen mit Zeitvorgaben beheben

An einer Million Zeilen getestete SQL-Abfrageoptimierung: Ausführungspläne lesen, die richtigen Indizes hinzufügen, nicht sargierbare Filter korrigi…

Artikel lesen →
Datenbanken & SQL

SQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung

SQL UNION vs. UNION ALL anhand der von uns ausgeführten Abfragen erklärt: Duplikate, die Regeln, denen beide folgen, ein echter Datenfehler, gemesse…

Artikel lesen →
Softwareentwicklung

Tutorial zur JavaScript-Abruf-API: GET, POST, Fehlerbehandlung und Zeitüberschreitungen

Ein JavaScript-Abruf-API-Tutorial, das auf einem lokalen Server getestet wurde: GET und POST, warum 404 nicht ausgelöst wird, ein wiederverwendbarer…

Artikel lesen →
Softwareentwicklung

Umgang mit Python-Dateien: Lesen, Schreiben, CSV, JSON und Pathlib mit Beispielen

Die Handhabung von Python-Dateien wird anhand des von uns ausgeführten Codes erklärt: Öffnungsmodi, Lesen großer Dateien, CSV, JSON, Pathlib, Binärd…

Artikel lesen →
Softwareentwicklung

Python-Klassen und -Objekte: OOP-Tutorial mit echten Beispielen

Python-Klassen und -Objekte erklärt mit Code, den wir ausgeführt haben: __init__, Methoden, Klassen- und Instanzattribute, Vererbung, Eigenschaften,…

Artikel lesen →
Künstliche Intelligenz

Was ist ein großes Sprachmodell? Wie LLMs funktionieren, ohne großen Hype erklärt

Was ist ein großes Sprachmodell? LLMs im Klartext erklärt: Token, Einbettungen, Aufmerksamkeit, Training, Temperatur- und Kontextfenster, eine klein…

Artikel lesen →
DevOps

Linux-Befehle für Anfänger: Der grundlegende Terminal-Leitfaden mit Beispielen

Linux-Befehle für Anfänger, gruppiert nach Aufgaben: Navigation, Dateien, Anzeigen von Protokollen, Grep, Pipes, Berechtigungen, Prozesse und Archiv…

Artikel lesen →
Testautomatisierung

Selenium vs. Playwright: Hauptunterschiede, Code im Vergleich und welche Sie wählen sollten

Selenium vs. Playwright im Vergleich: Architektur, Wartezeit, Browser- und Sprachunterstützung, Debugging, der gleiche Test in beiden Tools, Migrati…

Artikel lesen →
Softwaretests

Äquivalenzpartitionierung: Testdesigntechnik anhand von Beispielen erklärt

Erklärung der Äquivalenzpartitionierung: Wie man gültige und ungültige Partitionen findet, Beispiele für Alter, Passwörter und Gutscheine, von uns d…

Artikel lesen →
Softwaretests

Schweregrad vs. Priorität beim Softwaretest: Unterschiede, Matrix und reale Beispiele

Schweregrad vs. Priorität beim Softwaretest erklärt: klare Definitionen, eine Vier-Wege-Matrix mit Beispielen, Stufenskalen, wer die einzelnen Punkt…

Artikel lesen →
Datenbanken & SQL

Tutorial zu SQL-Unterabfragen: Typen, korrelierte Unterabfragen und EXISTS mit Beispielen

Ein SQL-Unterabfrage-Tutorial mit Abfragen, die wir ausgeführt haben: Skalar-, IN-, FROM- und SELECT-Unterabfragen, korrelierte Unterabfragen, EXIST…

Artikel lesen →
Datenbanken & SQL

SQL-Transaktionen und ACID erklärt: COMMIT, ROLLBACK und Isolationsstufen

SQL-Transaktionen und ACID anhand einer von uns durchgeführten Banküberweisung erklärt: COMMIT, ROLLBACK, Sicherungspunkte, Sperren, Isolationsstufe…

Artikel lesen →
Softwareentwicklung

Git merge vs rebase: Unterschiede, Beispiele und wann man was nutzt

Git merge vs rebase erklärt mit echter Log-Ausgabe, einer Vergleichstabelle, der goldenen Regel des Rebase und einem sicheren Team-Workflow.

Artikel lesen →
Softwareentwicklung

Python List Comprehension: Syntax, Beispiele und wann man darauf verzichtet

Python List Comprehension erklärt: Syntax, Filter, if-else, verschachtelte Schleifen, gemessene Zeiten und Fälle, in denen eine normale for-Schleife…

Artikel lesen →
Datenbanken & SQL

SQL Joins erklärt mit Beispielen (Inner, Left, Right, Full)

SQL Joins Schritt für Schritt mit Beispieltabellen und Abfragen verstehen: INNER, LEFT, RIGHT, FULL, CROSS und SELF, plus typische Fehler und Perfor…

Artikel lesen →