5. Testmanagement Flashcards
Grad der Unabhängigkeit
- kein unabhängiger Tester. Entwickler testen ihren eigenen Code
- unabhängige Tester innerhalb des Entwicklungsteams
- unabhängiges Testteam oder -gruppe innerhalb der Organisation, das/die dem Projektmanagement oder dem Management der Linienorganisation berichtet
- unabhängige Tester aus der Fachabteilung oder Anwendergruppe
- unabhängige Testspezialisten für spezifische Testarten, wie Tester für Benutzerfreundlichkeit, Sicherheits- oder Konformitätstester (die ein Softwareprodukt gegen Standards und gesetzliche Vorschriften prüfen)
- unabhängige Tester, ausgegliedert oder aus externen Organisationen
Vorteile und Nachteile
von
Unabhängigkeit
Vorteile:
+ Unabhängige Tester sehen andere und unterschiedliche Fehler und sind unvoreingenommen.
+ Ein unabhängiger Tester kann Annahmen verifizieren, die während der Spezifikation und Implementierung des Systems gemacht wurden.
Nachteile:
- Tester sind vom Entwicklungsteam isoliert (wenn als vollkommen unabhängig behandelt).
- Die Entwickler können das Verantwortungsgefühl für Qualität verlieren.
- Unabhängige Tester können als Engpass gesehen werden oder die Schuld für Verzögerungen
zugewiesen bekommen.
Aufgaben eines Testmanagers
- Koordination der Teststrategie und Planung mit Projektleitern und anderen Beteiligten
- Erstellen oder Prüfen der Teststrategie für das Projekt und einer Testrichtlinie für die Organisation
- Einbringen der Testperspektive in andere Projektaktivitäten, beispielsweise die Integrationsplanung
- Planen der Tests – unter Beachtung des Kontexts und mit Verständnis von Testzielen und Risiken – einschließlich
- Auswahl der Testvorgehensweise
- Schätzen der Zeit
- des Aufwands und
- der Kosten des Testens
- Ressourcenbeschaffung
- Definition der Teststufen
- Testzyklen und
- Planen des Abweichungsmanagements
- Initiieren der Spezifikation, Vorbereiten, Implementieren und Durchführen von Tests, Überwachen der Testergebnisse und Prüfen der Endekriterien
- Anpassen der Planung an Testergebnisse und Testfortschritt (manchmal in den Statusberichten dokumentiert) und Einleiten aller erforderlichen Maßnahmen bei Problemen
- Aufbau eines angemessenen Konfigurationsmanagements der Testmittel zur Rückverfolgbarkeit
- Einführen passender Metriken zum Messen des Testfortschritts und zur Bewertung der Qualität des Testens und des Produkts
- Entscheidung, was zu welchem Grad und wie automatisiert werden sollte
- Auswahl der Werkzeuge zur Testunterstützung und Organisation sämtlicher Werkzeugschulungen für Tester
- Entscheiden über die Implementierung der Testumgebung
- Schreiben von Testabschlussberichten auf der Grundlage der Informationen, die während des Testens gesammelt werden
Aufgaben eines Testers
- Mitarbeit an und Prüfung von Testkonzepten
- Analyse, Prüfung und Bewertung von Benutzeranforderungen, Spezifikationen und Modellen im Hinblick auf Testbarkeit
- Erstellen von Testspezifikationen
- Aufbau der Testumgebung (oft in Abstimmung mit System- und Netzwerkadministration).
- Vorbereiten oder Anfordern von Testdaten
- Implementieren von Tests auf allen Stufen, Durchführen der Tests und ihre Protokollierung, Auswerten der Testergebnisse und Dokumentation der Abweichungen von erwarteten Ergebnissen
- Einsetzen von Testadministrations- oder Testmanagement- und Testüberwachungswerkzeugen wie gefordert
- Automatisieren von Tests (kann durch einen Entwickler oder Testautomatisierungsexperten unterstützt werden)
- Messen der Leistungsfähigkeit/Performanz von Komponenten und Systemen (wenn zutreffend)
- Prüfen der Tests, die von anderen entwickelt wurden
Typische Tester auf der Komponenten- und Integrationsstufe sind Entwickler, auf der Abnahmeteststufe Fachexperten und Anwender, und für den Abnahmetest auf operativer Ebene der Betreiber.
Testplanung
Die Planung kann in einem Mastertestkonzept und in separaten Testkonzepten für Teststufen, wie dem Systemtest und dem Abnahmetest, dokumentiert werden.
Die Planung wird durch
- die Testrichtlinie der Organisation,
- den Testumfang,
- die Ziele,
- Risiken,
- Einschränkungen,
- Kritikalität,
- Testbarkeit und
- Verfügbarkeit von Ressourcen
beeinflusst.
Je weiter sich die Projekt- und Testplanung entwickelt, desto mehr Informationen werden verfügbar und desto mehr Details können im Plan berücksichtigt werden.
Testplanung ist eine kontinuierliche Aktivität und wird in allen Lebenszyklusprozessen und -aktivitäten durchgeführt. Feedback aus den Testaktivitäten wird genutzt, um sich ändernde Risiken zu erkennen, so dass die Planung angepasst werden kann.
Testplanungsaktivitäten
- Festlegen des Umfangs und der Risiken sowie Identifizierung der Testziele
- Definieren des allgemeinen Testansatzes, einschließlich Definition der Teststufen und der Eingangs- und Endekriterien
- Koordinieren und Integrieren der Testaktivitäten in die Aktivitäten des Softwarelebenszyklus (Beschaffung, Bereitstellung, Entwicklung, Betrieb und Wartung)
- Entscheiden, was zu testen ist, welche Rollen welche Testaktivitäten ausführen werden, wann und wie die Testaktivitäten auszuführen sind und wie die Testergebnisse bewertet werden
- Testanalyse und Entwurfsaktivitäten planen
- Testimplementierung, -ausführung und -bewertung planen
- Ressourcen den verschiedenen definierten Aufgaben zuordnen
- Definieren des Umfangs, des Detaillierungsgrads, der Struktur und der Vorlagen für die Testdokumentation
- Selektieren der Metriken zur Überwachung und Steuerung der Testvorbereitung und -durchführung, Fehlerzustandsbehebung und Risikofaktoren
- Bestimmen des Detaillierungsgrads für Testablaufspezifikationen, um genügend Informationen in Hinblick auf eine reproduzierbare Testvorbereitung und -durchführung zu liefern
Testeingangskriterien
Typische Eingangskriterien:
- Verfügbarkeit und Einsatzbereitschaft der Testumgebung
- Bereitschaft der Testwerkzeuge in der Testumgebung
- Verfügbarkeit des testbaren Codes
- Verfügbarkeit der Testdaten
Endekriterien
Typische Endekriterien:
- Intensitätsmaße, beispielsweise Codeüberdeckung, Funktionalität oder Risiko
- Schätzungen über Fehlerdichte oder Zuverlässigkeitsmaße
- Kosten
- Verbleibende Risiken, beispielsweise nicht behobene Fehlerzustände oder fehlende Testüberdeckung in bestimmten Bereichen
- Zeitpläne, beispielsweise basierend auf dem Termin der Markteinführung
Ansätze für die Schätzung
des
Testaufwands
Der metrikenbasierte Ansatz: Schätzung des Testaufwands auf der Basis von Metriken früherer oder ähnlicher Projekte oder auf der Basis von typischen Werten
Der expertenbasierte Ansatz: Schätzung des Aufwands für die einzelnen Aufgaben durch die Verantwortlichen für diese Aufgaben oder durch Experten
Sobald der Testaufwand geschätzt ist, können Ressourcen identifiziert und ein Zeitplan erstellt werden.
Testaufwand
Einflussfaktoren
-
Charakteristiken des Produkts
- Qualität der Spezifikation und anderer Informationen, die für
das Testmodell herangezogen werden (d.h. die Testbasis) - Größe des Produkts
- Komplexität der Problembereiche
- Anforderungen an Zuverlässigkeit und Sicherheit und
- Anforderungenan die Dokumentation
- Qualität der Spezifikation und anderer Informationen, die für
-
Charakteristiken des Entwicklungsprozesses:
- Stabilität der Organisation
- benutzte Werkzeuge
- Testprozess,
- Kenntnisse der involvierten Personen und
- Zeitdruck
-
Testergebnisse:
- Anzahl der Fehlerzustände und
- Menge der erforderlichen Nacharbeiten
Teststrategie, Testvorgehensweise
- Die Testvorgehensweise ist die Umsetzung der Teststrategie in einem spezifischen Projekt.
- Die Testvorgehensweise wird in den Testkonzepten und im Testentwurf definiert und verfeinert.
- Sie enthält typischerweise die Entscheidungen, basierend auf den (Test-) Projektzielen und der Risikoanalyse.
- Sie ist der Ausgangspunkt für die Planung des Testprozesses, für die Auswahl der Testentwurfsverfahren und der durchzuführenden Testarten, sowie für die Spezifikation der Eingangskriterien und
Endekriterien.
Faktoren
für die
Auswahl der Testvorgehensweise
Die gewählte Testvorgehensweise ist abhängig vom Kontext.
Faktoren
- Risiken,
- Gefahren und Sicherheit,
- verfügbare Ressourcen und Fähigkeiten,
- die Technologie,
- Art des Systems (z.B. maßgeschneidert oder kommerzielle COTS-Software),
- Testzielen
- Vorschriften
Typische Testvorgehensweisen
Analytische Vorgehensweisen, wie das risikoorientierte Testen, in dem das Testen auf die Bereiche der größten Risiken ausgerichtet ist
Modellbasierte Vorgehensweisen wie das stochastische Testen, das statistische Informationen über Ausfallraten (beispielsweise Zuverlässigkeitswachstumsmodelle) oder Systembenutzung (beispielsweise Benutzungsprofile) nutzt
Methodische Vorgehensweisen wie das ausfallbasierte (einschließlich intuitiver Testfallermittlung und Fehlerangriff), erfahrungsbasierte, checklistenbasierte und qualitätsmerkmalbasierte Testen
Prozess- oder standardkonforme Vorgehensweisen, spezifiziert durch Industriestandards, oder die verschiedenen agilen Methoden
Dynamische und heuristische Vorgehensweisen, wie das explorative Testen, bei dem das Testen weniger vorgeplant ist und stärker auf Ereignisse reagiert und Durchführung und Auswertung parallel laufen
Beratende Vorgehensweisen, in denen die Testüberdeckung primär durch Hinweise und Beratung von Technologie- und/oder Geschäftsbereichsexperten außerhalb des Testteams getrieben wird
Wiederverwendungsorientierte Vorgehensweisen, bei denen man vorhandene Tests und Testumgebungen (aus früheren Projekten), umfangreiche Automatisierung von funktionalen Regressionstests
und Standardtestsuiten als Ausgangsbasis übernimmt. Ziel ist, die Tests
schnell und pragmatisch aufzusetzen.
Testfortschrittsüberwachung
Das Ziel der Testfortschrittsüberwachung ist es, Feedback und Übersicht über Testaktivitäten zu liefern.
Zu überwachende Informationen können manuell oder automatisiert gesammelt werden. Sie können herangezogen werden, um Endekriterien wie Testüberdeckung zu messen sowie den Fortschritt gegen den Zeitplan und gegen das Budget zu beurteilen.
Testfortschrittsüberwachung
- Prozentsatz der durchgeführten Arbeiten in der Testvorbereitung (oder Prozentsatz der vorbereiteten geplanten Testfälle)
- Prozentsatz der durchgeführten Arbeiten in der Vorbereitung der Testumgebung
- Testfalldurchführung (z.B. die Anzahl der durchgeführten/nicht durchgeführten Testfälle und der bestandenen/nicht bestandenen Testfälle)
- Fehlerzustandsinformationen (z.B. Fehlerdichte, gefundene und behobene Fehlerzustände, Ausfallrate und Fehlernachtestergebnisse)
- Testüberdeckung der Anforderungen, Risiken oder des Codes
- subjektives Vertrauen der Tester in das Produkt
- Daten der Testmeilensteine
- Testkosten, inklusive Kosten im Vergleich zum Nutzen durch das Auffinden des nächsten Fehlerzustands oder für den nächsten Testdurchlauf