Anforderungsdefinition
Formale Anforderung
Die Anforderung kann in unterschiedlich stark ausgeprägter Form erstellt sein
-
als Lastenheft
-
beschreibt die Gesamtheit der Anforderungen des Auftraggebers
-
Ziel fertige Anwendung zum Erzielen von Services/Produkten..
-
als Pflichtenheft
-
beschreibt konkret, in welcher Weise der Auftragnehmer die Gesamtheit der Anforderungen umsetzen will
-
Ziel funktionsfähige Software hinsichtlich Betrieb und Anwendungsziel
-
agile Requirements
-
Umsetzen von Kleinzielen
-
aus Aufteilen der Gesamtanwendung (Pflichten-/Lastenheftes)
-
aus punktuellen Erweiterungen oder als konkrete Fehlerbehebung auf Grundlage der Gesamtanwendung
-
aus Erweiterungen/Ausbaustufen der Anwendung (wiederum in Form von Lasten- und Pflichtenheft) auf Grundlage der Gesamtanwendung – evtl. mit deutlichen Anpassungen des Anwendungsverhaltens
Lastenheft
Das Lastenheft stellt quasi einen Vertrag seitens des Auftraggebers dar – er kennt die organisatorischen Notwendigkeiten, aber nicht unbedingt die technischen Umsetzungsmöglichkeiten.
-
Einführung
-
Beschreibung Ist- und Soll-Zustand
-
Beschreibung Schnittstellen
-
funktionale Anforderungen
-
nicht-funktionale Anforderungen
-
Risikoakzeptanz
-
Skizze Entwicklungszyklus und Systemarchitektur
-
Lieferumfang
-
Abnahmekriterium
Pflichtenheft
Das Pflichtenheft stellt quasi einen Vertrag seitens des Auftragnehmers dar – er kennt die organisatorischen Notwendigkeiten aus dem Lastenheft, und er kennt die technischen Umsetzungsmöglichkeiten.
agilen Requirements
Im agilen denkt man zwar grundsätzlich agil von Sprint zu Sprint, andererseits hat man eine langfristige Perspektive (Produktvision). Es gibt also ein Herunterbrechen (top-down) in der Form:
-
Produktvision
-
EPIC
-
UserStory
-
Sprint-Aufgabe
-
Umsetzungstask
Risikoanalyse
ISTQB: Bewertung von identifizierten Projektrisiken oder Produktrisiken um ihre Risikostufe zu bestimmen, typischerweise durch die Bewertung von Schadensausmaß und Eintrittswahrscheinlichkeit.
ISTQB (Risikobasiertes Testen): Ein Testvorgehen, bei welchem sich das Management, die Auswahl, die Priorisierung und die Anwendung von Testaktivitäten und Ressourcen an entsprechenden Risikotypen und Risikostufen orientieren.
Definition Testumgebung
ISTQB (Testumgebung): Eine Umgebung, die benötigt wird, um Tests auszuführen. Sie umfasst Hardware, Instrumentierung, Simulatoren, Softwarewerkzeuge und andere unterstützende Hilfsmittel.
ISTQB (Testobjekt): Die Komponente oder das System, welches getestet wird.
ISTQB (Testmittel): Alle Artefakte, die während des Testprozesses erstellt werden und die erforderlich sind, um die Tests zu planen, zu entwerfen oder auszuführen. Dazu gehören: Dokumente, Skripte, Eingabedaten, erwartete Ergebnisse, Prozeduren zum Aufsetzen und Aufräumen von Testdaten, Dateien, Datenbanken, Umgebungen und weitere zusätzliche Software- und Dienstprogramme, die für das Testen verwendet werden.
ISTQB (Testdaten): Daten die (z.B. in einer Datenbank) vor der Ausführung eines Tests existieren, und die die Ausführung der Komponente bzw. des Systems im Test beeinflussen bzw. dadurch beeinflusst werden.
ISTQB (Testmodell): Ein Modell, das die Testmittel beschreibt, die zum Testen einer Komponente oder eines zu testenden Systems genutzt werden.
Die Testumgebung besteht also aus der zu testenden Anwendung (dem Testobjekt) und den eingesetzten Mitteln (die Testmittel), um die Tests auszuführen. In der Definition der Testumgebung geht es um
Im Groben sind die Bestandteile
-
Testobjekt mit allen erforderlichen externen Anwendungen
-
die Testanwendung selbst als Software
-
die zugehörige Hardware mit erforderlicher Middleware (Datenbankserver, Applikationsserver, Programm-Runtime, ..)
-
die für die Testanwendung benötigten Partnersysteme, diese können je nach Teststufe gemockt werden oder müssen auf einem produktiven Stand sein
-
-
theken, Datenbanken, Skripte, User, ..)
-
ggf. kann eine harte Unterscheidung von Anwendungs- und betrieblichen Usern zu zwei Leitständen führen
-
Testobjekt mit allen erforderlichen externen Anwendungen
-
diese muss meist nur einmal definiert werden, wobei Ergänzungen vorkommen können
-
-
Testprogramme zur Vorbereitung, Durchführung und Kontrolle
-
Testdaten in spezifischen Repositories (Testdatenmanagement)
Testobjekt
Das Testobjekt kann in einer Pipeline von betrieblicher Seite aus zu Verfügung gestellt werden, denn das Testteam sollte das Testobjekt nicht beeinflussen und das Betriebsteam sollte hier schon erste Erfahrungen beim Aufbau der Anwendung sammeln.
Anforderungen an das Testobjekt
-
ein Testobjekt soll einerseits von der Produktivumgebung weitgehend getrennt sein, andererseits ihr weitgehen ähneln.
-
für verschiedene Teststufen können unterschiedliche Testobjekte erforderlich sein
-
Schnittstellen zu anderen Anwendungen müssen vorhanden oder gemockt sein
-
Testergebnisse müssen sichtbar gemacht und konserviert werden
-
Systemkonfigurationen müssen modifizierbar sein
-
Testdaten müssen so geregelt sein, dass sie nicht einander beeinflussen
Testframework,
Tosca ist ein Testframework, ihre Stärke liegt darin, ein rollenbasiertes Rahmenwerk zu schaffen, um Test auf einem gegebenen Testobjekt durchzuführen und hierzu GUI-Schnittstellen einfach zu automatisieren. Am Testobjekt können damit die direkten Ein- und Ausgabedaten gut erfasst werden. Um die Zustandsdaten zu bearbeiten, müssten spezifische Funktionen (Keywords) implementiert werden.
Eine Schwäche besteht in der Durchführung vollautomatischer synchroner und vor allem asynchroner Tests. Hierzu ist ein Skripting notwendig.
Hauptaufgabe ist
-
fachliche Spezifikation der Testfälle
-
initiale Automatisierung des Testablaufs
-
fachliche Abstraktion von Einspielverfahren
Testautomat
Für die Bearbeitung direkt am Testobjekts (Testdatenvorbereitung, Vorbereitung und Durchführung von Batchbearbeitungen, Abzüge von Nebenergebnissen) sind betriebsnahe Skripte erforderlich, die u.a. das betrieblich Weiterverarbeiten simulieren.
Für die Simulation betrieblicher Nacharbeiten ist ein Leitstand am Testobjekt sinnvoll.
Testablage
Zur Dokumentation der Testdurchführung ist ein Datrenspeicher erforderlich. Für die Durchführung eines Testffalles ist eine einheitliche Verzeichnisstruktur sinnvoll. Diese sollte beinhalten:
-
Testprotokoll
-
Zustandsartefakte vor Testdurchführung
-
Dokumentation der Testein- und -ausgabe
-
Zustandsartefakte vor Testdurchführung
-
Differenzvergleiche (1) zu vor-/nach-Testdurchführung (2) zu bisherigen Ergebnissen (Soll-artefakte)
Testdaten