software test estimation techniques
Für den Erfolg eines Projekttests ist die Schätzung und ordnungsgemäße Ausführung ebenso wichtig wie der Entwicklungszyklus. Das Festhalten an der Schätzung ist sehr wichtig, um beim Kunden einen guten Ruf aufzubauen.
Erfahrung spielt eine wichtige Rolle bei der Einschätzung des „Software-Testaufwands“. Die Arbeit an verschiedenen Projekten hilft dabei, eine genaue Schätzung des Testzyklus zu erstellen. Offensichtlich kann man nicht einfach einige Tage blind für eine Testaufgabe setzen. Die Testschätzung sollte realistisch und genau sein.
In diesem Artikel versuche ich, einige Punkte auf sehr einfache Weise zu formulieren, die hilfreich sind, um eine genaue Testschätzung vorzubereiten.
Was du lernen wirst:
- Kurzbeschreibung des Testschätzungsprozesses
- Beispiele für Testschätzungen
- 9 Allgemeine Tipps zum genauen Schätzen der Testzeit
- Fazit
- Literatur-Empfehlungen
Kurzbeschreibung des Testschätzungsprozesses
'Schätzung ist der Prozess des Findens einer Schätzung oder Annäherung. Dies ist ein Wert, der für einen bestimmten Zweck verwendet werden kann, selbst wenn die Eingabedaten unvollständig, unsicher oder instabil sind.' (Referenz: Wikipedia ))
Wir alle stoßen im Laufe unseres Lebens als Fachleute auf unterschiedliche Aufgaben, Pflichten und Fristen. Jetzt gibt es zwei Ansätze, um eine Lösung für ein Problem zu finden.
Ein erster Ansatz ist ein reaktiver Ansatz, bei dem wir versuchen, eine Lösung für das vorliegende Problem erst zu finden, nachdem es eingetroffen ist.
Im zweiten Ansatz, der als proaktiver Ansatz bezeichnet werden kann, bereiten wir uns zunächst vor Lange bevor das Problem mit unseren vergangenen Erfahrungen und dann mit unseren früheren Erfahrungen eintrifft, versuchen wir, eine Lösung für die Herausforderung zu finden, wenn es eintrifft.
Die Schätzung kann daher als eine Technik betrachtet werden, die angewendet wird, wenn wir das Problem proaktiv angehen.
Somit kann die Schätzung verwendet werden, um vorherzusagen, wie viel Aufwand in Bezug auf Zeit und Kosten erforderlich wäre, um eine definierte Aufgabe zu erledigen.
Sobald das Testteam in der Lage ist, eine Schätzung des vorliegenden Problems vorzunehmen, ist es für sie einfacher, eine Lösung zu finden, die für das jeweilige Problem optimal ist.
Die Praxis der Schätzung kann dann formeller als eine ungefähre Berechnung der wahrscheinlichen Kosten einer Arbeit definiert werden.
Lesen Sie auch=> 7 Faktoren, die die Testschätzung des Selenautomatisierungsprojekts beeinflussen
Die Grundvoraussetzungen des Testschätzungsprozesses
# 1) Erkenntnisse aus der Arbeit mit früheren Erfahrungen : Es ist immer eine gute Praxis, einige Zeit damit zu verbringen, sich an frühere Projekte zu erinnern, die ähnliche Herausforderungen wie das derzeitige Unternehmen darstellten.
# 2) Die verfügbaren Dokumente oder Artefakte: Das Test Management Repository Tools kommen herein Praktisch in solchen Szenarien, da sie die Anforderungs- und Klärungsdokumente speichern. Diese Dokumente können vom Testteam herangezogen werden, um den Umfang des Projekts klar zu definieren.
# 3) Annahmen über die Art der Arbeit: Frühere Arbeitserfahrungen helfen dabei, Annahmen über das Projekt zu treffen. Hier ist die Einstellung erfahrener Fachkräfte am wichtigsten.
Die Testmanager können das Gehirn dieser Personen aufgreifen, um die gewünschten Ergebnisse zu erzielen.
# 4) Berechnung potenzieller Risiken und Bedrohungen: Das Testteam muss auch die potenziellen Risiken, Bedrohungen und Fallstricke visualisieren, die für das Team in Zukunft möglicherweise liegen.
# 5) Feststellen, ob die Dokumente als Basis verwendet wurden: Das Testteam muss auch feststellen, ob die Anforderungen festgelegt wurden oder nicht. Wenn die Dokumente nicht baselined sind, ist es wichtig, die Häufigkeit der Änderungen zu bestimmen.
# 6) Alle Verantwortlichkeiten und Abhängigkeiten sollten klar sein: Die Organisation sollte die Rollen und Verantwortlichkeiten für alle Personen, die den Schätzungsprozess durchführen würden, klar definieren.
# 7) Dokumentation und Verfolgung der Schätzungsaufzeichnungen: Alle relevanten Informationen für den Schätzprozess sollten dokumentiert werden.
# 8) Aktivitäten, die während des Testschätzungsprozesses ausgeführt werden müssen
- Organisieren Sie das Team, das Schätzungen durchführen würde
- Zerlegen Sie das Projekt in Projektphasen und nachfolgende Aktivitäten
- Berechnen Sie die Schätzung basierend auf früheren Projekten und Berufserfahrung
- Priorisieren Sie die möglichen Bedrohungen und entwickeln Sie Ansätze zur Minderung dieser Risiken
- Überprüfen und dokumentieren Sie den relevanten Teil der Arbeit
- Senden Sie die Arbeit an die relevanten Stakeholder
Die bekanntesten Testschätzungstechniken
Einige der wichtigsten Techniken zur Testschätzung sind:
- Testpunktschätzung
- Arbeitsphasenbasierte Schätzung
- Use-Case-Punktschätzung
Wie und wo verwenden wir diese Techniken:
# 1) Testpunktschätzung ist eine einfache und leicht verständliche Schätztechnik, die im gesamten Software-Testspektrum weit verbreitet ist. Iterative Phasen und Einfachheit sind die wichtigsten Merkmale dieser speziellen Technik.
Die wesentlichen Instrumente des Risikomanagements sind:
# 2) Arbeitsphasenbasierte Schätzung ist die Schätztechnik, die verwendet wird, wobei eine Schätzschätzung für eine bestimmte Phase (normalerweise die kürzeste und einfachste der Phasen) vorgenommen wird und das Testteam dann schrittweise andere Phasen zur anfänglichen Schätzung hinzufügt und schließlich eine geeignete Schätzung erstellt.
# 3) Use-Case-Point-Schätztechnik ist die Schätzung für die Anwendungsfälle, in denen die nicht angepassten Akteurgewichte und nicht angepassten Anwendungsfallgewichte verwendet werden, um die Softwaretestschätzung zu bestimmen.
Details der Testpunktschätzungstechnik
Die Testpunktschätzungstechnik wird durchgeführt, indem die aufgeführten Schritte ausgeführt werden: -
(Die folgenden Gewichte, die von Projekt zu Projekt variieren können, können unter diesem Paradigma berücksichtigt werden. - Einige dieser Gewichte sind das Gewicht für die Programmiersprache basierend auf der Komplexität des Codes, das Anwendungsgewicht basierend auf der Art der Anwendung und die Testgewichte zugewiesen basierend auf den verschiedenen Phasen des Softwaretests.)
Unverarbeitete Testpunkte werden mit CWF multipliziert, um die Testgröße in der Größe des Testpunkts zu erhalten.
Der Produktivitätsfaktor gibt an, wie lange ein Testingenieur benötigt, um den Test eines Testpunkts abzuschließen
Der Testaufwand in Personenstunden wird berechnet, indem die Testpunktgröße mit dem Produktivitätsfaktor multipliziert wird.
Für die Berechnung der Testpunktschätzungstechnik berücksichtigen wir die folgenden Variablen.
- Komplexität der Testanforderungen
- Schnittstelle zu anderen Anforderungen
- Gesamtzahl der Überprüfungspunkte
- Basistestdaten
Wir müssen dann Gewichtsvektoren für jede der Datenvariablen berücksichtigen und sie auf folgende Weise organisieren.
Anpassungsfaktor = Durchschnitt von (Produkt aus Komplexitätsgewicht und Faktorgewicht) / 30
Anpassungstestpunkt für Testfalldesign = Gesamttestpunkt X (1 + Anpassungsfaktor für Testfalldesign)
ios Interview Fragen und Antworten für erfahrene PDF
Angepasster Testpunkt für die Testfallausführung = Gesamttestpunkt X (1 + Anpassungsfaktor für die Testfallausführung)
Gesamttestpunkt (normalisiert) X (1 + Anpassungsfaktor für Testfalldesign / -ausführung) = Angepasster Testpunkt für Testfalldesign / -ausführung
Gesamtaufwand in Personenstunden (PH) = Anzahl der normalisierten Testpunkte / Produktivität (in normalisierten Testpunkten pro Personenstunde)
Beispiele für Testschätzungen
Versuchen wir, die obige Formulierung auf eine andere praktische Anwendung anzuwenden.
Angenommen, wir haben eine Testanforderung, bei der wir 5 Testszenarien testen müssen.
Angenommen, Testszenario 1 hat 5 erwartete Testergebnisse, Testszenario 2 6 erwartete Testergebnisse, Testszenario 3 nur 2 erwartete Testergebnisse, Testszenario 4 9 erwartete Testergebnisse, Testszenario 5 und 9 erwartete Testergebnisse.
Daher klassifizieren wir die Testszenarien in drei Klassen, d. H. Komplex, einfach und moderat, basierend auf der Gesamtzahl der erwarteten Ergebnisse in diesen drei Klassen.
Komplexe Klassen haben mehr als 7 erwartete Ergebnisse, während die einfachen aus weniger als 5 erwarteten Ergebnissen bestehen und die moderaten Szenarien aus 4 bis 7 erwarteten Ergebnissen bestehen.
Wir klassifizieren daher Testszenario 1 und Testszenario 2 als moderate Szenarien, Szenario 5 und Szenario 6 als komplexe und Testszenario 3 als einfach.
Wir werden nun Testpunkte auf alle diese Szenarien anwenden. Wir wenden 5 Testpunkte für komplexe Klassen an, 3 für moderate und 2 für einfache Szenarien.
In all diesen Testszenarien multiplizieren wir die angenommenen Testpunkte mit der Gesamtzahl der erwarteten Ergebnisse. Wir erhalten also die folgenden Annäherungen.
Szenario 1: 3 Testpunkte * 5 erwartete Testergebnisse = Angepasste Testpunkte = 25
Szenario 2: 3 Testpunkte * 6 erwartete Testergebnisse = Angepasste Testpunkte = 30
Szenario 3: 2 Testpunkte * 2 erwartete Testergebnisse = Angepasste Testpunkte = 4
Szenario 4: 5 Testpunkte * 9 erwartete Testergebnisse = Angepasste Testpunkte = 45
Szenario 5: 5 Testpunkte * 9 erwartete Testergebnisse = Angepasste Testpunkte = 45
Wenn man bedenkt, dass wir für jeden angepassten Testpunkt 5 Personenstunden beantragen müssen, erhalten wir das folgende ungefähre Ergebnis.
Testszenario 1: 25 angepasste Testpunkte * 5 Personenstunden = 125 Personenstunden
Testszenario 2: 30 angepasste Testpunkte * 5 Personenstunden = 150 Personenstunden
Testszenario 3: 4 angepasste Testpunkte * 5 Personenstunden = 20 Personenstunden
Testszenario 4: 45 angepasste Testpunkte * 5 Personenstunden = 225 Personenstunden
Testszenario 5: 45 angepasste Testpunkte * 5 Personenstunden = 225 Personenstunden
Die ungefähre Gesamtstundenzahl beträgt also: 745 Personenstunden
Use Case Point Estimation-Methode
Die Use-Case-Point-Methode basiert auf den Anwendungsfällen, in denen wir den Gesamtaufwand für die Testschätzung basierend auf den Anwendungsfällen oder den Anforderungen berechnen.
Hier ist der detaillierte Prozess der Use-Case-Point-Schätzmethode:
Ein Beispiel dafür ist, dass wir in einer bestimmten Anforderung 5 Anwendungsfälle haben, Anwendungsfall 1, Anwendungsfall 2, ... bzw. Anwendungsfall 5. Betrachten wir nun, dass Anwendungsfall 1 aus 6 Akteuren besteht, Anwendungsfall 2 aus 15 Akteuren besteht, Anwendungsfälle 3, 4 und 5, 3, 4 bzw. 5 Akteure.
Wir betrachten jeden Anwendungsfall, bei dem die Gesamtzahl der Akteure weniger als 5 beträgt, als negativ, jeden Anwendungsfall mit der Gesamtzahl der Akteure als gleich oder mehr als 5 und weniger als oder gleich 10 als positiv und jeden Anwendungsfall mit mehr als 10 Schauspieler als außergewöhnlich.
Wir beschließen, den außergewöhnlichen Anwendungsfällen 2 Punkte zuzuweisen, 1 den positiven und -1 den negativen.
Daher kategorisieren wir die Anwendungsfälle 1 und 5 als positiv, den Anwendungsfall 2 als außergewöhnlich und die Anwendungsfälle 3, 4 als negativ, basierend auf unseren oben genannten Annahmen.
Also die unverarbeiteten Akteurgewichte = Anwendungsfall 1 = (Gesamtzahl der Akteure) 5 * 1 (der zugewiesene Punkt) = 5. Ähnlich
Anwendungsfall 2 = 15 * 2 = 30.
Wenn wir den Vorgang für den Rest der Anwendungsfälle wiederholen, erhalten wir die Gewichte für unverarbeitete Akteure = 33
Unverarbeitetes Anwendungsfallgewicht = Gesamt-Nr. Anwendungsfälle = 5
Unverarbeiteter Anwendungsfallpunkt = Nicht angepasstes Akteurgewicht + Nicht angepasstes Anwendungsfallgewicht = 33 + 5 = 38
Verarbeiteter Anwendungsfallpunkt = 38 * (0,65+ (0,01 * 50) = ungefähr 26,7 oder 28 Personenstunden
Work-Phase-Breakdown-Technik
Die Arbeitsphasen-Aufschlüsselungstechnik kann in den folgenden Schritten beschrieben werden.
- Teilen Sie die gesamte Arbeit in Phasen auf.
- Beginnen Sie mit der einfachsten Phase und weisen Sie ihr einen ungefähren Schätzwert zu.
- Fahren Sie dann mit der Identifizierung der nächstmöglichen Phase fort, die nach Abschluss dieser Phase begonnen werden könnte.
- Leiten Sie einen möglichen Satz von Approximationswerten ab, die auf diese Phase angewendet werden könnten, und wählen Sie den Maximalwert unter allen abgeleiteten Approximationswerten aus.
- Fassen Sie den angenäherten Schätzwert zusammen, indem Sie den aktuellen Schätzwert für den Phasenaufwand zum bereits vorhandenen Wert addieren.
- Fahren Sie mit den Schritten 3 bis 5 fort, bis alle im ersten Schritt identifizierten Phasen erschöpft sind.
- Akzeptieren Sie den endgültigen ungefähren Schätzwert als den endgültigen.
Angenommen, in einer Anforderung gibt es 5 erforderliche Phasen. In der ersten Phase 1 gehen wir also davon aus, dass insgesamt 35 Personenstunden erforderlich sind, und beginnen dann mit der nächsten Phase 2, für die wir 4 vergleichende Annahmen von 35, 45, 55 bzw. 65 haben.
Wir betrachten also die 65-Personen-Stunde, die hier der Maximalwert ist. In Phase 3, 4, 5 legen wir Schätzungen (12, 33, 43, 54), (15, 10, 7, 8) bzw. (2, 16, 5, 13) vor. Durch Anwendung dieses Prinzips erhalten wir jeweils 185 Personenstunden.
Ich lege Informationen zu - Wie man den Testaufwand für jede Testaufgabe abschätzt, die ich aus meiner Erfahrung gelernt habe.
9 Allgemeine Tipps zum genauen Schätzen der Testzeit
Faktoren, die die Schätzung von Softwaretests beeinflussen, und allgemeine Tipps zur genauen Schätzung:
# 1) Denken Sie an etwas Pufferzeit
Die Schätzung sollte einen Puffer enthalten. Fügen Sie jedoch keinen Puffer hinzu, was nicht realistisch ist. Ein Puffer in der Schätzung ermöglicht es, eventuell auftretende Verzögerungen zu bewältigen. Ein Puffer hilft auch dabei, eine maximale Testabdeckung sicherzustellen.
# 2) Betrachten Sie den Fehlerzyklus
Die Testschätzung umfasst auch den Fehlerzyklus. Der tatsächliche Testzyklus kann mehr Tage dauern als geschätzt. Um dies zu vermeiden, sollten wir berücksichtigen, dass der Testzyklus von der Stabilität des Builds abhängt. Wenn der Build nicht stabil ist, benötigen Entwickler möglicherweise mehr Zeit, um das Problem zu beheben, und der Testzyklus wird natürlich automatisch verlängert.
# 3) Verfügbarkeit aller Ressourcen für den geschätzten Zeitraum
Bei der Testschätzung sollten alle von den Teammitgliedern geplanten Blätter (normalerweise lange Blätter) in den nächsten Wochen oder Monaten berücksichtigt werden. Dadurch wird sichergestellt, dass die Schätzungen realistisch sind.
Bei der Schätzung sollte eine feste Anzahl von Ressourcen für einen Testzyklus berücksichtigt werden. Wenn sich die Anzahl der Ressourcen verringert, sollte die Schätzung erneut besucht und entsprechend aktualisiert werden.
# 4) Können wir parallele Tests durchführen?
Haben Sie einige frühere Versionen desselben Produkts, damit Sie die Ausgabe vergleichen können? Wenn ja, kann dies Ihre Testaufgabe etwas erleichtern. Sie sollten über die Schätzung nachdenken, die auf Ihrer Produktversion basiert.
Welche der folgenden Aussagen trifft auf einen Integrationstest zu?
# 5) Schätzungen können schief gehen - Besuchen Sie die Schätzungen daher in der Anfangsphase häufig erneut, bevor Sie sie festschreiben.
In der Anfangsphase sollten wir die Testschätzungen häufig erneut besuchen und bei Bedarf Änderungen vornehmen. Wir sollten die Schätzung nicht verlängern, sobald wir sie einfrieren, es sei denn, die Anforderungen ändern sich erheblich.
# 6) Denken Sie an Ihre Erfahrungen in der Vergangenheit, um Urteile zu fällen!
Erfahrungen aus früheren Projekten spielen eine wichtige Rolle bei der Erstellung von Zeitschätzungen. Wir können versuchen, alle Schwierigkeiten oder Probleme zu vermeiden, mit denen wir in früheren Projekten konfrontiert waren. Wir können analysieren, wie die vorherigen Schätzungen waren und wie viel sie dazu beigetragen haben, das Produkt pünktlich zu liefern.
# 7) Betrachten Sie den Projektumfang
Wissen, was das Endziel des Projekts ist und Liste aller endgültigen Ergebnisse. Faktoren, die bei kleinen und großen Projekten berücksichtigt werden müssen, sind sehr unterschiedlich.
Das große Projekt umfasst normalerweise das Einrichten eines Testbeds, das Generieren von Testdaten, Testskripten usw. Daher sollten die Schätzungen auf all diesen Faktoren basieren. Während in kleinen Projekten der Testzyklus normalerweise das Schreiben, Ausführen und Regressieren von Testfällen umfasst.
# 8) Werden Sie Lasttests durchführen?
Wenn Sie viel Zeit für Leistungstests benötigen, schätzen Sie entsprechend. Schätzungen für Projekte, die Lasttests beinhalten, sollten unterschiedlich betrachtet werden.
# 9) Kennen Sie Ihr Team?
Wenn Sie die Stärken und Schwächen der in Ihrem Team tätigen Personen kennen, können Sie die Testaufgaben genauer abschätzen. Bei der Schätzung sollte berücksichtigt werden, dass möglicherweise nicht alle Ressourcen das gleiche Produktivitätsniveau aufweisen. Einige Leute können schneller ausführen als andere. Dies ist zwar kein wesentlicher Faktor, summiert sich jedoch zur Gesamtverzögerung der zu erbringenden Leistungen.
Fazit
Software-Testschätzung ist die Praxis, die die Einbeziehung erfahrener Fachleute sowie die Einführung branchenweiter Best Practices wie Testfallpunkte und die Verwendung von Fallpunktmethoden erfordert.
Es ist auch wichtig, offen für die Anpassung der erforderlichen Prozesse zu sein. Die erfolgreiche Implementierung dieser Prozesse führt zu einer allgemeinen Verbesserung des Testprozesses.
Dies ist ein Gastartikel des Autors „N. Sandhya Rani “.
Literatur-Empfehlungen
- Beste QA Software Testing Services von SoftwareTestingHelp
- QA-Outsourcing-Leitfaden: Software-Test-Outsourcing-Unternehmen
- Alpha-Tests und Beta-Tests (eine vollständige Anleitung)
- Perfect Software Testing Resume Guide (mit Software Tester Resume Sample)
- Software-Testjobs: Eine vollständige Anleitung zu QA-Testjobs
- Agile Schätztechniken: Eine echte Schätzung in einem agilen Projekt
- 68 Grundlegende Ressourcen, um ein erfolgreicher Tester zu sein (nicht verpassen!)
- Arten von Softwaretests: Verschiedene Testtypen mit Details