LE 8 | TST - Objektorientiertes Testen und Test-Driven - IW [überarbeitet 150625 / IW] Flashcards
Wie lautet die Definition für Softwarequalität?
Definition Softwarequalität
Softwarequalität ist die Gesamtheit der Merkmale einer Software die sich auf die Anforderungen und dessen Eignung beziehen, festgelegte oder voraussgesetzte Erfordernisse zu erfüllen.
Was ist ein Softwaretest ?
- Softwaretest ist ein automatisiertes oder manuelles Verfahren zur Verifikation und Validierung einer Software
Nenne die Ziele von Softwaretests ?
- Qualität soll erhöht werden
- Risiko von Fehlern verringert (Fehler können niemals komplett ausgeschlossen werden)
- Konkrete Tests dienen dem Aufdecken spezifischer Fehler (Bug)
Welche Testebenen gibt es?
Testverfahren
-
Modul, Klasse, Methode
- Modultest, Klassentest, Unit-Tests
-
Komponente
- Komponententests
-
Schicht (z.B. MVC)
- Test der Subsysteme
-
Systemwelt
- Integrationstest
Was versteht man unter einem Black-Box Test?
- werden von Entwicklern geschrieben, die kein Wissen über die innere Funktionsweise, des zu testenden Moduls haben
- sichtbar für den Entwickler sind z.B. nur Methodensignaturen oder GUI’s
- Ziel ist es, die Übereinstimmung eines Softwaresystems mit seiner Spezifikation zu überprüfen
Was versteht man unter einem White-Box Test?
- Kenntnisse über die innere Funktionsweise des zu testenden Systems sind bekannt
- Ziel: Finden von Fehlern durch ablauforientierte Testfälle
Was versteht man unter einem Grey-Box Test?
- vereint Black-Box Test und White-Box Test zu einer Variante
- Zuerst wird der Test entwickelt, dann die Anwendung programmiert
Was versteht man unter Code Coverage ?
- Als Testabdeckung bezeichnet man das Verhältnis an tatsächlich getroffenen Aussagen eines Tests gegenüber den theoretisch möglich treffbaren Aussagen bzw. der Menge der gewünschten treffbaren Aussagen.
- Die Testabdeckung spielt als Metrik zur Qualitätssicherung und zur Steigerung der Qualität insbesondere im Maschinenbau und der Softwaretechnik eine große Rolle.
Was versteht man unter Mock-Objekten ?
- Objekte, die als Platzhalter für echte Objekte innerhalb von Modultests verwendet werden
- Mock-Objekte implementieren die Schnittstellen, über die das zu testende Objekt auf seine Umgebung zugreift, z.B. Datenbankschnittstellen
Was versteht man unter TDD (Test Driven Development) und wie ist der Ablauf?
TDD - Test Driven Development
- Zuerst wird der Testfall geschrieben (Grey-Box Test) und im Anschluss daran die Komponente
- Kommt aus XP
Der Zyklus des Testens und Programmierens schaut so aus:
- Wir entwerfen einen Test, der zunächst fehlschlagen sollte.
- Wir schreiben gerade soviel Code, dass der Test tatsächlich fehlschlägt.
- Wir schreiben gerade soviel Code, dass tatsächlich alle Tests durchlaufen.
Diesen Prozess wiederholen wir, solange uns weitere Tests einfallen, die unter Umständen fehlschlagen könnten, bis der Code schließlich seine durch die Tests spezifizierten Anforderungen erfüllt.
Welche TDD Vorteile gibt es ?
- Vorteile und Eigenschaften
- Fördert Tests die zeitnah zur Programmierung sind
- Tests sind automatisiert und beliebig oft validierbar
- Können in ein Build integriert werden
- Frühes Finden und Beheben von Fehlern ist meist günstiger als den Fehler später zu finden
- Entwickler-Denken ändert sich sobald die Programmierung des Tests voran geht. Code wird meist sauberer und fehlerfreier