## 📘 KAPITEL 2: TESTEN IM SOFTWARELEBENSZYKLUS

---

### 2.1 Softwareentwicklungsmodelle

**Testen muss in den gesamten Entwicklungsprozess integriert sein!**

#### a) Sequenzielle Modelle (klassisch, Wasserfall, V-Modell)

- **Vorteil**: frühzeitige Planung, klare Phasen
- **Nachteil**: späte Fehlererkennung, wenig flexibel

#### b) Iterative/inkrementelle Modelle (z. B. Agile)

- **Testen** = integraler Bestandteil jeder Iteration
- Kontinuierliches Feedback, frühe Tests
- Flexibler, aber aufwändiger

---

### 2.2 Teststufen (💡 Prüfungsrelevant)

|Teststufe|Fokus|Testbasis|Ziel|
|---|---|---|---|
|**Komponententest**|Einzelprogramme/Funktionen|Source Code, Design Specs|Fehler in Modulen erkennen|
|**Integrationstest**|Zusammenspiel von Komponenten|Schnittstellenspezifikation|Fehler in Modulen & Interfaces|
|**Systemtest**|Gesamtsystem|Anforderungen|Anforderungen erfüllt?|
|**Abnahmetest**|Validierung mit Nutzer|Businessanforderungen|Auslieferungsreife prüfen|

🔄 **Statische Tests** (Reviews) ergänzen die Teststufen

---

### 2.3 Testarten (Was wird getestet?)

#### Funktionale Tests

- Verhalten & Funktionen
- z. B. Geschäftslogik, Benutzerinteraktion

#### Nicht-funktionale Tests

- **Leistung**, **Benutzbarkeit**, **Zuverlässigkeit**, **Sicherheit**
- Beispiel: Lasttests, Sicherheitstests

#### Strukturbezogene Tests

- Interne Struktur (z. B. Codeabdeckung, Verzweigungspfad)

#### Änderungsbezogene Tests

- **Re-Tests**: Prüfen behobener Fehler
- **Regressionstests**: Prüfen unbeabsichtigter Nebeneffekte

---

### 2.4 Wartungstest

- Tests im Produktivsystem nach Änderungen (Fehlerbehebung, Anpassung)
- Besonders wichtig:
    - **Regressionstest**
    - **Impact-Analyse**
- Testdaten und Testumgebung **aktuell halten**

---

### 2.5 Teststufen & Testarten kombinieren

- Beispiel: Im **Systemtest** können **funktionale Tests** UND **nicht-funktionale Tests** durchgeführt werden.
- Jeder Teststufe können verschiedene **Testziele** zugeordnet werden.

---

## ✅ KLAUSURRELEVANTE MERKPUNKTE

|Thema|Prüfungswissen|
|---|---|
|V-Modell|Testaktivitäten sind klar definiert & gekoppelt mit Entwicklungsphasen|
|Teststufen|**Komponente → Integration → System → Abnahme** (Reihenfolge merken!)|
|Testarten|Funktional, Nicht-funktional, Struktur-, Änderungsbezogen|
|Wartungstest|Regression und Impact-Analyse notwendig|
|Agile Modelle|**Test = Teil jeder Iteration**|
