Alle Menschen machen Fehler — auch Softwareentwickler. Erfahren Sie, wie der Lebenszyklus von Softwaretests dazu beiträgt, dass Anwendungen fehlerfrei ausgeführt werden.
A QUICK SUMMARY – FOR THE BUSY ONES
TABLE OF CONTENTS
Alle Menschen machen Fehler—sogar Entwickler von Web-Apps, Entwickler mobiler Apps und andere Softwareentwickler. Manchmal sind die Fehler, die Softwareentwickler machen, völlig belanglos und leicht zu übersehen. Schlimmer noch, sie sind geringfügige Ärgernisse. Leider haben einige Fehler viel größere Konsequenzen und können sogar das Leben von Menschen gefährden.
In den letzten Jahrzehnten hat sich die Softwaretestbranche sprunghaft weiterentwickelt, um sicherzustellen, dass Softwareanwendungen fehlerfrei laufen. Dieser Artikel erklärt, was moderne Softwaretests beinhalten, und beschreibt detailliert jede Phase des Softwaretestlebenszyklus (STLC).
Techopädie definiert Softwaretests als „eine Reihe von Prozessen zur Untersuchung, Bewertung und Feststellung der Vollständigkeit und Qualität von Computersoftware. Softwaretests stellen sicher, dass ein Softwareprodukt den regulatorischen, geschäftlichen, technischen, funktionalen und Benutzeranforderungen entspricht.“
Mit anderen Worten, beim Softwaretest wird überprüft, ob eine Softwareanwendung:
Im Großen und Ganzen können Softwaretests entweder manuell oder automatisiert. Beim manuellen Softwaretest werden Testfälle (mehr dazu später in diesem Artikel) manuell ausgeführt. Beim automatisierten Softwaretest werden Testfälle mithilfe verschiedener Tools für Automatisierungstests ausgeführt, was dem Softwaretest viele Vorteile bietet, wie z. B. eine verbesserte Zuverlässigkeit, eine schnellere Testfallausführung und eine hervorragende Wiederverwendbarkeit. Automatisiertes Testen ist jedoch nicht für alle Arten von Tests geeignet, insbesondere nicht für solche, die die Erfahrung, das Wissen, die analytischen Fähigkeiten, die Intuition und die Kreativität des Testers erfordern.
Manuelles und automatisiertes Testen von Software hat viele Vorteile, von denen einige offensichtlicher sind als andere:
Nachdem wir die Vorteile von Softwaretests und ihre Bedeutung erklärt haben, schauen wir uns den Lebenszyklus von Softwaretests genauer an, um mehr über die sechs Testphasen zu erfahren.
Das Wort „Lebenszyklus“ ist definiert als eine Reihe von Phasen, die etwas (z. B. ein Individuum, eine Kultur oder ein hergestelltes Produkt) im Laufe seines Lebens durchläuft. Wenn wir über den Lebenszyklus von Softwaretests, kurz STLC, sprechen, meinen wir die Abfolge von Aktivitäten, die das Testteam durchführt, um maximale Ergebnisse beim Softwaretest sicherzustellen.
Zu den Phasen des Lebenszyklus von Softwaretests gehören:
Jede dieser sechs Phasen hat bestimmte Eingangs- und Ausgangskriterien, die die Mindestbedingungen angeben, die vor Beginn des Softwaretests erfüllt sein müssen, bzw. die Mindestbedingungen, die erfüllt sein müssen, um den Softwaretest zu beenden. Natürlich laufen die Dinge in der realen Welt nicht immer genau nach Plan, und es ist ziemlich üblich, zur nächsten Phase überzugehen, ohne alle Ausgangskriterien für die vorherige Phase zu erfüllen.
Die erste Phase von STLC ist die Anforderungsanalyse. Das Hauptziel dieser Phase besteht darin, zu verstehen, was getestet werden muss, und die testbaren Anforderungen herauszufinden. Zu den verschiedenen Arten von Anforderungen gehören Geschäftsanforderungen, Architektur- und Designanforderungen sowie System- und Integrationsanforderungen. Wenn das Testteam Schwierigkeiten hat, eine bestimmte Anforderung zu verstehen, kann es verschiedene Interessengruppen, z. B. Geschäftsanalysten, bitten, diese zu klären. Das Testteam erstellt dann RTM (Requirement Traceability Matrix). Dabei handelt es sich um ein Dokument, das Benutzeranforderungen anhand von Testfällen abbildet und nachverfolgt. Gegebenenfalls erstellt das Testteam auch einen Bericht über die Machbarkeit der Automatisierung.
Einreisekriterien: verfügbares Anforderungsdokument, definierte Akzeptanzkriterien, verfügbares Dokument zur Anwendungsarchitektur
Ausstiegskriterien: RTM (Requirement Traceability Matrix) unterzeichnet, Machbarkeitsbericht zur Testautomatisierung vom Kunden unterzeichnet
Die zweite Phase des Lebenszyklus von Softwaretests ist die Testplanung. In dieser Phase wird die gesamte Teststrategie definiert, und der Testmanager legt den Aufwand und die Kostenschätzungen für das gesamte Projekt fest. Der Aufwand und die Kosten des Testens hängen weitgehend davon ab, welche Testtypen abgedeckt werden und welche ignoriert werden. Zu den häufig verwendeten Testtypen gehören Komponententests, API-Tests, Integrationstests, Systemtests, Sanity-Tests, Smoke-Tests, Installations- und Deinstallationstests, Schnittstellentests, Regressionstests und agile Tests. Jeder Testtyp hat seine eigenen Merkmale und Anwendungen, und Tester müssen mit ihnen vertraut sein, um sie nach Priorität sortieren zu können.
Einreisekriterien: Anforderungsdokumente, Matrix zur Rückverfolgbarkeit von Anforderungen, Machbarkeitsdokument zur Testautomatisierung
Ausstiegskriterien: genehmigtes Testplan/Strategiedokument, unterzeichnetes Dokument zur Aufwandsschätzung
Die dritte Phase von STLC ist die Testfallentwicklung. Wie der Name schon sagt, besteht der Hauptzweck dieser Phase darin, detaillierte Testfälle zu erstellen und Daten für den Test vorzubereiten. Ein Testfall spezifiziert die Eingaben, die Ausführungsbedingungen, das Testverfahren und die erwarteten Ergebnisse, die einen einzelnen Test definieren, der ausgeführt werden muss, um ein bestimmtes Softwaretestziel zu erreichen. Die Meinungen darüber, wie genau Testfälle erstellt werden sollten, gehen auseinander, aber es ist immer wichtig, sie einfach, transparent und einzigartig zu gestalten. Alle Softwareanforderungen sollten zu 100% abgedeckt sein, was mit Hilfe von RTM gewährleistet werden kann. Wenn Automatisierungstests verwendet werden sollen, ist dies der richtige Zeitpunkt, um Skripte für Automatisierungstests zu erstellen.
Einreisekriterien: Anforderungsdokumente, RTM- und Testplan, Automatisierungsanalysebericht
Ausstiegskriterien: überprüfte und signierte Testfälle/Skripte, überprüfte und signierte Testdaten
Die vierte Stufe von STLC ist die Einrichtung der Umgebung. Obwohl diese Phase sehr zeitaufwändig sein kann, ist sie absolut wichtig, da sie es dem Testteam ermöglicht, Testfälle effizient auszuführen. Es gibt viele Softwaretools und Hardwaregeräte, die für Softwaretests verwendet werden können, darunter Selenium, Katalon Studio, TestComplete, Appium oder Ranorex. Nicht alle Tests werden auf lokalen Computern ausgeführt. Daher kann es erforderlich sein, einen Testserver einzurichten, der die getestete Softwareanwendung unterstützt. Ein Nebentest (ein Vorversuch, der durchgeführt wird, um einfache Fehler bei wichtigen Funktionen aufzudecken, bevor die Software zur eingehenden Prüfung an das Qualitätssicherungsteam weitergegeben wird) wird durchgeführt, um die Einsatzbereitschaft der Testumgebung zu bestätigen. Diese Phase kann zwar parallel zur vorherigen Phase durchgeführt werden, es ist jedoch in der Regel besser, sie der Reihe nach durchzuführen.
Einreisekriterien: verfügbare Systemdesign- und Architekturdokumente, verfügbarer Umgebungseinrichtungsplan
Ausstiegskriterien: Die Einrichtung der Umgebung funktioniert gemäß Plan und Checkliste, vollständige Einrichtung der Testdaten, erfolgreicher Rauchtest
Die fünfte Stufe von STLC ist die Testausführung. Wenn die Testumgebung bereit ist, ist es an der Zeit, die Tests auf der Grundlage der Testpläne und der in Phase 2 und Phase 3 vorbereiteten Testfälle durchzuführen. Testfälle, die erfolgreich ausgeführt werden, werden als „bestanden“ markiert, während fehlgeschlagene Testfälle als „fehlgeschlagen“ markiert und den Softwareentwicklern zur weiteren Analyse gemeldet werden. Wenn ein Testfall aufgrund eines Fehlers nicht ausgeführt werden kann, sollte er als „blockiert“ markiert werden. Wenn der Testfall entsperrt ist, sollte er als „nicht ausgeführt“ markiert werden. Nach der Ausführung aller Testfälle erstellt das Testteam einen Testausführungsbericht und möglicherweise sogar detaillierte Berichte für einzelne Testfälle.
Einreisekriterien: Baseline-RTM, Testplan, Testfall/Skripte sind verfügbar, Testumgebung ist bereit, Testdaten-Setup abgeschlossen, verfügbarer Einheiten-/Integrationstestbericht für den zu testenden Build
Ausstiegskriterien: Alle geplanten Tests werden ausgeführt, Mängel protokolliert und bis zum Abschluss verfolgt
Die sechste und letzte Phase von STLC ist der Abschluss des Testzyklus. Diese Phase beinhaltet das Testmeeting, um bekannte Probleme und Qualitätsmängel im Code zu bewerten, den Abschluss des Softwaretestzyklus auf der Grundlage von Zeit, Testumfang, Kosten, kritischen Geschäftszielen, Qualität und anderen Faktoren zu besprechen und verschiedene Engpässe zu identifizieren, die beseitigt werden sollten, um die Effizienz künftiger Tests zu erhöhen. Schließlich wird vom Testteam ein Bericht über den Abschluss des Tests erstellt und vom Kunden unterzeichnet.
Einreisekriterien: abgeschlossene Tests, verfügbare Testergebnisse, verfügbare Fehlerprotokolle
Ausstiegskriterien: Der Testabschlussbericht wurde vom Kunden unterzeichnet
Der Lebenszyklus von Softwaretests kann als systematische und sequentielle Methode zur Durchführung von Softwaretests beschrieben werden. Er besteht aus sechs verschiedenen Phasen: Anforderungsanalyse, Testplanung, Testfallentwicklung, Einrichtung der Testumgebung, Testausführung und Abschluss des Testzyklus. Jede dieser sechs Phasen hat bestimmte Eingangs- und Ausgangskriterien, anhand derer festgelegt wird, wann Softwaretester zur nächsten Phase übergehen können. Wenn Softwaretests richtig durchgeführt werden, können sie Geld sparen, den Gewinn steigern, die Kundenzufriedenheit verbessern, die Zuverlässigkeit gewährleisten, die Wartungskosten senken und Vertrauen schaffen, was sie zu einem äußerst wichtigen Bestandteil der modernen Softwareentwicklung macht.
Our promise
Every year, Brainhub helps 750,000+ founders, leaders and software engineers make smart tech decisions. We earn that trust by openly sharing our insights based on practical software engineering experience.
Authors
Read next
Popular this month