TestmanagementDie Welt verändern, ein Bug nach dem anderen…
Test- und Qualitätsmanagement:
Prozessstufen
Wir unterstützen in Projekten den gesamten Software-Lifecycle eines Produktes. Über jeden der nachfolgenden Buttons, beginnend bei den Anforderungen, wird jede Stufe im allgemeinen Vorgehensmodell auf den nachfolgenden Seiten vorgestellt:
Systemtest gegen Entwurf 1 (Funktionale Spezifikation)
Integrationstest gegen Entwurf 2 (Softwarearchitektur)
Komponententest gegen Entwurf 3 (Softwaredesign)
Eine Verifizierung erfolgt hingegen nur gegenüber der angrenzenden Stufe.
Tests werden manuell, meist auch automatisiert durchgeführt. Die Automatisierung hat den großen Vorteil, dass in kurzer Zeit viele Tests mit geringem Einsatz von Testern durchgeführt werden können. Allerdings müssen die zu automatisierenden Testfälle erst einmal erstellt werden - und das ist recht aufwendig. Auch müssen diese Testfälle bei Softwareänderungen relativ aufwändig aktualisiert werden.
Für den Test steht generell eine Reihe von Werkzeugen am Markt zur Verfügung, sowohl für den manuellen als auch für den automatisierten Test. Der Funktionsumfang, die Integrationen der Funktionen sowie die Kosten zählen zu den ausschlaggebenden Faktoren. Nicht zu unterschätzen ist der Verwaltungsaufwand für diese Tools.
Nicht immer jedoch werden die entsprechenden Tools genutzt. Immer wieder begegnen wir in den Unternehmen Testfällen, die in Form von Word- oder Excel-Dokumenten gehütet werden. Produktiver ist der Test, wenn er durch entsprechende, für die Organisation geeignete, Tools unterstützt wird. Die Tools können auch weitergehende Aufgaben, wie beispielsweise das Requirement-Management und das Defect-Management integrieren. Auf diese Art und Weise hat die Unternehmung ein Managementtool für die Planung, Steuerung und Durchführung. Auf dieser Basis lassen sich jederzeit aktuell Informationen beziehen und dazugehörige Reports generieren. Die Assets sind revisionsgesichert und wiederverwendbar.
Ein wichtiger Baustein im Testmanagementprozess ist das Testkonzept. Es beschreibt für ein Projekt alle Teststufen. Dem vorgelagert sind die Testrichtlinie und die Teststrategie.
IEEE 29119 (ehemals IEEE 829) ist u.a. der Dokumentations-Standard für Testkonzepte. Diese Norm stellt die aktuellen Überlegungen und Vereinbarungen des Testplanungsprozesses dar. Enthalten sein sollten in einem Testkonzept beispielsweise:
Software-Lifecycle: Der Zeitraum, der bei der Konzeption eines Softwareprodukts beginnt und dann endet, wenn die Software nicht mehr für die Nutzung verfügbar ist. Der Softwarelebenszyklus enthält üblicherweise eine Konzeptionsphase, Anforderungsphase, Entwurfsphase, Implementierungsphase, Testphase und ggf. Installationsphase, Betriebs- und Wartungsphase, und manchmal eine Außerbetriebnahme.
Automatisierung der Testdurchführung: Die Verwendung einer Software, z.B. eines Capture/Replay-Werkzeugs, um die Ausführung von Tests zu steuern, tatsächliche mit erwarteten Ergebnissen zu vergleichen, die definierten Vorbedingungen herzustellen sowie weitere Testüberwachungs- und Berichtsfunktionen durchzuführen.
Testmanagement: Planung, Aufwandsschätzung, Überwachung, Kontrolle und Steuerung von Testaktivitäten, die üblicherweise durch einen Testmanager erfolgen. Testmanager: Die Person, die für das Management der Testaktivitäten, der Testressourcen und für die Bewertung des Testobjekts verantwortlich ist. Zu den Aufgaben gehören Anleitung, die Steuerung, die Verwaltung, Planung und Regelung der Aktivitäten zur Bewertung des Testobjekts. Testmanagementwerkzeug: Ein Werkzeug, daß das Management und die Steuerung eines Testprozesses unterstützt und verschiedene Leistungsmerkmale umfasst: Management der Testmittel, zeitliche Planung der Reihenfolge der durchzuführenden Tests, Protokollierung der Ergebnisse, Fortschrittsüberwachung, Fehler- und Abweichungsmanagement und Testabschlussberichterstattung.
Requirement-Management: Management von Anforderungen im Kontext der Anforderungserhebung.
Fehler- und Abweichungsmanagement (Defectmanagement): Der Prozess der Erkennung, Untersuchung, Maßnahmenergreifung und Behebung von Fehlerzuständen und Abweichungen. Dazu gehört Protokollierung, Klassifizierung und Analyse der Auswirkung von Fehlerzuständen und Abweichungen. Fehler- und Abweichungsmanagementwerkzeug: Ein Werkzeug zur Aufzeichnung und Statusverfolgung von Fehlerzuständen und Abweichungen während des Testens. Es enthält oft eine Workflow-Komponente, um die Sammlung, Korrektur und den Fehlernachtest von Vorfällen/Abweichungen verfolgen, steuern und über Berichtsfunktionen darstellen zu können. Bekannte Tools sind beispielsweise HPQC, Mantis und Jira. Jira hat zudem noch eine Komponente Projektmanagement.
Testkonzept, ein Dokument, das u.a. den Gültigkeitsbereich, die Vorgehensweise, die Ressourcen und die Zeitplanung der beabsichtigten Tests mit allen Aktivitäten beschreibt. Es identifiziert u.a. die Testobjekte, die zu testenden Features und die Testaufgaben. Es ordnet den Testaufgaben die Tester zu und legt den Unabhängigkeitsgrad der Tester fest. Es beschreibt die Testumgebung, die Testentwurfsverfahren und die anzuwendenden Verfahren zur Messung der Tests, und begründet deren Auswahl. Außerdem werden Risiken beschrieben, die eine Planung für den Fall des Eintretens erfordern. Ein Testkonzept ist somit die Niederschrift des Testplanungsprozesses.
Allgemeines Vorgehensmodell für die Softwareentwicklung, um die Aktivitäten des Software-Entwicklungslebenszyklus von der Anforderungsspezifikation bis zur Wartung zu beschreiben. Das Allgemeines Vorgehensmodell stellt dar, wie Prüf- und Testaktivitäten in jede Phase des Software-Entwicklungslebenszyklus integriert und die Zwischenprodukte geprüft (validiert und verifiziert) werden können.
Validierung: Bestätigung durch Bereitstellung eines objektiven Nachweises, dass die Anforderungen für einen spezifischen beabsichtigten Gebrauch oder eine spezifische beabsichtigte Anwendung erfüllt worden sind.
Verifizierung: Bestätigung durch Bereitstellung eines objektiven Nachweises, dass festgelegte Anforderungen erfüllt worden sind.
Testrichtlinie: Ein Dokument, das auf hohem Abstraktionsniveau die Prinzipien, Vorgehensweisen und wichtigsten Ziele einer Organisation in Bezug auf das Testen zusammenfasst.
Teststrategie: Abstrakte Beschreibung der vorgesehenen Teststufen und der Art und Weise, wie innerhalb dieser Teststufen vorzugehen ist, für eine Organisation oder ein Programm - gültig für ein oder mehrere Projekte.
Testautomatisierung: Einsatz von Softwarewerkzeugen zur Durchführung oder Unterstützung von Testaktivitäten, z.B. Testmanagement, Testentwurf, Testausführung und Soll/Ist-Vergleich. Beispiele: QF-Test, Selenium, Silktest.
Qualitätsmanagement: Aufeinander abgestimmte Tätigkeiten zum Leiten und Lenken einer Organisation bezüglich Qualität. Festlegen der Qualitätspolitik und der Qualitätsziele, die Qualitätsplanung, die Qualitätssicherung und die Qualitätsverbesserung. Qualitätssicherung: Teil des Qualitätsmanagements, das darauf gerichtet ist, Vertrauen in die Erfüllung der Qualitätsanforderungen zu erzeugen.
Ein Projekt ist eine zeitlich begrenzte Aufgabe mit Anfangs- und Endterminen. Es wird durchgeführt, um ein Ziel zu erreichen, das spezifische Anforderungen erfüllt, wobei Zeit-, Kosten- und Ressourcenbeschränkungen eingeschlossen sind. Projektmanagement: Nach DIN/ISO ist das Projektmanagement ist die Anwendung von Methoden, Hilfsmitteln, Techniken und Kompetenzen in einem Projekt. Es umfasst das Zusammenwirken der verschiedenen Phasen des Projektlebenszyklus. PM-Zertifizierungen: Das amerikanische Project Management Institute (PMI) mit der PMP-Zertifizierung, das britische Office of Government Commerce (OGC) mit der Prince-2-Zertifizierung, die International Project Management Association (IPMA) mit der IPMA-Zertifizierung.
Testen ist der Prozess, der aus allen Aktivitäten des Lebenszyklus besteht (sowohl statisch als auch dynamisch), die sich mit der Planung, Vorbereitung und Bewertung eines Softwareprodukts und dazugehöriger Arbeitsergebnisse befassen. Ziel ist sicherzustellen, dass diese allen festgelegten Anforderungen genügen, dass sie ihren Zweck erfüllen, und etwaige Fehlerzustände zu finden.
Der Vorgang, allgemeine Testziele in handfeste Testbedingungen und Testfälle zu überführen. Testentwurfsspezifikation: Ein Ergebnisdokument, das die Testbedingungen für ein Testobjekt, die detaillierte Testvorgehensweise und die zugeordneten abstrakten Testfälle identifiziert. Testentwurfsverfahren: Eine Vorgehensweise, nach der Testfälle abgeleitet oder ausgewählt werden. Testentwurfswerkzeug: Ein Werkzeug zur Erzeugung von Testdaten entweder auf Basis einer Spezifikation, die in einem CASE Repository (z.B. in einem Anforderungsmanagementwerkzeug) abgelegt sein kann, oder aus spezifizierten Testbedingungen, die im Testentwurfswerkzeug selbst abgelegt sind, oder aus dem Code selbst.
Die Norm ISO/IEC 9126 ist ein Modell, um Softwarequalität sicherzustellen. Diese ISO-Norm ist in der Norm ISO/IEC 25000 aufgegangen und wird durch die neue Norm ersetzt. Qualitätsmerkmale: Funktionalität (Angemessenheit, Richtigkeit, Interoperabilität, Sicherheit, Ordnungsmäßigkeit) Zuverlässigkeit (Reife, Fehlertoleranz, Wiederherstellbarkeit) Benutzbarkeit (Verständlichkeit, Erlernbarkeit, Bedienbarkeit, Attraktivität) Effizienz (Zeitverhalten, Verbrauchsverhalten) Wartbarkeit (Analysierbarkeit, Modifizierbarkeit, Stabilität, Testbarkeit) Übertragbarkeit (Anpassbarkeit, Installierbarkeit, Koexistenz, Austauschbarkeit)
Institute of Electrical and Electronics Engineers (IEEE). http://www.ieee.org/. Die Definition IEEE 829 Standard for Software Test Documentation ist ein vom IEEE (Institute of Electrical and Electronic Engineers) veröffentlichter Standard, der einen Satz von acht Basis-Dokumenten zur Dokumentation von Softwaretests beschreibt. Der Standard beschreibt Form und Inhalt der jeweiligen Dokumente. Er schreibt jedoch nicht vor, welche der jeweiligen Dokumente zwingend verwendet werden müssen. Im September 2013 wurden die ersten Teile des internationalen Standards ISO/IEC/IEEE 29119 veröffentlicht, der den IEEE 829 Standard for Software Test Documentation international ersetzt.