Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m450:learningunits:lu15:umsetzung [2024/11/25 11:20] – [Basierend auf Unittests] msuter | modul:m450:learningunits:lu15:umsetzung [2024/11/29 09:25] (aktuell) – msuter | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
===== Big-Bang-Integration ===== | ===== Big-Bang-Integration ===== | ||
- | Bei dieser Strategie wird das Zusammenspiel aller Komponenten (Module, Funktionen, Klassen) gleichzeitig getestet. | + | | {{: |
- | Dabei verzichten wir vollständig auf Mocks. | + | |
- | + | ||
- | Anhand der Hauptsteuerung suchen wir die Hauptkomponenten unserer Applikation. | + | |
- | Zu diesen Komponenten schreiben wir Integrationstests. | + | |
- | Dabei werden alle Komponenten, | + | |
===== Top-Down-Integration ===== | ===== Top-Down-Integration ===== | ||
- | Im Gegensatz zur Big-Bang-Integration testen wir immer nur eine Schicht auf einmal. | + | | {{: |
+ | |||
+ | ==== Erste Schicht ==== | ||
+ | |||
+ | - Wähle eine Komponente (nennen wir sie **function_F**) aus, die von der Hauptsteuerung aufgerufen wird. | ||
+ | - Erstelle eine Testfunktion bei der die Hauptsteuerung die **function_F** aufruft. | ||
+ | - Erstelle simulierte Funktionen für **B** und **C** (Mocks). | ||
+ | - Führe die Tests aus: Dokumentiere dabei auftretende Fehler und behebe diese iterativ. | ||
+ | |||
+ | Wiederhole diese Schritte, bis die erste Schicht **F, G, H** vollständig getestet ist. | ||
+ | |||
+ | ==== Weitere Schichten ==== | ||
+ | In weiteren Testfällen prüfen wir nun die Komponenten, | ||
+ | Dies wird nun Komponente für Komponente und Schicht für Sicht wiederholt. | ||
- | Wir starten mit der höchsten Ebene der Anwendung, z. B. der Hauptsteuerung oder den GUI-Komponenten, | ||
- | Mocks werden hier häufig eingesetzt, um noch nicht integrierte Unterschichten zu simulieren. | ||
===== Bottom-Up-Integration ===== | ===== Bottom-Up-Integration ===== | ||
- | Bei dieser Strategie testen wir zuerst die Integration von Komponenten, | + | | {{: |
- | Wir beginnen mit den grundlegenden Bausteinen des Systems (z. B. Datenbank- oder Utility-Funktionen) und arbeiten uns schrittweise nach oben. | + | |
- | Höhere Schichten werden erst integriert, wenn ihre Abhängigkeiten bereits getestet wurden. | + | |
==== Basierend auf Unittests ==== | ==== Basierend auf Unittests ==== | ||
Zeile 28: | Zeile 32: | ||
Diese Strategie ist relativ einfach umzusetzen, wenn schon weitgehend vollständige Unittests existieren. | Diese Strategie ist relativ einfach umzusetzen, wenn schon weitgehend vollständige Unittests existieren. | ||
- | - Identifiziere eine Testfunktion (nennen wir sie test_A), die keine Mocks einsetzt. | + | - Identifiziere eine Testfunktion (nennen wir sie **test_A**), die keine Mocks einsetzt. |
- | * Diese Testfunktion wird in der Regel nur eine Funktion (function_A) testen. | + | * Diese Testfunktion wird in der Regel nur eine Funktion (**function_A**) testen. |
* Dies sind zu Beginn vor allem Tests von Komponenten, | * Dies sind zu Beginn vor allem Tests von Komponenten, | ||
- | - Suche eine Testfunktion (test_B), welche einen Mock dieser Funktion function_A nutzt. | + | - Suche eine Testfunktion (**test_B**), welche einen Mock dieser Funktion |
- | - Erstelle eine Kopie von test_B, wobei du nun die echte function_A aufrufst. | + | - Erstelle eine Kopie von **test_B**, wobei du nun die echte **function_A** aufrufst. |
- Führe die Tests aus: Dokumentiere dabei auftretende Fehler und behebe diese iterativ. | - Führe die Tests aus: Dokumentiere dabei auftretende Fehler und behebe diese iterativ. | ||