Sem II (Program I) - N2 Flashcards
Wie testet man in JUnit das Werfen einer Exception?
Mit der Methode assertThrows kann getestet werden, ob eine spezifische Exception geworfen wird.
@Test public void testEinzahlenFehlerfall() { assertThrows(IllegalArgumentException.class, () -> { ko.einzahlen(-3.5f); }); } // Der Test besteht, wenn die Methode ko.einzahlen(-3.5f) eine IllegalArgumentException auslöst.
Was zeigt ein Test-Report an und warum ist er wichtig?
Ein Test-Report zeigt nicht nur an, ob ein Test fehlgeschlagen ist, sondern auch den Grund für das Fehlschlagen.
Warum ist es wichtig, auch negative Tests durchzuführen, zum Beispiel beim Einzahlen auf ein Konto?
Negative Tests prüfen, wie das System auf ungültige Eingaben oder fehlerhafte Bedingungen reagiert.
Was ist assertSame in JUnit?
prüft hingegen, ob zwei Referenzen auf dasselbe Objekt zeigen.
Wann sollte man Tests in einer Softwareentwicklungsphase schreiben – vor oder nach der Implementierung?
Bei TDD werden Tests vor der Implementierung geschrieben. Dies stellt sicher, dass die Anforderungen klar definiert sind und die Implementierung zielgerichtet erfolgt.
Warum ist es nicht ausreichend, nur einen Test pro Methode zu schreiben?
Ein einzelner Test deckt oft nicht alle möglichen Anwendungsfälle und Randbedingungen ab.
Was ist assertNull?
überprüft, ob ein Objekt den Wert null hat
Was ist assertNotNull?
sicherstellt, dass ein Objekt nicht null ist.
Was sind die wesentlichen Merkmale der Softwarequalität?
Funktionalität, Zuverlässigkeit, Effizienz, Benutzbarkeit, Änderbarkeit (Wartbarkeit) und Übertragbarkeit.
Warum ist frühes Testen in der Softwareentwicklung wichtig?
Fehler sind teurer zu beheben, je später sie im Entwicklungsprozess entdeckt werden. Daher ist es wichtig, Fehler so früh wie möglich zu erkennen und zu beheben.
Welche Testebenen gibt es in der Softwareentwicklung?
Komponentenebene (Unit Test): Testen einzelner Software-Bausteine.
Modulebene (Integrationstest): Überprüfung der Zusammenarbeit mehrerer Komponenten.
Systemebene (Systemtest): Testen des gesamten Systems als Ganzes.
Anforderungseben: Überprüfung, ob die Anforderungen erfüllt sind.
What does @BeforeEach in Java JUnit do?
Выполняет метод перед каждым тестовым случаем.
What does @AfterEach in Java JUnit do?
Выполняет метод после каждого тестового случая.
What does @BeforeAll in Java JUnit do?
Выполняет метод однократно перед всеми тестами (например, для сложной подготовки).
What does @Disabled in Java JUnit do?
Временно отключает тест и выводит комментарий в протоколе тестирования.
Was ist Failure in JUnit?
Tritt auf, wenn ein Testfall fehlschlägt, was auf einen Fehler in der Implementierung der Anwendung hinweist.
Wie kann man die Laufzeit eines Tests in JUnit überprüfen?
Mit der Angabe eines Timeouts kann man die maximale Ausführungszeit eines Tests festlegen. Beispiel: @Test(timeout = 500) sorgt dafür, dass der Test fehlschlägt, wenn er nicht innerhalb von 500 Millisekunden abgeschlossen ist.
Warum sollte man einen Testfall als @Disabled annotieren und nicht einfach auskommentieren oder löschen?
Das Auskommentieren wirkt sich nicht auf Refactorings aus, und das Löschen entfernt den Test vollständig, was problematisch ist, wenn der Testfall später wieder relevant wird.
Warum ist es wichtig, Anwendungscode und Testcode in JUnit voneinander zu trennen?
Die Trennung von Anwendungscode und Testcode ermöglicht eine klare Struktur, sodass Testfälle in einer eigenen Klassenhierarchie erstellt werden können.
Welche Vorteile bietet die Annotation @BeforeAll in JUnit?
ermöglicht es, Vorbereitungen einmalig vor allen Tests durchzuführen, was nützlich ist, wenn zeitaufwendige Operationen wie das Erstellen von Objekten oder das Herstellen einer Datenbankverbindung erforderlich sind. Dies spart Zeit im Vergleich zur Ausführung vor jedem einzelnen Test.