Test Driven Development (TDD):
- Definition: TDD ist eine Entwicklungspraxis, bei der Tests vor der eigentlichen Implementierung des Codes geschrieben werden.
- Prozess: Der Zyklus in TDD besteht aus den Schritten "Red-Green-Refactor". Zuerst wird ein Test geschrieben, der fehlschlägt (rot), dann wird der Code implementiert, um den Test erfolgreich zu machen (grün), und schließlich wird der Code verbessert, ohne die Funktionalität zu ändern (refaktorisiert).
- Ziel: Die Hauptziele von TDD sind die Verbesserung der Codequalität, die frühe Erkennung von Fehlern und die Unterstützung der Anpassung des Codes an sich ändernde Anforderungen.
Behavior Driven Development (BDD):
- Definition: BDD ist eine Erweiterung von TDD, bei der der Fokus auf dem Verhalten der Software liegt. Es betont die Zusammenarbeit zwischen Entwicklern, Qualitätsprüfern und Nicht-Technikern.
- Sprachliche Darstellung: BDD verwendet eine natürliche Sprache, um das Verhalten der Software zu beschreiben. Sogenannte "Gherkin"-Syntax (Given-When-Then) wird häufig verwendet, um Tests zu schreiben.
- Ziel: Das Hauptziel von BDD besteht darin, eine gemeinsame Sprache zwischen technischen und nicht-technischen Teammitgliedern zu schaffen, um sicherzustellen, dass alle verstehen, was die Software tun sollte.
Beisplie von TDD (Top-Down Development)
Ziel: Wir nehmen an, dass wir einen einfachen Taschenrechner für Grundrechenarten entwickeln möchten.
TDD-Prozess:
- Schritt 1: Test schreiben
// test_calculator.js
test('Addition', () => {
expect(add(2, 3)).toBe(5);
});
test('Subtraktion', () => {
expect(subtract(5, 3)).toBe(2);
});
- Schritt 2: Mindestens erforderlichen Code schreiben
// calculator.js
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
- Schritt 3: Refactoring Der Schritt zur Verbesserung des Codes wird hier übersprungen.
Beisplie von BDD (Behavior-Driven Development)
Ziel: Wir nehmen an, dass wir eine Webanwendung mit Login-Funktion entwickeln möchten.
BDD-Prozess:
- Schritt 1: Spezifikation der Geschäftsanforderungen
Feature: Login-Funktion
Szenario: Mit korrekten Anmeldedaten einloggen
Angenommen der Benutzer befindet sich auf der Anmeldeseite
Wenn er die richtige Benutzer-ID und das richtige Passwort eingibt
Dann hat der Login Erfolg
Schritt 2: Testcode basierend auf der Spezifikation schreiben
Der tatsächliche Testcode könnte mithilfe eines BDD-Tools wie Behave geschrieben werden.Schritt 3: Code schreiben, um den Test zu bestehen
// login.js
function login(userId, password) {
// Tatsächliche Implementierung der Anmeldelogik
if (userId === "valid_user" && password === "secure_password") {
return true;
} else {
return false;
}
}
In diesem Beispiel zeigt BDD, wie Geschäftsanforderungen in natürlicher Sprache spezifiziert, darauf basierende Testcode geschrieben und schließlich Code erstellt werden, um den Test zu bestehen. Der verwendete Programmiercode ist in JavaScript verfasst.
Top comments (0)