5.1 Einsatz und Überblick über dynamische Verfahren
Wie werden sie noch genannt?
Was passiert generell bei dynamischen Tests?
Was sind sie für Maßnahmen bzw. nennt man sie?
testende Verfahren, SW-Test, Test
Programmcode ausgeführt, konkrete Eingabewerte übergeben und das Verhalten bzw. das erzeugte Ergebnis bewertet
diagnostische Maßnahmen
Teststufen
Wie erfolgen sie?
Ab wann erfolgen Teststufen?
Welche Teststufen gibt es?
Was bestimmt welche Qualitätseigenschaft beim Testen im Fokus steht?
entwicklungsbegleitend
Ab dem ersten SW-Artefakt
Komponententest, Integrationstest, Systemtest, Abnahmetest
QZ und aktuelle Teststufe
Testfall
Was ist ein Testfall grob gesagt?
Aus welchen Elementen besteht er mindestens?
Handlungsanweisung
Mindestens:
Vorbedingungen,
die vor Prüfschritt sichergestellt werden müssen;
Testdaten bzw. Testaktionen,
die während des Prüfschrittes eingegeben bzw. durchgeführt werden;
Nachbedingungen,
deren Erfüllung nach Prüfschritt geprüft wird
beschreibende Daten zum Testfall,
wie Name, ID, betreffende Komponente, Funktion oder Eigenschaft, die geprüft wird, Anwendungsfall oder Name des Erstellers.
(Zum Zweck der Dokumentation, Reproduzierbarkeit, Nachvollziehbarkeit)
Testfallerstellung
Wie werden Testtechniken unterschieden?
Was kann dabei unterschieden werden?
Anhand der Art und Weise, wie Testfälle erzeugt werden
Black-Box-Test
White-Box-Test
Black-Box-Test (Verhaltenstests)
Definition
Merkmale
Beispiele
Definition:
Testverfahren, bei dem Testfälle ausschließlich auf Basis der Anforderungen und Spezifikationen erstellt werden, ohne Kenntnis der internen Struktur oder des Codes.
Merkmale:
Keine Kenntnis des Programmiercodes nötig
Testet das Verhalten des Systems aus Anwendersicht
Beispiele für Methoden:
Äquivalenzklassenbildung
Grenzwertanalyse
Use-Case-Tests
Ziel
Fokus bzw Mittel, um zu testen
Vorgehen des Prüfers um einen Testfall zu erstellen?
Was wird geprüft?
—> Für welche Testfälle wird der BbT eingesetzt?
Vorteil
Was ist für Black-Box-Test von zentraler Bedeutung?
—> Erläutere
Prüfung aller in der Spezifikation geforderten Funktionen und Eigenschaften zu einem System oder einer Systemkomponente
Fokus auf Eingaben und erwartete Ausgaben -> Was ist das Ergebnis?
1. Tester liest und interpretiert die Spezifikation.
2. Erstellt anhand Interpretation Testfälle und führt diese aus
3. Beurteilung Testergebnisse
Zusammenspiel verschiedener Systemkomponenten, da der Fokus auf Erfüllung der geforderten Funktionen liegt
—> Einsatz Integrations-, System- und Abnahmetests
anwendernah
Spezifikation
Auf Basis der Spezifikation wird
der Grad der Testabdeckung bestimmt;
der Testfall erstellt
Testergebnisse beurteilt
White-Box-Test (Strukturtest)
Merkmale (Was wird überprüft? Was ist dazu erforderlich? Was testet ein Testfall?)
Definition: Testverfahren, bei dem Testfälle basierend auf der internen Struktur, dem Aufbau und dem Quellcode des Systems erstellt werden.
Fokus auf die Überprüfung von Kontrollflüssen, Pfaden und Bedingungen
Kenntnis des Codes erforderlich
Testet interne Logik und Struktur
Pfadüberdeckung
Anweisungsüberdeckung
Bedingungsüberdeckung
Vorgehen
—> Wer nimmt die Rollen Entwickler und Tester ein?
Zeitpunkt
möglichst große Abdeckung der im Programmcode implementierten Anweisungen und Kontrollstrukturen (wie if, while, for, switch),
1. Teil des Programmcodes implementieren
2. Analyse Codestruktur
3. Auf dieser Basis werden dann Testfälle formuliert (möglichst große Abdeckung)
4. Nach der Ausführung werden die Ergebnisse ausgewertet und bei Bedarf der Programmcode angepasst, bevor erneut getestet wird.
—> selbe Person
begleitend zur Implementierung und bei Komponenten- und Integrationstests
Testabdeckung
Abhängigkeit des Messwerts
Dies ist das Maß wie vollständig die Menge von Testfällen das System testet.
Der konkrete Messwert ist abhängig von der Art des Tests und der gewählten Technik der Testfallerstellung.
keine vollständige (nicht möglich), sondern eine kostenoptimale Qualitätssicherung
Auswahl von Testfällen
Was ist das Testen immer?
Warum
Was kann nicht nachgewiesen werden?
Was ist die Herausforderung?
Stichproben
unendliche viele Eingabewerte —> unendlich viele Zustände
Korrektheit
Auswahl geeigneter Testfälle und Testdaten, damit mit möglichst wenig Aufwand möglichst hohe Testabdeckung erreicht werden kann.
5.2 Anwendungsfallbasierte Testfallerstellung
Woraus werden die anwendungsfallbasierten Testfallerstellungen abgeleitet?
Nenne ein Beispiel
Wie viele Testfälle sollten zu wie vielen Anwendungsfällen erstellt werden?
Wie können diese spezifiziert werden?
aus den fachlichen Anwendungsfällen
Use-Case-Diagramme
mindestens ein Testfall zu jedem Anwendungsfall
mit Aktivitätsdiagrammen
Vorgehen bei der Testfallerstellung
Nenne die Kriterien zur Auswahl relevanter Testfälle
Was kann anhand dieser Kriterien noch getestet werden?
Wertbeitrag:
Wie hoch ist der Beitrag dieser Funktion zur Wertschöpfungskette?
Nutzungshäufigkeit:
Wie viele Nutzer greifen wie häufig auf die Funktion zu?
Schadenspotential:
Welcher Schaden kann durch nicht identifizierte Fehler in der Funktion entstehen?
Typische Fehler:
Welche Funktionen bergen häufig Fehler in der Umsetzung? Wo sind die typischen Schwachstellen bei vergleichbaren Alt- oder Konkurrenzsystemen?
Geforderte Testabdeckung:
Welcher Grad der Testabdeckung ist für die fachliche Ebene tatsächlich gefordert?
Funktionen
Nenne die Kriterien für die geforderte Testabdeckung von Funktionen
Jede Funktion wird mindestens 1 x aufgerufen.
Zweigüberdeckung
Jeder Kontrollflusspfeil wird mindestens 1 x durchlaufen.
Jede Bedingung wird mindestens 1 x zu WAHR und 1 x zu FALSCH ausgewertet.
Pfadtest
Jeder mögliche Pfad durch den Use Case wird vollständig („am Stück“) durchlaufen, dabei werden mögliche Schleifen berücksichtigt.
5.3 Äquivalenzklassenbildung und Grenzwertanalyse
Äquvalenzklassenbildung
Was ist das?
Welcher Vorteil ergibt sich daraus?
Einsatz
Nenne Beispiele
Worin liegt der Unterschied zur Mathematik
Technik zur Auswahl konkreter Testdaten.
Dabei werden alle möglichen Eingabewerte, die zu einer Funktion gemacht werden können (zu gleichem Systemverhalten führen), in sogenannte Äquivalenzklassen eingeteilt.
Nicht alle Eingabewerte testen, sondern nur jeweils ein beliebig ausgewählter Vertreter aus jeder Äquivalenzklasse
—> weniger Testdaten pro Testfall
Grundsätzlich für alle Tests, in denen Daten übergeben oder Funktionen aufgerufen werden
Eine oder mehrere Bedingungen, die erfüllt werden müssen
Festgelegter Wertebereich
Anzahl von Elementen einer Menge ( Anzahl der Werte)
Auswahl Elemente einer Menge, die jeweils unterschiedlich behandelt werden
Testdaten müssen nicht disjunkt sein
Erläutere das Vorgehen bei der Testfallerstellung
Äquivalenzklassen für jeden Eingabeparameter der Funktion bzw. jedes GUI-Element der Dialogmaske bestimmt und eindeutig gekennzeichnet.
Testfälle erstellen, mit denen alle gültigen Äquivalenzklassen abgedeckt werden
—> Ziel: möglichst viele Äquvalenzklassen in möglichst wenig Testfälle
Testfälle erstellen, mit denen alle ungültigen Äquivalenzklassen abgedeckt werden
—> Unterschied: pro Testfall nur eine ungültige Äquivalenzklasse
—> einfachere Identifizierung bei Fehlschlag
Erstellen konkreter Eingabedaten auf Basis der ausgewählten Äquivalenzklassen für jeden Testfall
Nenne die Vorteile
Nenne die Nachteile
Vorteile
einfache Technik zur Ermittlung von Testdaten und Testfällen
Einsatz für jede technische oder fachliche Funktion, die Eingabedaten erwartet
einfache Erstellung der Testfälle als auch eine intuitive Dokumentation aufgrund Tabellen
Nachteile
Keine Berücksichtigung fachlicher Abhängigkeiten
ungeeignet für Komponenten/ Systeme, deren Verhalten von internen Zuständen abhängig ist
Welche Annahme liegt ihr zugrunde?
Wie wird sie daher oft eingesetzt?
Was wird bei der Erstellung von Testfällen mit der Grenzwertanalyse gezielt berücksichtigt?
—> Was bedeuted das konkret?
Was wird bei der Kombination zusätzlich gemacht?
—> Folge?
—> Wie kann man diese abfedern?
Technik zur Auswahl von konkreten Eingabedaten
Beobachtung, dass Softwarefehler häufig in dem Grenzbereich liegen, der den Übergang von gültigen zu ungültigen Eingabewerten darstellt, d. h. an den Grenzen von Äquivalenzklassen
in Kombination mit der Äquivalenzklassenbildung
Berücksichtigung gültiger und ungültiger Werte, die an den Grenzen von Äquivalenzklassen liegen.
jeweils ein Vertreter der Äquivalenzklasse im mittleren Wertebereich als Testdaten
—> mehr Testfälle
—> Einsatz verschiedener Grenzwerte, um Menge der Testfälle niedrig zu halten
5.4 Zustandsbasierte Testfallerstellung
Bei welchen Systemen wird sie eingesetzt?
Nenne Beispiele für:
technisch
fachlich
Für welche Testmethoden kann sie eingesetzt werden?
Was Prüfen die Testfälle?
bei Systemen oder Systemkomponenten eingesetzt, deren Verhalten maßgeblich durch einen internen fachlichen oder technischen Zustand gesteuert
- fachlich: Phasen in Lebenszyklen von Geschäftsobjekten (wie: beantragt, angenommen, abgelehnt) oder Prozessen (wie: eröffnet, Gutachten beauftragt, Schaden bewertet, Schaden reguliert)
- technisch: interne Zustände von Systemkomponenten; Protokollen an technischen Schnittstellen
für White-Box-Tests als auch für Black-Box-Tests eingesetzt
- Ob definierte Zuständen über die Zustandsübergänge erreicht werden
—>explizit auch die Nicht-Unterstützung von nicht-vorgesehenen Zustandsübergängen durch das System geprüft.
Erstellen einer Zustandsübergangstabelle
Ausfüllen der Tabelle
Fehlerzustände in Tabelle eintragen
Testfälle aus Tabelle ableiten
- leichte Anwendung —> weit verbreitet
- Zustandsübergangstabellen: Testfälle leicht ableiten & Testabdeckung veranschaulichen
Zustandsübergangstabelle bei zuvielen zu testenden Zuständen schnell unübersichtlich
fachliche Funktionen, die ihre Zustände nicht ändern werden vergessen
5.5 Erstellung von Zufallstestdaten
Welche Testdaten werden erzeugt?
Nenne Beispiele für den Einsatz
Welches Grundprinzip zur Testdatenerstellung gilt?
Nenne konkrete Beispiele welche Daten erzeugt werden können
Nenne Vorteile
Nenne Nachteile
Testdaten, die als Eingabewerte für zu testende Funktionen genutzt werden
Beispiele:
Test von Benutzeroberflächen mit vielen Eingabeelementen
für das Testen des Datenaustausches über technische Schnittstellen
Erzeugung zufälliger Werte im Rahemn eines gegebenen Wertebereichs von EIngabeparametern
- Grenzen von Wertebereichen mit der Äquivalenzklassenbildung ermitteln und die Festlegung der konkreten Eingabewerte über Zufallstestdaten erfolgen
- komplexe Zufallstestdaten auf Grundlage bereits bestehender Testdatensätze
Vorteile:
generieren vieler verschiedener Testdatensätze mit geringem Aufwand
durch automatische Erzeugung durch Testdatengenerator können menschliche Fehler ausgeschlossen werden
keine Erzeugung realistischer Daten
—> Auwand Prüfung auf Nutzen individuell zu entscheiden
—> Häufig Ergänzung, nicht als einzige Technik ausreichend
Last changedan hour ago