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. | ||