Lernziele Modul 450 Applikation testen
Allgemeines zu Lernkontrollen:
- Es geht dabei auch um ein speditives, zielgerichtetes Anwenden innerhalb eines definierten Zeitrahmens.
- Hilfsmittel:
- Je nach Prüfung: -- keine -- oder Übungen, persönliche Notizen, Internetseiten , wie sie im Unterricht verwendet wurden
- Sie dürfen keine fremden oder gemeinsam erarbeitete Lösungen oder auch nur Teile davon verwenden.
- Und Sie dürfen Ihre Lösung oder Teile davon niemandem weitergeben.
Testarten
A, HZ1, HZ3
- Ich kann die verschiedenen Testarten (Unit, Integration, System, E2E) unterscheiden und deren Ziele und Einsatzgebiete erklären.
- Ich kann die Testarten in der Testpyramide einordnen und deren Verhältnis zueinander erklären.
- Ich kann die Rolle der Testarten im Softwareentwicklungsprozess erklären.
- Ich kann typische Beispiele für jede Testart nennen und deren Umsetzung beschreiben.
- Ich kann Black-Box-Tests und White-Box-Tests unterscheiden und deren Einsatzgebiete erklären.
Vorgehensmodelle
A, HZ1, HZ2, HZ3
- Ich kann verschiedene Softwareentwicklungsprozesse (z.B. Wasserfall, V-Modell, Agile) nennen und deren Hauptmerkmale beschreiben.
- Ich kann erklären, wie und wann verschiedene Testarten in den jeweiligen Entwicklungsprozessen eingesetzt werden.
- Ich kann die Bedeutung von Tests in agilen Entwicklungsprozessen erläutern.
Test Prozess Planen
A, B, HZ1, HZ2, HZ3
-
Test-Prozess-Modelle
- Ich kann erklären, was ein Test-Prozess-Modelle ist.
- Ich kann verschiedene Test-Prozess-Modelle benennen und deren Unterschiede erläutern.
- Beispiele: ISO/IEC/IEEE 29119, ISTQB Test Process Model, Testquadranten von Crispin & Gregory
- Ich kann die Rolle von Test-Prozess-Modellen im Testmanagement und in der Teststrategie erklären.
-
Teststrategie
- Ich kann den Zweck und Inhalt einer Teststrategie erklären.
- Ich kann den Aufbau einer Teststrategie beschreiben.
- Ich kann die Beziehung zwischen Teststrategie, Testkonzept und Testplan erläutern.
- Ich kann eine Teststrategie entwerfen.
-
Testkonzept
- Ich kann den Zweck und Inhalt eines Testkonzeptes erklären.
- Ich kann den Aufbau eines Testkonzeptes beschreiben.
- Ich kann ein Testkonzept entwerfen.
Unit Testing
B, C, DHZ5, HZ6, HZ7
(Hinweis: Unittest wurden in einigen Modulen zuvor bereits behandelt. zBsp Modul 320, Modul 426)
- Ich kann den Zweck und die Bedeutung von Unit Tests im Softwareentwicklungsprozess erklären.
- Ich kann die Merkmale eines guten Unit Tests beschreiben.
- Ich kann Unit Tests mit JUnit in Java erstellen und ausführen.
- Ich kann Testfälle für Unit Tests entwerfen und implementieren.
- Ich kann Testabdeckungsmetriken (z.B. Anweisungs-, Zweig- und Bedingungsabdeckung) erklären und anwenden.
- Ich kann Testergebnisse interpretieren und Korrekturmassnahmen vorschlagen.
Mocking
B, C, D, HZ5, HZ6, HZ7
- Ich kann die Unterschiede von Dummy, Fake, Stub, Mock erklären.
- Ich kann Gründe für und das Prinzip des Mocks erklären und anhand eines Beispiels aufzeigen.
- Ich kann erklären, wie das Design die Möglichkeiten für das Anwenden eines Mocks beeinflusst und Vorschläge dazu machen.
- Ich kann erklären, wieso und wie Mocking bei Unit Tests verwendet wird und welche Rolle das Mock-Objekt dabei hat.
- Ich kann erklären was Mockito ist.
- Ich kann in einem Maven Projekt mit JUnit und Mockito Mocking, Mock Objekte für Unit Tests anwenden und die Schritte der Anwendung erklären.
- Ich kann systematisch und begründet Unit-Tests entwerfen, die Mockito verwenden.
- Ich kann einen Unittests mit Mockito mit dem Debugger analysieren und erklären, was passiert.
- Ich kann das Prinzip vom Mocken auf Situationen mit komplexeren Datenstrukturen übertragen. (ZBsp Mock einer Datenbank mit mehreren Entitäten)
- Ich kann Unittests mit Unterstützung eines Mocks für komplexeren Datenstrukturen erstellen. (ZBsp Mock einer Datenbank mit mehreren Entitäten.) Ich kann im Zusammenhang mit Mocks Begriffe wie injection, @Mock, @InjectMocks … erklären.
- Ich kann einen bestehenden Unittest analysieren, erklären, Verbesserungen vorschlagen und anwenden.
- Ich kann Testergebnisse interpretieren und Korrekturmassnahmen vorschlagen.
- Ich kann erklären, was beim Mocken in Java passiert. Was diese Begriffe damit zutun haben.
Bsp. Dice.class, Byte Buddy, Reflection, Instrumentierte Implementierung, Methodeninterzeption, Stubbing, Dice dice = mock(Dice.class); when(dice.roll()).thenReturn(3).thenReturn(4);
E2E Tests
B, C, D, HZ5, HZ6, HZ7
- Ich kann den Zweck und die Bedeutung von End-to-End Tests im Softwareentwicklungsprozess erklären.
- Ich kann Beispiele für paraktische Anwendungsfälle von E2E-Tests nennen.
- Ich kan die Konzepte für E2E-Tests (WebDriver-basiert, DevTools/Engine-basiert, In-Browser-basiert) erklären und deren Vor- und Nachteile beschreiben.
- Ich kann E2E-Tests ZBsp mit Cypress erstellen, ausführen und erklären.
- Ich kann Testergebnisse interpretieren und Korrekturmassnahmen vorschlagen.
Testautomatisierung
HZ5, HZ6, HZ7
- Ich kann die Bedeutung von Testautomatisierung für die Softwarequalität und den Entwicklungsprozess erklären.
- Ich kann Unit Tests in den Entwicklungsprozess integrieren (z.B. Test-Driven Development, Continuous Integration).
- Ich kann Es2E-Tests automatisieren und in den Entwicklungsprozess integrieren.
- Ich kann Testergebnisse interpretieren und Korrekturmassnahmen vorschlagen.
Code-Review und Verbesserung
D, HZ4, HZ7
- Ich kann die Bedeutung Code Reviews erklären.
- Codequality, Maintainability, Bug Detection, Knowledge Sharing...
- Ich kann ein Code Review Ablaufe erklären, planen und vorbereiten.
- Ich kann Code Reviews durchführen und konstruktives Feedback geben.
- Ich kann Code Reviews annehmen und konstruktives Feedback umsetzen.
- Ich kann Codequalität messen und bewerten (z.B. Code Metriken, statische Codeanalyse).
- Ich kann Verbesserungspotenziale im Code identifizieren und entsprechende Massnahmen vorschlagen.
- Ich kann Best Practices für sauberen, wartbaren und testbaren Code anwenden.