Aufwandsschätzung für Testing ist ein fortlaufender Prozess, der in dem gesamten Software-Entwicklungslebenszyklus durchgeführt werden soll. Die genaue Bewertung der Software-Entwicklungskosten hilft die Ausgaben zu kontrollieren und Projekt termingerecht und innerhalb des geplanten Budgets zu halten. Schätzung ist eine Prognose, die Testaufwand, Kosten und Risiken enthält. Die Aufwandsschätzung für Testing ist eine Anzahl von Stunden, die erforderlich ist, um relevante Testaktivitäten im Projekt auszuführen. Es kann vorläufig oder detailliert sein. Also, was ist der Unterschied?
Die vorläufige Schätzung wird gemacht, wenn es nicht genug Informationen über das Produkt für eine detaillierte Schätzung gibt. Beispielsweise plant Ihr Unternehmen eine neue Lösung zu entwickeln. Ganz am Anfang gibt es nicht viele Informationen über sie. Daher wird die Prognose auf die bisherigen Erfahrungen und die ungefähren Berechnungen basiert. Ein weiteres Beispiel ist, wenn Ihr Unternehmen Outsourcing-Softwaretest-Dienstleistungen bietet und ein bestehendes Produkt zu überprüfen plant. In diesem Fall ist es einfacher die Vorabschätzung zu machen. Allerdings werden die Informationen von Kunden in der Regel begrenzt, so dass Ihre Erfahrung hier eine große Rolle spielt.
Um eine detaillierte Aufwandsschätzung für Testing zu machen, ist es notwendig, folgende Informationen zu haben: die Anzahl der Funktionspunkte, Schätzung des Expertentesters, cycloNummer, die Anzahl von Bildschirmen, die durchschnittliche Anzahl von Schnittstellenelementen auf den Bildschirmen usw.
Es gibt solche Methoden der Aufwandsschätzung für Testing: Einfach-Medium-Komplex, Metrikbasiertes, Expertenbasiertes, Testfall-Punktanalyse.
Diese Methode wird auf der Komplexität der Funktionspunkte und auf den Testbedingungen basiert. Testaufwand für eine Funktionsstelle können als einfache, mittele und komplexe ausgewertet werden. Diese Methode kann in jedem Stadium des Softwaretests verwendet werden.
Zum Beispiel bei der Planung von solchen Aktivitäten, wie Anwendungsübersicht, Testfälle und Testdatenüberprüfung, Testplanerstellung oder während der Tests-Ausführung (Defekte Reporting und Analyse).
Metrikbasiertes Ansatz ermöglicht, das gesamte Projekt zu schätzen und es in den untergeordneten Komponenten zu teilen. Es basiert sich auf die Funktionspunkte oder Code-Zeilen.
Gesamtbemühungen können als Scope / Leistung berechnet werden.
Diese Methode hilft, den Testaufwand in Phasen, Aktivitäten und Aufgaben aufteilen. Zuerst werden die Low-Level-Komponenten des Projekts erkannt und abgeschätzt. Dann wird eine Gesamtschätzung des Projekts produziert.
Alle oben genannten Tätigkeiten sollen wieder in Low-Level-Komponenten aufgeteilt werden, die in einem kürzeren Zeitraum geschätzt werden können.
Die Testfall-Punktanalyse kann für Black-Box-Tests Schätzung (außer Performanztests) verwendet werden. Diese Methode wird auf den Testfall-Checkpoints basiert. Checkpoint ist ein Zustand, in dem Tester überprüft, ob die von der Zielfunktion erzeugte Ergebnis den erwarteten Kriterien entspricht. Diese Ausgangsdaten können als eine Eingabeinformation für andere Kontrollpunkte verwendet werden. Ein Testfall kann aus einer oder mehreren Kontrollpunkten bestehen. Die Anzahl der Kontrollpunkte wird durch die folgenden Faktoren bestimmt: die Anzahl der Bedingungen, die Anzahl der Datensätze, die die Zielfunktion unterstützt und die Anzahl der anderen Funktionen die mit denselben Datensätzen unterstützt werden.
Der Testfall-Checkpoint kann niedriger (1-3 Stufen), mittel (3-4 Stufen) und hoher Komplexität (5-6 Stufen) sein. Außerdem gibt es folgende Komplexitätsstufen für Testskripte: niedrig (hat 1-3 Checkpoints), mittel (4-5 Checkpoints), hoch (6-8 Checkpoints).
Die Zeit für einen Checkpoint Verlauf kann empirisch bestimmt werden. Mit Hilfe einer Zeitschaltuhr bestimmen wir die Dauer des Testfall-Checkpoint Verlauf von niedriger, mittlerer und hoher Komplexität. Es ist auch notwendig der Tester Qualifikation zu berücksichtigen. Um genauere Ergebnisse zu erhalten, wird man empfohlen festzustellen, wie viel Zeit braucht ein Junior-, Mittler- und Fachtester für Testfall-Checkpoint Verlauf und dann muss man der Durchschnittszeit berechnen. In verschiedenen Unternehmen kann solche rate variieren.
Wenn Sie die funktionalen Softwaretests mit grafischer Benutzeroberfläche zu schätzen brauchen, aber es gibt keine Informationen über die Komplexität von Kontrollpunkte, ist es möglich Ihre Schätzung auf die Anzahl der Bildschirme zu basieren. Wenn es keine Bildschirme gibt, können Sie die API-Funktionen oder die Anzahl der Datenbanktabellen verwenden. Durchschnittlich dauert es 4 Stunden einen Bildschirm (2 Stunden für Testdesign und 2 Stunden für die Testdurchführung) zu testen. 40% der Gesamtzeit wird für Fehlerbericht und Analyse erforderlich, 10% – für Testmanagement und 10% – für mögliche Risiken. Um die Regressionstests (Tr) zu schätzen, können Sie die Zeit nehmen, die für Funktionstests (Tf) verbracht wurde: Tr = 1.5 * Tf + Tf,
wo 1.5 * Tf – ein empirischer Index für Softwareupdates ist.
Es ist sehr wichtig den Testaufwand und Testdauer zu unterscheiden. Es gibt solche Fälle, bei denen soll ein Test nach den geschätzten Aufwand nicht mehr als 1 Tag fortsetzen, aber die Praxis zeigt, dass es mehrere Tage dauern.
Aufwandsschätzung für Testing basiert sich auf vielen Faktoren: Tester Leistung, die sich von seinen Fähigkeiten und Erfahrungen abhängig, Testtools, Qualität der Test Dokumentation. Testplanung spielt hier sehr wichtige Rolle.
Zwar gibt es eine Reihe von Methoden der Aufwandsschätzung für Testing. Nur Erfahrung hilft den Unterschied zwischen den tatsächlichen und vorhergesagten Testkosten zu reduzieren.