## 📘 KAPITEL 4.1: TESTTECHNIKEN – GRUNDLAGEN

---

### 4.1 Einleitung: Warum Testverfahren?

- Systematisches Vorgehen → bessere **Testabdeckung**
- Unterstützung bei der Erstellung **guter Testfälle**
- Ziel: Fehler früh entdecken & reproduzierbar testen

---

## 🧪 HAUPTKATEGORIEN VON TESTVERFAHREN

|Kategorie|Merkmale & Grundlage|
|---|---|
|**Black-Box**|Anforderungen / Spezifikation|
|**White-Box**|Programmstruktur / Code|
|**Erfahrungsbasiert**|Intuition, frühere Fehler, Exploratives Testen|

---

### 🔲 1. BLACK-BOX-VERFAHREN (💡 Prüfungsrelevant)

Nutzen **Eingabe-Ausgabe-Beziehung**, ohne Quellcode zu betrachten.

#### a) Äquivalenzklassenbildung

- Eingaben in gültige/ungültige **Klassen** einteilen
- **Aus jeder Klasse → 1 Testfall**

#### b) Grenzwertanalyse

- Grenzwerte sind **fehleranfällig**
- Testfälle **am Rand** der Äquivalenzklassen

#### c) Entscheidungstabellen

- Repräsentieren **Regeln & Bedingungen**
- Kombinationen aus Bedingungen → Aktionen

#### d) Zustandsbasierter Test

- Bei **zustandsbehafteten Systemen** (z. B. Automaten)
- Zustände, Übergänge, Events → modellieren & testen

#### e) Use Case Test

- **Szenarien aus Benutzersicht** abdecken
- Ziel: reale Nutzungspfade testen

---

### 🔳 2. WHITE-BOX-VERFAHREN

Berücksichtigen **interne Struktur** des Systems/Programms

#### a) Anweisungsüberdeckung
- Jede Anweisung im Code muss mindestens **einmal ausgeführt** werden

#### b) Zweigüberdeckung

- Jeder Entscheidungspunkt (z. B. `if`, `else`) → **jede Richtung** wird getestet

➡️ Für Entwicklernahe Tests (z. B. Komponententest)

---

### 💡 3. ERFAHRUNGSBASIERTE VERFAHREN

- Beruhen auf **Intuition, Erfahrung, Bauchgefühl**
- Beispiele:
    - **Fehlerbasiertes Testen**
    - **Checklisten**
    - **Exploratives Testen**

Einsatz besonders:

- wenn wenig Dokumentation vorhanden ist
- bei Timeboxing (agile Projekte)
- als Ergänzung zu strukturierten Verfahren

---

## ✅ KLAUSURRELEVANTE MERKPUNKTE

|Thema|Merksatz|
|---|---|
|Black-Box|Tests basieren auf **Spezifikationen**, nicht auf Code|
|White-Box|Ziel: **Codepfade** und **Verzweigungen** abdecken|
|Äquivalenzklassen|Jede Klasse mit **einem repräsentativen Testfall**|
|Grenzwertanalyse|Fehler liegen oft **an den Rändern**|
|Entscheidungs- & Zustandsbasierte Tests|gut bei komplexem Verhalten & Bedingungen|
|Erfahrungsbasiert|Ergänzend, flexibel, intuitiv, explorativ|
