Die Aufgaben des Testmanagements sind vielfältig, der Testreport ist jedoch nur einer davon, jedoch wird dieser immer wichtiger. Einerseits hilft der erstellte Bericht dabei, möglichst genaue Vorhersagen zu treffen, andererseits bei Schwierigkeiten, die richtigen Gegenmaßnahmen zu identifizieren um so besser gegensteuern zu können. Allerdings ist nicht jeder Bericht hilfreich, und es ist besonders wichtig, redundante Informationen zu vermeiden.
Im Zeitalter immer komplexer werdender Software mit immer kürzeren Entwicklungsintervallen hängt der Erfolg Ihres Unternehmens oft entscheidend davon ab, dass die eingesetzte Software eine hohe Qualität aufweist.
[ehub]Bei komplexer Software mit hohen Anteil an Regressionstest bietet die Tests Automatisierung, Software in hoher Qualität auszuliefern. Besonders im Zuge der Agilen Entwicklung, kann auf Testautomatisierung kaum verzichtet werden. Hier sind die Treiber vor allen CI/CD (Continuous Delivery & Integration).
Während früher in konventionellen Projekten einige Methoden zur Testfallermittlung wie z.B, das Explorative Testen eher den Beigeschmack des weniger methodischen beiheftete, so hat diese im agilen Umfeld einen anderen Stellenwert. Generell ist das Anwenden von Methoden zur Testfallermittlung nicht an daran gebunden ob konventionel oder agil entwickelt wird. Vielmehr ist es wichtig Best practice Methoden usw. zu kombinieren.
Der wesentliche Unterschied zwischen dem Testen in agilen Entwicklungsprojekten und dem klassischen Testen besteht darin, dass das Testen eine präventive Maßnahme ist und häufiger getestet werden muss.
Diese Anforderungen werden hauptsächlich durch Continuous Integration und Testautomatisierung erfüllt. Agiles Testen ist aus der agilen Softwareentwicklung nicht mehr wegzudenken. In IT-Projekten wird heute nicht mehr diskutiert, ob agile Methoden eingesetzt werden sollen, sondern wie man sie richtig einsetzt und bei Bedarf sogar Agilität ausbaut.
• Testplanung
• Testschätzung und Testorganisation
• Testerstellung und Testdurchführung
• Testüberwachung, Teststeuerung und Dokumentation
Alle Aufgaben laufen parallel in einer Iteration ab und nicht in nacheinander folgenden Aktivitäten wie im klassischen Testmanagement. Zudem berücksichtigt das Agile Testmanagement die klassischen Teststufen. Denn diese Stufen definieren unterschiedliche Testarten, die gleichzeitig bestimmte Testmethoden und –werkzeuge nach sich ziehen. Sowohl klassische als auch agile Projekte nutzen diese Methoden und Werkzeuge.
Eine ganzheitliche Testplanung ist in agilen Entwicklungsprojekten nicht möglich. Denn die Anforderungen können nur punktweise im Projekt ermittelt werden.
Wir wissen nicht, was wir testen sollen. Aber wir wissen, wie man testet. Die groben Testaufgaben für jede Version sind gleich, das heißt, wir können Aufgaben planen, auch ohne das eigentliche Objekt. Die Anforderungen entnehmen wir z.B. von den User Storys des neuen Releases.
Wir wissen, welche Art von Ergebnissen wir liefern möchten, auch wenn die Ergebnisse noch nicht bekannt. Das gleiche gilt für Ressourcen. Dies Ressourcentypen sind vorhersehbar, bestimmte Ressourcenmerkmale jedoch nicht. Dies werden für jede Version neu ermittelt. Also machen wir für agile Projekte keinen endgültigen Testplan, das was wir machen ist eine Vorlage, die bei jedem Release nochmals überprüft und angepasst wird.
Die eigentliche Schwierigkeit in der agilen Testplanung ist, mit einem Minimum von Informationen, dennoch die richtigen Ziele auszuwählen und daraus einen Plan zu erstellen.
Eines der Grundprinzipien in der agilen Entwicklung, ist den Release-Umfang den zur verfügung stehenden Kapazitäten anzupassen. In einem agilen Entwicklungsprojekt finden wir die Anforderungen in den z.B. in den User Stories, aber nur für die nächste Version. Daher ist nur eine Aufwandsschätzung für das nächste Release möglich. Das führt dazu das die Aufwandschätzung jedes Release wiederholt wird. Dies hat den Vorteil, dass die Testeffizienz in jedem Release angepasst und verbessert werden kann, da ihre Schätzungen immer besser werden. Ein Nachteil ist, zu Beginn der Entwicklung haben sie keine Möglichkeit, den Gesamtumfang des Tests zu kennen. Sie kann nur Vorschläge machen oder bestenfalls mit anderen Projekten vergleichen. Dennoch ist der Testaufwand gut abschätzbar, da der Aufwand für einen Sprint meist überschaubar bleibt. Um einen Test zu organisieren, benennen Sie die Tester. Da einige Tests wie ein Lasttest Experten erfordern, die nicht immer im Team sind , können für diese Details externe Tester hinzugezogen werden.
Wie oben erwähnt, können Sie Testfälle basierend auf Anforderungen erstellen. Im Gegensatz zum klassischen Testmanagement können agile Teams es jedoch nutzen, wenn es keine detaillierten Testfälle gibt. Sie nutzen auch gerne die Methode des explorativen Testens, bei der Testfälle komplett eingespart werden. Stattdessen stützt sich diese Methode auf die Erfahrung und intrinsische Motivation des Testers, um zu untersuchen, was passiert. Im Prozess der Testerstellung und -durchführung muss das gesamte Team jedoch immer über ausreichend Kommunikation, vorzugsweise Face-to-Face-Kommunikation, verfügen, um effizientes agiles Testen durchzuführen.
Im Vergleich zu klassischen Projekten reduziert es die Tätigkeiten der Überwachung. Die Aufgaben der Messung, Abweichungsbewertung und Gegenmaßnahmen werden in der Regel mündlich durch das agile Team kommuniziert. Viele agile Teams finden sich jedoch in einem klassischen Projektmanagement wieder: Sie arbeiten agil, müssen aber bestimmten externen Prozessen folgen und Schlüsselpersonen registrieren. Diese gemischte Projektstruktur lässt keine Überwachung der rein verbalen Kommunikation mehr zu. Stattdessen eignet sich eine entsprechende Software, die Kennzahlen bereitstellt. In dieser Umgebung muss das Team normalerweise eine Dokumentation erstellen
Unternehmen, die agile Projekte betreiben, müssen einen gewissen Einfluss auf die Art dieser Projekte haben Gemälde. Agile Projekte schaffen ein unbürokratisches, flexibles, flaches und offenes Umfeld im Voraus. Für diejenigen, die Managementfunktionen anstreben, bietet das agile Testfeld nur wenige Möglichkeiten, es sei denn, sie übernehmen die Rolle des Projekttrackers. Lisa Crispin hat diese Rolle in ihrem Projekt erwähnt. Projekttracker Sammeln Sie Daten zu Projektfälligkeit, Kosten, Fehleranzahl, Fertigungsgrad etc. Andere Teammitglieder und melden Sie es den Stakeholdern. Es ist das gleiche rein Funktionen zur Klassifizierungsverwaltung. Der Projekttracker hat keine Führungsqualitäten und darf nicht in das Projekt einsteigen. Nichts mehr Fortschritt verfolgen. Andernfalls wird es in agilen Projekten keine Führungskräfte geben. Wenn sich jemand nicht selbst testet oder Für die Entwicklung und Pflege von Testtools hat er in agilen Projekten nichts zu suchen. Allenfalls kann er wie bereits erwähnt als Testberater fungieren und Entwickler bei eigenen Tests beraten.
„Definition of READY“ (DoR)
Eine DoR wird verwendet, um eine frühe Testbarkeit der Software zu gewährleisten. Es handelt sich im Grunde um eine Checkliste, die zum Einsatz kommt, wenn die User Story vom Product Owner erstellt und in deren Qualitätssicherung verwendet wird, spätestens aber bei der Überführung der Story aus dem Produkt, wird die DoR den Weg in das Sprint Backlog finden.
„Definition of DONE“ (DoD)
Ganz kurz: die DoD verankert Qualitätsziele. Es ist eine weitere Checkliste, die beschreibt, welche Ziele das Team bei der Umsetzung der Story erreichen muss, bevor sie als „bereit für die Einreichung in einem Sprint-Review“ betrachtet werden kann. In der DoD liegen Testziele wie z.B. die erforderlichen Testtypen, die zu erreichende Testabdeckung und Testende-Standards fest (z.B. alle gefundenen Fehler beseitigen). Eine DoD dient somit unmittelbar der Sicherung der Produktqualität, wie auch der Kundenzufriedenheit.
„Definition of TEST“ (DoT)
Eine DoT verankert die Teststrategie im agilen Team. Sie legen die für das Team geltenden Spielregeln in einem zentralen Dokument, der sogenannten Teamcharta, fest. Die Charta ist auch ein idealer Ort, um gängige Methoden zu verankern, wie z. B. Testfalldesign und Tool-Nutzung für Tester. DoT beschreibt, wie Testfälle basierend auf welchen Informationen (wie der Risiko- und Wertklassifizierung der Story und ihrer Beschreibung) entworfen, implementiert und ausgeführt werden. Daher ersetzt es die bekannten risiko- oder wertorientierten Teststrategieartefakte im klassischen Testen.
Der Quadrant für agiles Testen ist ein
guter Ausgangspunkt, um agile Teststrategien zu definieren.
Im Zeitalter immer komplexer werdender Software mit immer kürzeren Entwicklungsintervallen hängt der Erfolg Ihres Unternehmens oft entscheidend davon ab, dass die eingesetzte Software eine hohe Qualität aufweist.
Häufig fallen jedoch Tests für die neue Software dem Termindruck oder der zu niedrigen Priorisierung zum Opfer. Der Grund für unzureichende Softwarequalität ist dabei oft auf fehlendes Testmanagement, Softwaretest-Knowhow und QA-Budget zurückzuführen.
Entscheidungen, welche Funktionen der Software getestet werden sollen, unsystematische Test am Projektende oder enger getaktete Umsetzungsfristen bei Gesetzesanpassungen stellen die IT-Abteilungen auf die Probe. Meist wird in diesen Situationen an der falschen Stelle gespart.
Fehler die erst kurz vor der Einführung der neuen Software aufgedeckt werden, bedeuten eine Kostenexplosion. Im Gegensatz zu den ungeahnten Kosten bleiben i.d.R. die Kosten, bei Entdeckung der Fehler im Vorfeld, innerhalb des vorgegebenen Budgets.
Ein solides Testmanagement ist im Softwaretest leider noch immer kein Standard. In vielen Unternehmen sind durchgehende Testprozesse noch nicht etabliert. Eine hohe Qualität der Software kann aber nur erreicht werden, wenn ein systematisches Vorgehen und ein konsequentes Umsetzen aller relevanten Themen gewährleistet ist, gesetzte Qualitätsstandards eingehalten werden, der Testprozess im Unternehmen selbst etabliert ist und der Testmanagementprozesses in den Projektablauf integriert ist.
Ein solides Testmanagement ist unabdingbar um die einzelnen Aktivitäten im gesamten Testprozess zu koordinieren, zu kontrollieren und zu dokumentieren.
Der Testprozess gliedert sich dabei in der Regel in folgende Gruppen:
Die hier aufgeführten Testprozessaktivitäten können in der Praxis zeitlich überlappend oder parallel stattfinden. Meistens ist es nötig, Ausprägungen und Reihenfolge dieser Hauptaktivitäten jeweils dem zu testenden System oder dem Projekt anzupassen.
Die Position des Testmanagers spiel neben dem Testteam eine wesentliche und vielschichtige Rolle. Ihm obliegen anspruchsvolle Aufgaben, die ein hohes Maß an Flexibilität, Kompetenz und Kommunikationsfähigkeit erfordern. In seine Aufgaben fließen sowohl technische als auch unternehmerische Aspekte mit ein. Er übernimmt auch die Rolle einer zentralen Schnittstelle zwischen dem Projektmanagement, dem Entwicklungsteam und dem Testteam.
Die Testplanung und Teststeuerung spielt im Testmanagement eine wichtige Rolle. Die Testplanung umfasst die Ressourcenplanung, die Erstellung eines Testkonzepts, in welchem alle wesentlichen Testobjekte, die Testeingangs- sowie Testausgangskriterien, die Testabbruchbedingungen und auch die eingesetzten Testmethoden sowie die Testvorgehensweise dokumentiert wird. Ohne eine ausführliche und exakte Testplanung können größere Softwareprojekte schon am Anfang des Projektstarts scheitern. Deshalb wird eine zuverlässige Testplanung eine hohe Softwarequalität die termingerechte Fertigstellung der Software garantieren.
Ein Testplan wird für jedes Projekt erarbeitet, der den gesamten Testprozess definiert. Im Einzelnen sind folgend Aktivitäten zu planen:
Aktivitäten im Testmanagementprozess:
Außerdem kann und soll der Plan je Teststufe aktualisiert und konkretisiert werden, so dass Tests zweckmäßig und effizient ausgeführt werden können.
Zur Teststeuerung gehört auch das Überwachen der Testaktivitäten sowie die Feststellung des aktuellen Testfortschritts, das schnelle Eingreifen bei Missständen und das Einleiten von Korrekturmaßnahmen.
Ohne eine ausführliche und exakte Testplanung können größere Softwareprojekte schon am Anfang des Projektstarts scheitern. Deshalb wird eine zuverlässige Testplanung eine hohe Softwarequalität die termingerechte Fertigstellung der Software garantieren.
Um Tests steuern zu können, ist es notwendig, projektbegleitend geeignete Fortschrittsdaten zu ermitteln. In der Phase der Testanalyse und des Testentwurfs werden die allgemeinen Testziele zu konkreten Testbedingungen und Testfällen verfeinert. Aber Achtung! – Nicht der Test wird analysiert, sondern die Testbasis– die Aktivität Testanalyse bestimmt also, »was zu testen ist«.
Erst hier erkennt man, wie aufwändig das Projekt in Wirklichkeit ist und welche Testtechniken und Werkzeuge zur Anwendung kommen. Ziel dieser Phase ist es, alle Testziele in konkrete Testbedingungen und Testfälle zu gliedern, sodass am Ende dieses Abschnitts eine fertige Testentwurfsspezifikation vorliegt.
Des Weiteren wird in der sog. Teststrategie beschrieben, welche Teststufen vorgesehen sind, die Art und Weise wie innerhalb dieser Teststufen vorgegangen wird. Die Teststrategie und Testvorgehensweise werden in den Testkonzepten definiert. Im Testentwurf werden diese dann weiter konkretisiert und verfeinert.
Die Testanalyse umfasst folgende Hauptaufgaben:
Das Ergebnis der Testanalyse sind die Testbedingungen für jedes Testobjekt, also die zu testenden Funktionen.
Es folgt die Testrealisierung und Testdurchführung. Ab hier wird es greifbar. Abstrakte Testfälle werden mit echten Daten gefüllt und zu konkreten Testfällen. Dazu gehört auch das Erzeugen von Testskripten, die dann automatisiert ausgeführt werden.
Tests werden anhand ihrer Priorisierung und einer sinnvollen zeitlichen Abfolge zusammengestellt. Diese Menge von Testfällen oder Testabläufen (so genannte Testsuiten), werden in einem bestimmten Testzyklus ausgeführt. Wenn diese unter Beachtung der möglichen Risiken erarbeitet werden, sorgen sie für eine reibungslose Testdurchführung. So wird eine risikoorientierte Priorisierung vorgenommen. Die kritischen Tests werden zuerst durchgeführt.
Die weniger kritischen werden in Backlogs erfasst und nachgetestet oder ggf. wird hier auf einen Test verzichtet. Auch hier wird die Testumgebung konfiguriert und genutzt.
Testrealisierung und –Durchführung umfassen die folgenden Hauptaufgaben:
Es dürfte hier deutlich geworden sein, dass das Testen von Software neben Zeit und Personal ein durchgehendes Testmanagement benötigt. Jedes Projekt verläuft anders und den perfekten Projektverlauf wird es nicht geben. Es ist aber mit oben genannten Grundregeln einfacher, allen Beteiligten eine qualitativ hochwertige Software und damit einen akzeptablen Prozess zu bieten.
Jedes Projekt ist, je nach Anforderung individuell. Abläufe aus anderen Projekten können durchaus adaptiert und auf das laufende Projekt angepasst werden. Den absolut perfekten Projektablauf wird es nicht geben. Allerdings mit den oben genannten Grundregeln ist es deutlich einfacher eine qualitativ hochwertige Software und damit einen passenden Prozess zu bieten.
Es dürfte hier deutlich geworden sein, dass das Testen von Software neben Zeit und Personal ein durchgehendes Testmanagement benötigt. Jedes Projekt verläuft anders und den perfekten Projektverlauf wird es nicht geben. Es ist aber mit oben genannten Grundregeln einfacher, allen Beteiligten eine qualitativ hochwertige Software und damit einen akzeptablen Prozess zu bieten. Jedes Projekt ist, je nach Anforderung individuell. Abläufe aus anderen Projekten können durchaus adaptiert und auf das laufende Projekt angepasst werden. Den absolut perfekten Projektablauf wird es nicht geben. Allerdings mit den oben genannten Grundregeln ist es deutlich einfacher eine qualitativ hochwertige Software und damit einen passenden Prozess zu bieten.
Die Aufgaben des Testmanagements sind vielfältig, der Testreport und ie Testüberwachung sind jedoch nur ein Teil davon, jedoch wird dieser immer wichtiger. Einerseits hilft der erstellte Bericht dabei, möglichst genaue Vorhersagen zu treffen, andererseits bei Schwierigkeiten, die richtigen Gegenmaßnahmen zu identifizieren um so besser gegensteuern zu können. Allerdings ist nicht jeder Bericht hilfreich, und es ist besonders wichtig, redundante Informationen zu vermeiden.
Ein Testbericht ist eine organisierte Zusammenfassung von Testzielen, Aktivitäten und Ergebnissen. Es wird erstellt und verwendet, um Stakeholdern (Produktmanagern, Analysten, Testteams und Entwicklern) zu helfen, die Produktqualität zu verstehen und zu entscheiden, ob Produkte, Funktionen oder Fixes veröffentlicht werden.
Grundsätzlich ist die Testüberwachung eine Managementaktivität. Es gilt die aktuelle Testphase zu bewerten und Feedback zu sammeln.
Die Überwachung umfasst folgende Tätigkeiten:
Was ist bei der Berichterstattung und Überwachung zu beachten? Bei den ersten beiden Punkten geht es im Wesentlichen um die Berichterstattung, die ein wichtiger Bestandteil der Testüberwachung ist. Der Bericht sollte genau sein und alles „langwierige“ vermeiden. Dies ist wichtig, da der Inhalt des Berichts von jedem individuell gestaltet wird. Die letzten beiden Punkte befassen sich mit der Quantifizierung des Tests.
Folgende Metriken werden hier oft verwendet:
Schließlich soll der Testbericht Ihnen helfen, den Wert des erreichten Tests zu verstehen. Führen Sie beispielsweise unnötige Tests durch? Ist Ihr Test stabil? Können Sie Probleme frühzeitig im Prozess erkennen? Ein guter Review-Prozess kann Erkenntnisse und Antworten auf all diese wichtigen Fragen liefern. Sie können nicht nur die Qualität Ihrer Bewerbung verbessern, sondern auch die Freigabe beschleunigen.
Es dürfte hier deutlich geworden sein, dass das Testen von Software neben Zeit und Personal ein durchgehendes Testmanagement benötigt. Jedes Projekt verläuft anders und den perfekten Projektverlauf wird es nicht geben. Es ist aber mit oben genannten Grundregeln einfacher, allen Beteiligten eine qualitativ hochwertige Software und damit einen akzeptablen Prozess zu bieten. Jedes Projekt ist, je nach Anforderung individuell. Abläufe aus anderen Projekten können durchaus adaptiert und auf das laufende Projekt angepasst werden. Den absolut perfekten Projektablauf wird es nicht geben. Allerdings mit den oben genannten Grundregeln ist es deutlich einfacher eine qualitativ hochwertige Software und damit einen passenden Prozess zu bieten.
Im Zeitalter immer komplexer werdender Software mit immer kürzeren Entwicklungsintervallen hängt der Erfolg Ihres Unternehmens oft entscheidend davon ab, dass die eingesetzte Software eine hohe Qualität aufweist. Häufig fallen jedoch Tests für die neue Software dem Termindruck oder der zu niedrigen Priorisierung zum Opfer. Der Grund für unzureichende Softwarequalität ist dabei oft auf fehlendes Testmanagement, Softwaretest-Knowhow und QA-Budget zurückzuführen.