2 SW-ELebenszyklus: Aufzählungen Flashcards
SW-Entwicklungslebenszyklusmodell
LZ
Phasen eines SW- Entwicklungsprojekts
Arten von Aktivitäten pro Phase
wie Phasen und deren Aktivitäten
- logisch &
- zeitlich zueinander in Beziehung stehen.
SW-Entwicklungslebenszyklus-Modelle &
Testen
LZ
Testen findet im
Kontext der anderen Aktivitäten der SW-Entwicklung
Testen muss geeignet mit SWELZ-Modell
integriert werden
Jedes SWELZ-Modell
=> spezifische Testvorgehensweise
Tester sollte mit gängigen SWELZ-Modellen vertraut sein
=> angemessene Testaktivitäten
SWELZ-Modelle:
Übergreifende Merkmale für
gutes Testen
LANG
- Jede Entwicklungsaktivität - zugehörige Testaktivität
- Jede Teststufe: stufenspezifische Testziele
- Für Teststufe beginnen Testanalyse & Entwurf bereits während Entwicklungsaktivität
- Tester nehmen an Diskussionen zur Definition & Verfeinerung von Anforderungen & Entwurf teil
- Tester sind am Review von genannten AE beteiligt, sobald erste Entwürfe davor vorliegen
- Testaktivitäten beginnen so früh wie möglich.
SWELZ-Modelle:
Übergreifende Merkmale für
gutes Testen
KURZ
LZ
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
Sequenzielles Entwicklungsmodell
SW-Entwicklung als
- linearer
- sequenzieller Ablauf von Aktivitäten
= Phase im Entwicklungsprozess erst beginnen nach Abschluss vorheriger/ keine Überlappung
Sequenzieller Entwicklungsmodelle
- liefern SW mit kompletten Feature-Set
- typischerweise Monate oder Jahre für Auslieferung
Wasserfallmodell
LZ
sequenzielles Entwicklungsmodell
Testen
- einmalige Phase und damit nur System-/Abnahmetest
- nach Abschluss alle anderen Entwicklungsaktivitäten
Phasen Wasserfallmodell
LZ
Analyse
Entwurf
Implementierung
Test
Betrieb
V-Modell
LZ
Sequenzielles Entwicklungsmodell, das
Grundsatz des frühen Testens integriert.
=> Teststufen mit Bezug zu Entwicklungsphasen
= jede Entwicklungsaktivität
- korrespondierende Testaktivität, bzw. Teststufe
V-Modell:
Testbasis
LZ
Dokumente der Entwicklungsaktivitäten oft
Grundlage 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
Inkrementelles Entwicklungsmodell
LZ
SW-Features wachsen inkrementell an
<= Festlegung in Teilen von Anforderungen, Entwurf, Implementierung & Testen eines Systems
Jedes Iteration liefert lauffähige SW
= mit jeder Iteration wächst Teilmenge des gesamten Feature-Sets
Auslieferung lauffähige SW bereits nach Tagen oder Wochen, vollständige Menge Anforderungen/ Release-Set auch erst nach Monaten oder Jahren.
Inkremente
- Größe variiert
- Änderungen sowohl Änderungen an Leistungsmerkmalen früherer Iterationen als auch Änderungen am Projektumfang
Inkrementelle Entwicklungsmodelle: Beispiele
- Rational Unified Process: Iteration relativ lang (2 - 3 Monate)
- Scrum: Iteration eher (Stunden bis Wochen)
- Kanban: Länge Iterationen nicht zwingend festgelegt
- Spiralmodell: experimentelle Inkremente
Inkrementelle Entwicklungsmodelle & Testen
LZ
Teststufen überlappen sich häufig,
insbesondere Komponenten- und Systemtest
jedes Feature auf Weg zur Auslieferung auf mehreren Teststufen idealerweise 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
Auswahl & ggf. Kombination
SWELZ-Modelle im
Kontext
LZ
SWELZ-Modelle müssen im Kontext von Projekt- und Produkteigenschaften - ausgewählt und - angepasst werden.
Auswahl/ Anpassung SWELZ-Modell:
Faktoren
LZ
Projektziele
Art des Produkts
Geschäftsprioritäten wie Time-to-Market
Produkt- und Projektrisiken
SWELZ-Modelle & Testen
LZ
Abhängig vom
Kontext des Projekts
- Teststufen und/ oder
- Testaktivitäten
- kombinieren
- neu organisieren
Auswahl & ggf. Kombination
SWELZ-Modelle im
Kontext
Kontext von Projekt- und Produkteigenschaften:
- Unterschiedliche Produktrisiken von Systemen
- Viele Geschäftseinheiten können Teil eines Projekts oder Programms sein
=> Kombination aus sequenzieller & agiler Entwicklung - Zeit bis zur Markeinführung eines Produkts
=> Zusammenführen von Teststufen und/ oder Integration von Testarten in Teststufen - Voraussetzungen Kommunikation/ Zusammenarbeit innerhalb Team für iterative Entwicklung
Kontext & Testen
Kontext Projekt
=> Teststufen/ Testaktivitäten auswählen & kombinieren
Bsp. Kommerzielle Standardsoftware zur Integration in größeres System Teststufe Systemintegration: - Interoperabilitätstest Teststufe Abnahmetest: - Benutzertest - betrieblicher Test
Teststufen: Übersicht
LZ
Komponententest
Integrationstest
Systemtest
Abnahmetest
Teststufen: Eigenschaften
LZ
- (Spezifische Ziele: Ziele für alle Teststufen gleich, Zielerreichung jeweils pro Fokus der Teststufe notwendig)
- Testbasis = AE, von denen Testfälle abgeleitet werden
- Testobjekt
- Typische Fehlerzustände & Fehlerwirkungen
- Spezifische Ansätze & Verantwortlichkeiten
- Anforderungen an Testumgebung
Ziele Teststufen außer Abnahmetest
(Komponenten, Integrations- und Systemtest)
LANG
- Risikoreduktion
- Verifizierung, ob die funktionalen und nicht-funktionalen Verhaltensweisen des Fokus der Teststufe den Entwurf oder den Spezifikationen entsprechen
- Schaffen von Vertrauen in die Qualität des Testobjekts/ Fokus der Teststufe
- Finden von Fehlerzuständen
- Verhindern, dass Fehlerzustände an höhere Teststufen (System: auch Produktion)
Ziele Teststufen außer Abnahmetest
(Komponenten, Integrations- und Systemtest)
KURZ
LZ
- Risikoreduktion
- Verifizieren (nicht-) funktionale Verhaltensweisen Fokus entsprechend Entwurf/ Spezifikationen
- Vertrauen Qualität des TO/ Fokus der Teststufe schaffen
- Finden von FZ
- Verhindern, dass FZ an höhere Teststufen
(System: auch Produktion)
Komponenten- und Integrationstests:
Testziele
nur gemeinsame Testziele
- Komponenten-,
- Integration-,
- Systemtests
natürlich für TO
- jeweiliger Fokus Teststufe
Verantwortlichkeiten nach Teststufe
LZ
Komponententest:
- Entwickler
Integrationstest
- Entwickler für Komponentenintegration
- Tester für Systemintegration
Systemtest
- Tester
Abnahmetest
- Kunden
- Fachanwender,
- Product Owner
- Betreiber eines Systems
- andere Stakeholder
Komponententest:
Bezeichnung Bausteine..
LZ
.. abhängig von der Programmiersprache
Module => Modultest
Units => Unittest
Klassen => Klassentest
Komponententest:
Testbasis
LZ
- Feinentwurf
- Code
- Datenmodelle
- Komponentenspezifikationen
Komponententest:
Testobjekte
- Komponenten, Units oder Module
- Code und Datenstrukturen
- Klassen
- Datenbankmodule
Komponententest: Testumgebung
LZ
Ausführung Komponententests
<= speziellen Komponententestumgebung
= Unittest-Framework
= Testrahmen mit Treibern & Platzhaltern, der zusätzlichen Entwicklungsaufwand erfordert
Unterstützung Komponententests durch #
Entwicklungsumgebung
Komponententest:
Gängige FZ und FW
LZ
Funktionale Fehler:
- Berechnungsfehler…
nicht-funktionale Fehler:
- hoher Speicherverbrauch,
- schlechte Wartbarkeit,
- schlechte Performance
Strukturelle Probleme
- Datenflussprobleme
- Nicht korrekter Code und nicht korrekte Logik
Komponententest:
Fehlerberichte
Komponententest häufig ohne formales Fehlermanagement
Fehlberichte durch Entwickler
= Information für
- Grundursachenanalyse &
- Prozessverbesserung
Komponententest-Werkzeuge:
- häufig direkt in Entwicklungsumgebung integriert
- Anzeige: Überdeckung/ Code, der mit Unit test erreicht wurde, bzw. nicht
Komponententest in agiler Entwicklung
LZ
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
LZ
Ausprägungen in Funktion von
- Integrationsstufen
=> Testobjekte unterschiedlicher Größe
Komponentenintegrationstests
- Zusammenspiel SW-Komponenten
- Nach Komponententest
Systemintegrationstests
- Zusammenspiel verschiedener SW-System
- Zusammenspiel zwischen SW und HW
- Nach Systemtest 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
sowohl in in der sequenziellen als auch iterativen und inkrementellen Entwicklung:
- nach Systemtest
- parallel zu Systemtestaktivitäten
Integrationstests:
Testbasis
SW- und Systementwurf
Definitionen/ Spezifikationen von
- Schnittstellen
- Kommunikationsprotokollen
Architektur auf Komponenten- oder Systemebene
Nutzungsabläufe und Workflows
Sequenzdiagramme
Anwendungsfälle
Integrationstests:
Testobjekte
- Subsysteme
- Datenbanken
- Infrastruktur
- Schnittstellen
- APIs
- Microservices
Integrationstests: Typische FZ und FW Gemeinsam (Komponentenintegration & Systemintegration)
- Falsche Daten, fehlende Daten oder falsche Datenverschlüsselung
- Falsch angepasste Schnittstellen
- FW in Kommunikation zwischen Komponenten
- Nicht oder nicht ordnungsgemäß behandelte FW in der Kommunikation zwischen Komponenten
- Nicht korrekte Annahmen über Bedeutung, Einheiten oder Grenzen der Daten, die zwischen Komponenten hin- und hergereicht werden