6.1 Aktivitäten zum methodischen Testen
Nenne die Teststufen
Nenne die Aktivitäten zum methodischen Testen
Ist die Durchführung abhängig oder unabhängig?
Wie lange dauert ein Test?
Durchführung ist unabhängig der Teststufe zu jedem Test
Unterschiedlich, je nach Komplexität
Testanforderungsanalyse
Zweck
Ergebnis
Bestimmung Qualitätsziele bzw. der zu erreichende Qualitätsgrad
Beschreibung, welche Systemfunktionen und Systemeigenschaften getestet werden
grobe Beschreibungen der Testfälle oder des Testgegenstandes, ohne dabei auf Details zum Ablauf oder zu den Testdaten einzugehen.
Testplanung
Bei welchem Test ist diese Aktivität am stärksten ausgeprägt?
—> Warum?
Fragen, die bei der Testplanung geklärt werden
Systemtests
—> Komplexe Testmgebung, da Test in prduktnaher Umgebung
Testfallspezifikation
Testfälle erstellt, beschrieben, später ausgeführt
Detaillierte Beschreibung:
Zweck des Testfalls;
Testgegenstände;
Zustand des Systems vor und nach Testausführung;
Art und Struktur der Testdaten;
benötige Hard- und Softwareumgebung;
benötigtes Personal sowie
Abhängigkeiten zu anderen Testfällen.
Testdatenerstellung
Zeitpunkt
Benötigte Menge
Nenne Quellen für Testdaten
Verbunden mit Testfallspezifikation
Testdatensätze, die zur Durchführung der spezifizierten Testfälle benötigt werden
Abhängig von Spezifikation und Teststufe
—> Je höher die Stufe, desto komplexer
Quellen
Architekturbeschreibung
Spezifikation
Programmcode
Produktionsdaten
Testdatenbestand (Erweiterbar, Wiederverwendbarkeit)
Testausführung
Durchführung
was ist ein Ticketsystem/ Bugtracker
Ausführung der Testfälle unter Verwendung der Testdaten und Protokollierung der Ergebnisse
Auswertung anhand Prtokoll, ob Qualitätsgrad mithilfe von Ticketsystemen/ Bugtracker
—> identifizierte Fehler in Mängelliste festgehalten
manuell
automatisch
Ausfürhung
Mensch
Tools
Kosten
Personal, Zeit
Lizenz
Anwendung
explorative tests, Usability-Test
alle Teststufen
Systeme zur Unterstützung der Dokumentation, Bewertung und Behebung von Softwarefehlern.
Testauswertung
Testergebnisse auswerten und Qualität bewerten
Grundlage für Entscheidung, ob Qualität erreicht
(Z.B. Auslieferung, Quality Gate passieren oder nacharbeiten)
6.2 Komponententest/ Modultest/ Unit-Test
Wie wird die Implementierung eines SW-Systems ermöglich?
Was ist ein Komponententest?
Zerlegung des Systems in logische Bestandteile
Separate Implementierung jeder Komponente
—> Integration in System nach Fertigstellung
Prüfung auf Einhaltung Qualität während oder nach Integration
Isolierte Prüfen von einzelnen SW-Bestandteilen
Testautomatisierung mit Unit-Tests
Warum werden Unit-Tests erstellt und durchgeführt?
Wann werden sie durchgeführt?
Was ist das Ziel?
Sind Unit-Tests Black oder White-Box-Tests?
Was testen sie?
Welche Eigenschaften werden für Unit-Tests gefordert?
Prüfung einzelner Funktionen technischer Klassen und Komponenten auf richtige Ausführung
Vor Zusammenführung mit bereits bestehenden Programmcode
möglichst große Testabdeckung der Anweisungen und Kontrollstrukturen im erstellten Programmcode
White-Box-Tests,
Anweisungen, Bedingungen oder Pfade
Eigenschaten
Reproduzierbarkeit
durch Verwendung fest def. Tesdaten
Unabhängigkeit
keine Reihenfolge, jeder Test eigene Vorsorge für benötigte Vorbedingungen
Regressionsfähigkeit
= Durchführung bereits bestandener Tests nach Änderung im Programmcode zum Ende einer Iteration
Vorgehensweise: Test Driven Development
Fokus
Ziel
Vorgehen
Vorgehensweise zur Erstellung von Unit-Tests, bei der die Testfälle bereits vor dem zu testenden Programmcode implementiert werden.
hohe Qualität und eine hohe Abdeckung des erstellten Programmcodes
„Testfall erstellen“ und „Programmcode erzeugen“ genau in der umgekehrten Reihenfolge
6.3 Integrationstest
Nenne die Voraussetzung für den Integrationstest
Welche Strategien gibt es und worin unterscheiden sie sich?
mindestens zwei Softwarekomponenten fertiggestellt
ob die Komponenten so zusammenarbeiten, wie es in der Spezifikation beschrieben wurde
usammenspiel der Komponenten über deren technische Schnittstellen (Funktionen, Daten)
Bottom-up, Top-down und By-Value vorgestellt.
—> Unterschied in der Reihenfolge der Integration und Test von Komponenten
Treiber und Dummies
Was ist ein Treiber
Was ist ein Dummie
Warum werden sie eingesetzt?
Wie werden sie eingesetzt?
Das sind Softwarefragmente, die das Aufrufen anderer Komponenten simulieren.
Wenn nicht alle Komponente für einen SW-Test fertig sind
4.
Bottom-Up-Strategie
Grundprinzip
Fehlererkennung
+
-
Anwendungsbereich
Integration beginnt mit den untersten, fundamentalen Modulen und arbeitet sich nach oben vor.
Fehler in den grundlegenden Funktionen werden früh erkannt und behoben.
Eine stabile, gut getestete Basis wird früh geschaffen
Frühe Sichtbarkeit des Gesamtsystems ist nicht gegeben.
Projekte, bei denen die untersten Ebenen (z. B. Datenbanken) kritisch sind und zuerst stabil sein müssen.
Bottom-Down-Strategie
Integration beginnt mit den obersten, steuernden Modulen und arbeitet sich nach unten vor.
Schnittstellenfehler zwischen den Hauptkomponenten werden früh entdeckt.
Frühzeitig existiert ein lauffähiger Prototyp, der Feedback zur Benutzeroberfläche ermöglicht.
Kritische, tiefergelegte Module werden erst spät getestet.
Projekte, bei denen die Benutzeroberfläche und die allgemeine Struktur früh validiert werden müssen.
By-Value-Test
Integration basiert auf der Übergabe von Daten an Funktionen, die mit einer Kopie des Werts arbeiten.
Fokus liegt nicht auf der Integration von Modulen, sondern auf der korrekten Datenübergabe, um unerwünschte Nebeneffekte zu vermeiden.
Sicherheit, da eine Funktion den ursprünglichen Wert einer Variable nicht verändern kann.
Keine direkte Strategie zur Integration von Systemen. Die Überprüfung auf korrekte Datenübergabe muss gewährleistet sein.
Programmierung auf Modulebene, um die Datenintegrität zu gewährleisten.
Disskussion der verschiedenen Integrationsstrategien
Bottom-up & Top-down
By-Value
Bottom-up & Top-down:
Oft nur Idealmuster, in der Praxis selten in Reinform anwendbar.
Zu starr, da Komponenten oft nicht wie geplant fertig werden.
Bieten keine flexible Reaktion auf Projektrisiken
By-value
Bietet mehr Flexibilität.
Ermöglicht es dem Team, auf geänderte Situationen zu reagieren.
Treiber und Dummies können bei Bedarf zum Testen erstellt werden.
Passt sich dem tatsächlichen Projektverlauf an.
Einsatz von Dummy-Komponenten
Nenne die Vorteile
Zweck:
Ermöglicht anderen Entwicklungsteams, ihre eigenen Komponenten zu testen, bevor die echte Komponente fertig ist.
Vorteile:
Frühe Tests: Tests können jederzeit durchgeführt werden, ohne auf die Fertigstellung der Original-Komponente warten zu müssen.
Aktualität: Das verantwortliche Entwicklungsteam pflegt den Dummy, sodass er immer dem aktuellen Entwicklungsstand und den Schnittstellen-Änderungen entspricht.
Flexibilität: Dummies können sowohl als Treiber (um andere Komponenten zu testen) als auch als Dummies (als Ersatz für noch nicht fertige Komponenten) eingesetzt werden.
6.4 Systemtests
Testarten
Herausforderungen
System als Ganzes testen
Überprüfung, ob das System als Ganzes die spezifizierten Anforderungen erfüllt
Funktionstests, Performancetests und Lasttests
originalgetreue Nachbildung der Produktivumgebung des Kunden. Dazu zählen neben der …
… Hardware und Softwareumgebung, in der das System betrieben wird, die
Softwaresysteme, zu denen das zu testende System technische Schnittstellen hat, eine
realistische Auslastung und realistisches Nutzerverhalten ebenso wie
möglichst echte Datensätze.
originalgetreuen Datensätzen, die gleichzeitig den Vorschriften des Datenschutzes entsprechen
Funktionstests
Abgrenzung
Vorgehensweise
Auswertung
Ziel: Überprüfung, ob das Gesamtsystem die funktionalen Anforderungen aus Sicht des Anwenders erfüllt.
Abgrenzung: Testet nicht die Verbindung einzelner Komponenten (wie beim Integrationstest), sondern das System als Ganzes.
Vorgehensweise: Das System wird als Black Box betrachtet. Man prüft nur, ob die erwartete Ausgabe zur Eingabe passt, ohne die internen Abläufe zu kennen.
Durchführung:
Eingaben erfolgen über die Benutzeroberfläche oder Systemschnittstellen.
Umsysteme (andere Systeme, mit denen das zu testende System verbunden ist) sollen echt sein, keine Dummies.
Auswertung: Erfolgt anhand des sichtbaren Systemverhaltens (z. B. UI-Ausgaben, Dokumente, Datenbankänderungen oder Logdateien).
Performancetest
Grundgedanke
Voraussetzung
Wozu dienen Performancetests noch?
Ziel: Prüfen, wie sich ein System unter Belastung verhält und ob es die spezifizierten Leistungseigenschaften erfüllt.
Grundgedanke: Reduzierung des Risikos bei der Inbetriebnahme, da das Verhalten des Systems in der späteren Produktivumgebung simuliert wird.
Voraussetzungen:
Das System muss vollständig integriert und auf der echten Ziel-Hardware installiert sein.
Die Hard- und Softwareumgebung muss exakt nachgebildet werden, da schon kleine Änderungen das Ergebnis verfälschen können.
Die erforderliche IT-Infrastruktur (Speicher, Rechenzeit etc.) und das nötige Personal müssen verfügbar sein.
Service Level Agreements (SLAs): Performancetests dienen auch dazu, zu überprüfen, ob die im Servicevertrag zugesicherten Antwortzeiten oder Verfügbarkeiten eingehalten werden.
6.4 Systemstests
Performancetests
Was sind Indikatoren fpr die Leistungsfähigkeit von SW-Systemen?
Latenz: Die Zeit von einer Anfrage bis zur Antwort (z.B. Ladezeit nach einem Klick).
Durchsatz: Die Verarbeitungsgeschwindigkeit von Daten (z.B. Anzahl der bearbeiteten Bestellungen pro Minute).
Transaktionsrate: Die Verarbeitungsgeschwindigkeit von komplexen Datenänderungen (z.B. Anzahl der Überweisungen pro Minute).
Lastetsts (Stresstests)
Methoden
Werkzeuge
Ziel: Systemverhalten unter extrem hoher Belastung und bei begrenzten Ressourcen prüfen.
Methoden:
Ressourcenentzug: Künstliches Verringern von Arbeits- oder Festplattenspeicher, Netzwerkbandbreite oder Rechenleistung.
Lasterzeugung: Simulation von sehr vielen gleichzeitigen Nutzern, großen Datenmengen oder Transaktionen.
Beobachten, wie das System auf Überlast reagiert.
Feststellen, ob es zu Datenverlusten oder Inkonsistenzen kommt.
Prüfen, ob sich das System nach dem Hinzufügen von Ressourcen wieder stabilisiert.
Wichtige Erkenntnisse:
Ergebnisse liefern Indikatoren, die später für das Monitoring im laufenden Betrieb genutzt werden können.
Erforderliche Werkzeuge:
Lasttests erfordern zwingend den Einsatz spezieller Testwerkzeuge, besonders zur Simulation vieler Nutzer.
Die Einrichtung dieser Tools ist oft ein eigenes kleines Projekt.
Sicherheitstest (Schützt vor Cyberangriffen
Usability-Test (Benutzerfreundlichkeit)
Wiederinbetriebnahme (Stellt System nach Ausfall wieder her)
6.4 Systemtest
Regressionsfähigkeit vonn Systemtests
Definition
Testfälle, die bereits erfolgreich durchgeführt worden sind und nach einer Anpassung des Systems erneut durchgeführt werden
evolutionäre SW-Prozess, bei jedem neuen Release
Automatisisierung, Dokumentation
6.5 Abnahmetest (Akzeptanztest)
Abgrenzung zum Systemtest
Ergbenis
fertige System beim Auftraggeber installiert und unter den tatsächlichen Betriebsbedingungen getestet
System aus Kundensicht die vertraglich vereinbarten Leistungsmerkmale aufweist
Durchführung durch eine andere Organisation als die, die das System entwickelt hat
Annahme oder Ablehnung
Vergleiche Komponenten-, Integrations- und Systemtests miteinander
Kriterium
Komponententest (Unit-Test)
Integrationstest
Systemtest
Überprüft die korrekte Funktion einer einzelnen, isolierten Komponente (z.B. einer Methode oder Klasse).
Überprüft das Zusammenspiel mehrerer Komponenten (Fokus auf Schnittstellen).
Überprüft das gesamte System als Ganzes aus Benutzersicht.
Umfang
Eine kleinste logische Einheit des Codes
Mehrere miteinander interagierende Komponenten.
Das vollständige, integrierte Softwaresystem.
Wird vom Entwickler selbst durchgeführt, oft im Rahmen von TDD.
Wird vom Entwickler oder einem dedizierten Test-Team durchgeführt.
Wird von einem unabhängigen Test-Team durchgeführt.
Beispiel
Testen einer Methode, die zwei Zahlen addiert.
Testen der Interaktion zwischen einer Logik-Klasse und einer Datenbankverbindung.
Testen, ob der Bestellprozess im Webshop von Anfang bis Ende funktioniert.
Frage
"Funktioniert dieser Baustein korrekt?"
"Arbeiten diese Bausteine gut zusammen?"
"Erfüllt das gesamte Produkt die Anforderungen?"
Wann?
Während der Entwicklung (fortlaufend).
Während der Entwicklung und Integration.
Nach der Fertigstellung des gesamten Systems.
Automatisierung
Sehr hohe Automatisierung möglich.
Hohe bis mittlere Automatisierung.
Meist manuell, aber auch automatisierte Tests möglich.
Last changed19 days ago