@ -213,3 +213,53 @@ Kontrolle ist ein wichtiger Schritt in unserem Projektmanagement und bedeutet da
### Wiederholung
Scrum ist ein agiles Projektmanagement, das die Zusammenarbeit in selbstorganisierten Teams fördert. Es unterteilt Projekte in iterative Sprints mit regelmäßigen Treffen wie der Sprint-Planung, dem täglichen Meeting für kurze Updates und dem Sprint-Review am Ende.
---
## 7. Vorlesung (12.12.2023)
### Lernziel
- warum brauchen wir Testen?
- Menschen machen Fehler
- Fehler im Code --> unerwünschtem Verhalten von Software: teuer
- Qualitätssicherung (QS): Vermeidung von Qualitätsmängeln in einem Programm
- Testumgebung: wo die Qualität der Anwendung/des Programms analysiert wird
- Test: Ein **methodischer** Versuch zur Überprüfung, ob die Leistung eines Programms den Erwartungen entspricht.
- Software: Code, fertiges Programm
- Fehlerauftreten:
- Akuter: Bei normaler Programmausführung. Direkter Verstoß gegen die Anforderungen
- Latenter: Wenn Daten nicht wie erwartet sind. Besteht alle Arten von Tests. Durch Anwender aufgedeckt
- maskierter Fehler: Wird von anderem Fehler verdeckt. Kein Einfluss auf Funktionalität des Produkts
- kaskadierter Fehler: Fehler an anderer Stelle verursacht Folgefehler. Kein Fehler im eigentlichen Sinne.
- Arten von Defekten:
- lexigraphisch
- syntaktisch
- semanticsh
- logisch
- Design
- Arbeitsablaufs - Design
- Arten von Tests:
- manuell
- automatisiert
- statische Codeanalyse
- dynamische Tests
- Testziele
- Fehler aufzeigen
- Qualität erfassen
- Vertrauen erhöhen
- Grenzen ermitteln
### Erkenntnis
Wir untersuchen ein Programm, indem wir es mit Fällen testen, wobei wir deren Kritikalität berücksichtigen, um die Zuverlässigkeit und Leistung der Software zu erreichen.
Normalerweise sind wir blind für unsere eigenen Fehler, daher wäre es besser, wenn wir andere Teamkollegen bitten, unseren Code zu überprüfen.
Frühzeitig erkannte Fehler sind kostengünstiger und einfacher zu beheben als solche, die spät entdeckt werden. Die Testpyramide ist ein Leitfaden, um Fehler frühzeitig auf verschiedenen Ebenen zu identifizieren, wobei Unit-Tests besonders präzise Fehlerursachen aufdecken können. Je weiter unten im Entwicklungsprozess ein Fehler erkannt wird, desto schneller und genauer kann ich den Ort des Fehlers bestimmen. Durch Fokus auf Unit-Tests und zusätzliche Integration von Integrations- und UI-Tests können Teams die Softwarequalität verbessern und die Kosten für Fehler minimieren.