2 SW-ELebenszyklus: Aufzählungen Flashcards
SW-Entwicklungslebenszyklus-Modelle &
Testen
LZ
Testen findet statt im Kontext
andere Aktivitäten SW-Entwicklung
Unterschiedl. SWELZ-Modelle
=> unterschiedl. Testvorgehensweisen
Für erfolgreiche Integration Test in SW-Entwicklungsprozess
=> Auswahl angemessene Testaktivitäten & Timing
<= Tester sollte mit gängigen SWELZ-Modellen vertraut sein
=> angemessene Testaktivitäten
Unabhängig von SWELZ-Modell:
Übergreifende Merkmale für
gutes Testen
Entwicklungsaktivität - zugehörige Testaktivität
stufenspezifische Ziele/ Fokus
Testaktivitäten beginnen so früh wie möglich.
- Testanalyse & -entwurf beginnen bereits während Entwicklungsaktivität
- Tester teil Diskussionen Anforderungen & Entwurf
- Tester teil Review von genannten AE sobald erste Entwürfe
Wasserfallmodell
sequenzielles Entwicklungsmodell
Testen
- einmalige Phase, also nur System-/Abnahmetest
- nach Abschluss von allen anderen Entwicklungsaktivitäten
Phasen Wasserfallmodell
Analyse
Entwurf
Implementierung
Test
Betrieb
V-Modell
Sequenzielles Entwicklungsmodell, das
Grundsatz des frühen Testens integriert.
=> Teststufen mit Bezug zu Entwicklungsphasen
= jede Entwicklungsaktivität
- korrespondierende Testaktivität, bzw. Teststufe
V-Modell:
Stufen & Testbasis
Dokumente einer Entwicklungsaktivität oft
TESTBASIS für dazugehörige Teststufen
Anforderungsdefinition:
- Testbasis Abnahmetest
Funktionaler Systementwurf:
- Testbasis Systemtest
Technischer Systementwurf:
- Testbasis Integrationstest
Komponentenspezifikation:
- Testbasis Komponententest
V-Modell:
Wichtigste Kennzeichen laut
Dojo
Entwicklungs- und Testaktivitäten getrennt, aber gleichwertig
“V” : Prüfaspekte Verifizierung & Validierung
Unterscheidung getrennter Teststufen
- jede Stufe testet gegen Artefakte jeweilige Entwicklungsphase
Inkrementelle Entwicklungsmodelle & Testen
Teststufen überlappen sich häufig,
- insb. Komponenten- und Systemtest
jedes Feature auf Weg zur Auslieferung
- idealerweise auf mehreren Teststufen getestet
schnelle Auslieferung Anreiz für Testautomatisierung
viele Inkremente => viele Regressionstests
Selbstorganisierende Team verändern
- Organisation von Tests &
- Beziehung zwischen Entwicklern & Testern
=> erfordern anderes Mindset der Tester
SWELZ-Modelle & Testen
Abhängig vom
Kontext des Projekts
- Teststufen, deren Varianten,
- Testaktivitäten
- kombinieren
- neu organisieren
Auswahl
SWELZ-Modelle im
Kontext
Kontext = Projekt- und Produkteigenschaften:
- Projektziele
- Art des Produkts
- Geschäftsprioritäten wie Time-to-Market
- Produkt- & Projektrisiken
- Voraussetzungen Kommunikation/ Zusammenarbeit innerhalb Team für iterative Entwicklung
Kombination
SWELZ-Modelle
Geschäftseinheiten
- Teil eines Projekts oder Programms
<=> unterschiedl. SWELZ
weitere Bsp. siehe Ausdruck Dojo-Folie
Kontext & Testen
kurze Zeit bis zur Markeinführung eines Produkts
=> Zusammenführen von Teststufen
Integration von Testarten in Teststufen
Kontext Projekt/ Produkteigenschaften
=> Teststufen und deren Varianten auswählen & kombinieren
Bsp. Kommerzielle Standardsoftware zur Integration in größeres System Teststufe Systemintegration: - Interoperabilitätstest Teststufe Abnahmetest: - Benutzertest - betrieblicher Test
Teststufen V-Modell: Übersicht
Komponententest
Integrationstest
Systemtest
Abnahmetest
Verantwortlichkeiten nach Teststufe
Komponententest:
- Entwickler
Integrationstest
- Entwickler für Komponentenintegration
- Tester für Systemintegration
Systemtest
- Tester
Abnahmetest
- Kunden
- Fachanwender,
- Product Owner
- Betreiber eines Systems
- andere Stakeholder
Teststufen: Aspekte
- Ziele: Überschneidungen, wichtig Zielerreichung jeweils pro Fokus der Teststufe
- Testbasis = AE, von denen Testfälle abgeleitet werden
- Testobjekt
- Typische Fehlerzustände & Fehlerwirkungen
- Spezifische Ansätze/ Testvorgehensweise & Verantwortlichkeiten
gemeinsame Ziele Teststufen außer Abnahmetest
(Komponenten-,
Integrations- und
Systemtest
- Risikoreduktion
- Verifizieren (nicht-) funktionale Verhaltensweisen gegen
Entwurf/ Spezifikationen - Vertrauen Qualität des TO schaffen
- Finden von FZ
- Verhindern, dass FZ an höhere Teststufen weitergegeben
(System: auch Produktion)
Komponenten- und Integrationstests:
Testziele
nur gemeinsame Testziele
- Komponenten-,
- Integration-,
- Systemtests
natürlich für TO
- jeweiliger Fokus Teststufe
Komponententest in agiler Entwicklung
Schreiben von
automatisierten Komponententestfällen
VOR
Anwendungscode
Bsp. testgetriebene Entwicklung/ test driven development/ TDD
- Beispiel für Ansatz “test first”
- Ursprung eXtreme Programming
- verbreitet in andere Formen der agilen & sequenziellen SWELZ-Modelle
Integrationstests:
Ausprägungen
in Funktion von
- Integrationsstufen
=> Testobjekte unterschiedlicher Größe
Komponentenintegrationstests
- Zusammenspiel SW-Komponenten
- Nach Test einzelne beteiligte Komponenten
Systemintegrationstests
- Zusammenspiel verschiedener SW-Systeme
- Zusammenspiel zwischen SW und HW
- Nach Systemtest einzelne beteiligte Systeme
Komponentenintegrationstests:
Merkmale
Fokus:
Interaktionen/ Schnittstellen zwischen
integrierten KOMPONENTEN
Durchführung nach Komponententests
Generell automatisiert
Iterative/ inkrementelle Entwicklung:
- Teil von continuous integration/ kontinuierlichen Integrationprozesses
Systemintegrationstests:
Merkmale
Fokus: Interaktion/ Schnittstellen zwischen - Systemen - Paketen - Microservices - externe Organisationen
Systemintegrationstests
in sequenzieller UND iterativer/ inkrementeller Entwicklung:
- nach Systemtest
- parallel zu Systemtestaktivitäten
Integrationstests:
Spezifische Ansätze
Fokus auf Integration/ Kommunikation zwischen Komponenten & Systemen
- NICHT Funktionalität einzelne Komponenten/ Systeme
Integrationsstrategien und -tests
Planung Integrationsstrategie & -tests VOR Entwicklung
=> Reihenfolge Entwicklung Komponenten/ Systeme erforderlich
für effizientes Testen
Integration inkrementell <=> “Big Bang”
=> Isolation von FZ vereinfachen
=> FZ früh zu erkennen
Kontinuierliche Integration/ continuous integration
- häufig automatisierte Regressionstests
- idealerweise auf mehreren Teststufen
Risikoanalyse der komplexesten Schnittstellen
=> Unterstützung Integrationstests
Systemtest <==>
- Komponententest
- Integrationstest:
Unterschiede
Komponenten- und Integrationstests:
- prüfen eher gegen technischen Spezifikationen
Systemtest:
Perspektive späterer Anwender