JUnit Flashcards

1
Q

Erklären können, warum automatische Softwaretests wichtig
sind

A

Zusammenfassend sind automatische Softwaretests wichtig, um die Qualität, Zuverlässigkeit und Skalierbarkeit von Software zu gewährleisten. Sie sparen Zeit und Ressourcen und ermöglichen es Entwicklern, sich auf andere wichtige Aufgaben zu konzentrieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

JUnit-Annotationen erklären

A

JUnit-Annotationen sind spezielle Markierungen, die in JUnit-Tests verwendet werden, um bestimmte Funktionen oder Verhaltensweisen anzugeben. Sie werden verwendet, um den Test-Runner zu informieren, wie der Test ausgeführt werden soll und welche Bedingungen erfüllt sein müssen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Softwaretests Aspekte

A
  • Erstellen von Testbeschreibungen / Testspezifikationen als
    Dokumentation oder als Code z.B. mit Junit
  • Durchführen von Tests (Automatisch und/oder manuell)
  • Dokumentation und Visualisierung der Testergebnisse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Unit Tests und Regressionstests

A

Unit Tests sind Tests, die einzelne Komponenten oder Funktionen einer Software isoliert überprüfen, um sicherzustellen, dass sie korrekt funktionieren. Regressionstests hingegen überprüfen, ob bereits getestete Funktionen nach Änderungen oder Updates weiterhin wie erwartet arbeiten, um Regressionen zu vermeiden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Unterschiede Automatisch vs. manuell

A

Unterschied liegt in der Effizienz und Wiederholbarkeit.
Automatisch: Werden Testskripte oder Testfälle erstellt, die von einem Testautomatisierungstool ausgeführt werden. Diese ermöglicht eine wiederholbare und effiziente Durchführung von Tests.
Manuelle: Tester führt die Testfälle manuell aus, beobachtet das Verhalten des Systems und überprüft, ob die erwarteten Ergebnisse erzielt werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vorteil Automatisch vs. manuell

A

Manuell: Zeitaufwändiger und fehleranfälliger jedoch flexibler und können komplexe Szenarien oder Benutzerverhalten besser simulieren. Sind nützlicher, um die Benutzerfreundlichkeit und das Benutzerverhalten zu überprüfen, da menschliche Tester in der Lage sind, subjektive Eindrücke zu erfassen.

Automatisierte: ermöglicht eine wiederholbare und effiziente Durchführung von Tests.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

JUnit 5 Ansätze

A
  • Zu jeder Klasse gibt es eine Testklasse
  • Testklasse besteht aus einzelnen Methoden, welche jeweils eine Test durchführen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Steuerung des Testprozesses

Methoden zur Vor- und Nachbearbeitung der Tests

A

@BeforAll: Methode wird einmal zu Beginn der Testreihe aufgerufen

@BeforeEach: Methode wird vor jedem Test aufgerufen

@AfterEach: Methode wird nach jedem Test aufgerufen

@AfterAll: Methode wird einmal am Ende der Testreihe aufgerufen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Best Practices: test-Ordner

A

Ein Test-Ordner ist ein Verzeichnis oder eine Datei, das speziell für die Durchführung von Tests erstellt wurde. Es dient dazu, Testfälle, Testdaten und andere Testressourcen zu organisieren und zu verwalten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Vorgehensweisen bei Test-Ordnern

A
  • Namenskonvention: Um einfache Identifizierung und Navigation ermöglichen
  • Strukturierung: hierarchische Test-Ordner
  • Versionierung: Versionskontrollen um Änderungen nachverfolgen und rückgängig machen zu können.
  • Dokumentation: Hilft anderen Teammitgliedern, die Tests zu verstehen und auszuführen
  • Testdatenmanagement: Testdaten im Separaten Ordner
  • Automatisierung: Test Automatisieren
  • Wartung: Test-Ordner regelmäßig aktualisieren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Test-driven development (TDD)

A
  • Bei der testgetriebenen Entwicklung kurz TDD schreibt man zuerst die Tests und implementiert
    dann die Klassen und Interfaces, wie sie in den Tests verlangt
    werden
  • Testgetriebene Entwicklung ist einer der wesentlichen
    Bestandteile von agilen Methoden zur Softwareentwicklung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly