lesson_4 Flashcards

(50 cards)

1
Q

Was ist der wesentliche Unterschied zwischen Software-Verifikation und Validierung?

A

Verifikation prüft ob das Produkt gemäß den Spezifikationen korrekt gebaut wurde (Build the product right) während die Validierung sicherstellt dass das richtige Produkt für die Kundenanforderungen erstellt wurde (Build the right product).

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

Welche Einschränkung formulierte Edsger W. Dijkstra bezüglich des Testens?

A

Programmtests können sehr effektiv die Anwesenheit von Fehlern zeigen aber sie sind gänzlich ungeeignet um deren Abwesenheit zu beweisen.

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

Was charakterisiert einen Unit-Test im Software-Testing?

A

Ein Unit-Test prüft einzelne isolierte Teile des Programmcodes wie Funktionen oder Methoden auf ihre korrekte Funktionalität.

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

Was ist das Ziel von Komponenten-Tests?

A

Komponenten-Tests zielen darauf ab die Schnittstellen einzelner Software-Komponenten auf ihre Korrektheit zu prüfen.

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

Wie unterscheiden sich Integrations-Tests von System-Tests?

A

Integrations-Tests prüfen das Zusammenspiel mehrerer verbundener Komponenten während System-Tests das vollständige integrierte Gesamtsystem validieren.

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

Was definiert einen Akzeptanztest (Acceptance Trial)?

A

Ein Akzeptanztest ist die Prüfung des finalen Systems durch den Käufer oder Endnutzer um die Einsatzfähigkeit unter realen Bedingungen zu bestätigen.

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

Was ist der Zweck von Regressionstests?

A

Regressionstests sind wiederholbare Tests die nach jeder Code-Änderung sicherstellen dass bestehende Funktionalitäten nicht durch neue Fehler beeinträchtigt wurden.

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

Wie definiert sich Test-driven Development (TDD)?

A

TDD ist ein Prozess bei dem Tests basierend auf Anforderungen erstellt werden bevor der eigentliche Programmcode geschrieben wird um diesen gegen die Tests zu validieren.

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

Was ist das Kernmerkmal von Black-Box-Tests?

A

Black-Box-Tests erfolgen ohne Kenntnis der internen Implementierung und basieren ausschließlich auf den definierten Schnittstellen und Anforderungen.

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

Was wird bei White-Box-Tests im Gegensatz zu Black-Box-Tests berücksichtigt?

A

Bei White-Box-Tests wird die interne Implementierung und die logische Struktur des Programmcodes explizit in die Testfallgestaltung einbezogen.

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

Was versteht man unter Gray-Box-Testing?

A

Gray-Box-Testing kombiniert Ansätze beider Welten indem zwar die Schnittstellen getestet werden aber auch Teilkenntnisse der internen Algorithmen in den Test einfließen.

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

Was ist der Fokus von nicht-funktionalen Tests?

A

Nicht-funktionale Tests prüfen Attribute wie Performance Antwortzeit Benutzbarkeit Stressresistenz Sicherheit und Stabilität des Systems.

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

Wie unterscheiden sich Performance-Tests von Stress-Tests?

A

Performance-Tests messen das Systemverhalten unter normaler oder hoher Last während Stress-Tests die Belastbarkeit an und über den Grenzen der Spezifikation prüfen.

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

Was ist das Prinzip des Mutation Testings?

A

Beim Mutation Testing werden absichtlich kleine syntaktische Fehler in den Code eingebaut um zu prüfen ob die vorhandene Test-Suite diese Änderungen erkennt.

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

Was ist der Unterschied zwischen statischen und dynamischen Tests?

A

Statische Tests analysieren den Code ohne Ausführung (zum beispiel Reviews oder Compiler-Checks) während dynamische Tests das Programm mit Eingabedaten ausführen.

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

Was charakterisiert einen Back-to-Back Test?

A

Hierbei werden zwei verschiedene Implementierungen derselben Anforderungen verglichen um durch Ergebnisdifferenzen Fehler aufzudecken.

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

Was ist das Ziel von Fuzz Testing?

A

Fuzz Testing bombardiert ein System mit zufälligen Daten um Abstürze Pufferüberläufe oder fehlerhafte Code-Assertionen zu provozieren.

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

Wie ist ein Testfall (Test Case) formal definiert?

A

Ein Testfall besteht aus einem Namen einem Satz von Eingabedaten inklusive Vorkonditionen und der Beschreibung der erwarteten Ausgabe sowie Postkonditionen.

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

Was umfasst eine Test-Suite?

A

Eine Test-Suite ist eine strukturierte Sammlung mehrerer zusammengehöriger Testfälle.

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

Welche vier Schritte umfasst das allgemeine Testmodell nach Sommerville?

A

Das Modell umfasst das Design der Testfälle die Vorbereitung der Testdaten die Programmausführung mit diesen Daten und den Vergleich der Ergebnisse mit den Testfällen.

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

Welches Mindset sollte ein Tester laut der Vorlesung gegenüber seinem Code einnehmen?

A

Ein Tester sollte sich als Feind des eigenen Codes betrachten um die Heuristik zur Identifikation kritischer Fehler zu maximieren.

22
Q

Was bedeutet Äquivalenzklassenbildung beim Black-Box-Test?

A

Eingabedaten werden in Klassen unterteilt bei denen davon ausgegangen wird dass das System sie funktional identisch verarbeitet um die Anzahl der Testfälle zu reduzieren.

23
Q

Warum sind Randwertanalysen (Edge Cases) so wichtig?

A

Fehler treten statistisch gehäuft an den Grenzen von Wertebereichen auf wie zum Beispiel bei leeren Listen maximalen Int-Werten oder Divisionen durch Null.

24
Q

Welche Arten von Edge Cases sollten bei Zeitberechnungen beachtet werden?

A

Wichtige Edge Cases sind Jahreswechsel Zeitumstellungen von Sommer- auf Winterzeit Zeitzonensprünge sowie der Schalttag am 29. Februar.

25
Was sind die Nachteile von rein zufälligen Tests?
Zufällige Tests bieten oft eine schlechte Abdeckung erzeugen hohe Redundanz und treffen selten die kritischen Randwerte (Edge Cases).
26
Was ist das Ziel der Anweisungsüberdeckung (Statement Coverage)?
Das Ziel ist sicherzustellen dass jede einzelne Zeile des Quellcodes durch mindestens einen Testfall ausgeführt wurde.
27
Was deckt die Zweigüberdeckung (Branch Coverage) ab?
Die Zweigüberdeckung stellt sicher dass jeder Zweig im Kontrollflussgraph (zum beispiel der True- und False-Pfad einer If-Anweisung) mindestens einmal durchlaufen wird.
28
Warum ist Bedingungsüberdeckung (Condition Coverage) oft schwierig zu erreichen?
Sie erfordert dass jede einzelne boolesche Teilbedingung eines Ausdrucks sowohl als wahr als auch als falsch evaluiert wird was bei komplexer Logik viele Testfälle benötigt.
29
Was versteht man unter Multiple Condition Coverage?
Dies ist die umfassendste Form der Überdeckung bei der alle möglichen Kombinationen von Teilentscheidungen innerhalb einer Bedingung getestet werden.
30
Warum ist eine 100-prozentige Pfadüberdeckung in der Praxis oft unmöglich?
Aufgrund von Schleifen die theoretisch unendlich oft durchlaufen werden können ist die Anzahl der möglichen Ausführungspfade oft unendlich groß.
31
Warum sollten Black-Box- und White-Box-Tests komplementär eingesetzt werden?
Black-Box-Tests validieren die Anforderungen während White-Box-Tests sicherstellen dass die interne Logik und Fehlerbehandlung des Codes robust ist.
32
Was ist der Zweck von Assertions im Programmcode?
Assertions dienen dazu Erwartungen oder Zustände direkt im Code zu prüfen und bei Verletzung sofort einen Fehler zu signalisieren.
33
Welche drei Phasen benötigt die Vorbereitung eines automatisierten Tests?
Ein Test benötigt ein Setup (Objektinitialisierung) einen Call (Funktionsaufruf mit Testdaten) und eine Assertion (Ergebnisvergleich).
34
Wofür werden Mockups im Testing-Prozess verwendet?
Mockups ersetzen noch nicht realisierte oder komplexe externe Komponenten wie Datenbanken oder Bezahldienste um isolierte Modultests zu ermöglichen.
35
Was ist der Vorteil von Szenariotests?
Szenariotests bilden reale Nutzerszenarien ab wodurch mehrere Anforderungen gleichzeitig im Kontext einer realistischen Story geprüft werden.
36
Warum sind Subsystem-Tests für die Performance-Analyse oft unzureichend?
Performance ist nicht linear skalierbar und das Zusammenspiel mehrerer Komponenten (zum beispiel Synchronisationseffekte) kann nur im Gesamtsystem korrekt bewertet werden.
37
Was versteht man unter einem Alpha-Test?
Ein Alpha-Test wird in einer frühen Phase mit einem kleinen Kreis erfahrener Nutzer durchgeführt um frühes Feedback zu generieren.
38
Was kennzeichnet einen Beta-Test?
Ein Beta-Test ist eine Veröffentlichung an eine größere Gruppe von normalen Nutzern um das System vor dem finalen Release unter Realbedingungen zu finalisieren.
39
Was ist eine Canary Release?
Bei einer Canary Release wird neue Software nur für einen kleinen Bruchteil der Nutzer ausgerollt um Auswirkungen auf Geschäftsmodell und Stabilität zu beobachten.
40
Was ist das Ziel eines A/B-Tests?
A/B-Tests präsentieren verschiedenen Nutzergruppen unterschiedliche Versionen um datenbasiert zu entscheiden welche Option eine bessere Akzeptanz oder Konversion erzielt.
41
Welche Kriterien bestimmen die Priorisierung von Testfällen?
Priorisiert wird nach hohem Schadenspotenzial vertraglichen Verpflichtungen finanziellem Durchsatz hoher Komplexität oder Häufigkeit der Nutzung.
42
Was beschreibt das Phänomen der Fehlermaskierung (Fault Masking)?
Ein Fehler kann die Existenz anderer Fehler verbergen sodass das Lösen eines Bugs plötzlich neue scheinbar unzusammenhängende Fehler sichtbar macht.
43
Warum ist Debugging kein Testing?
Testing identifiziert das Vorhandensein von Fehlern während Debugging der Prozess ist diese Fehler durch schrittweise Ausführung und Beobachtung zu lokalisieren und zu beheben.
44
Welche Rolle spielt ein Bug-Tracker im Qualitätsmanagement?
Ein Bug-Tracker organisiert die Erfassung Klassifizierung und Bearbeitung von Fehlermeldungen und dient als Kommunikationsplattform zwischen Nutzern und Entwicklern.
45
Was ist eine funktionale Äquivalenzklasse?
Sie bezieht sich auf die Segmentierung von Testfällen basierend auf Use-Cases Anforderungen oder spezifischen Methoden und Klassenassoziationen.
46
Welche Gefahr besteht bei unpräzisen Anforderungen für das Testing?
Unpräzise Anforderungen führen zu Unklarheiten bei der Definition von erwarteten Ergebnissen und erschweren die Validierung der Software-Korrektheit.
47
Was bedeutet Robustheit im Kontext von nicht-funktionalen Tests?
Robustheit ist die Fähigkeit eines Systems auch bei fehlerhaften Eingaben oder unvorhergesehenen Umgebungsbedingungen kontrolliert zu reagieren ohne abzustürzen.
48
Warum ist Dokumentation (wie Handbücher) eine Quelle für Testfälle?
Tests prüfen ob die Software tatsächlich so funktioniert wie es in den Manuals oder Schulungsvideos dem Nutzer versprochen wird.
49
Was ist ein wichtiger Aspekt beim Stress-Testing von Datenbanken?
Es wird geprüft ob die Datenbank unter erwarteter Maximallast die Datenkonsistenz wahrt und akzeptable Antwortzeiten liefert.
50
Was ist das Ziel von statistischen Tests?
Statistische Tests generieren Testdaten basierend auf der erwarteten Verteilung der realen Eingabedaten um ein realistisches Nutzungsprofil zu simulieren.