Was ist eine Softwaretestmethode?
Die Softwaretestmethode ist definiert als Strategien und Testtypen, mit denen bestätigt wird, dass die zu testende Anwendung den Kundenerwartungen entspricht. Zu den Testmethoden gehören funktionale und nicht funktionale Tests zur Validierung des AUT. Beispiele für Testmethoden sind Unit-Tests, Integrationstests, Systemtests, Leistungstests usw. Jede Testmethode hat ein definiertes Testziel, eine Teststrategie und Ergebnisse.
Hinweis : Da Softwaretests ein wesentlicher Bestandteil jeder Entwicklungsmethode sind, verwenden viele Unternehmen den Begriff Entwicklungsmethoden und Testmethoden umgangssprachlich. Daher könnten sich Testmethoden auch auf Wasserfall-, agile und andere QS-Modelle beziehen, im Gegensatz zu der obigen Definition von Testmethoden. Die Diskussion über verschiedene Testtypen bietet den Lesern keinen Mehrwert. Daher werden wir die verschiedenen Entwicklungsmodelle diskutieren.
In diesem Tutorial lernen Sie:
- Wasserfall-Modell
- Iterative Entwicklung
- Agile Methodik
- Extremes Programmieren
- Welche Softwaremethode soll man wählen?
- Wie richte ich Softwaretestmethoden ein?
Wasserfall-Modell
Was ist es?
Im Wasserfall - Modell, Software - Entwicklung Fortschritt durch verschiedene Phasen wie Anforderungsanalyse, Design usw. - der Reihe nach .
In diesem Modell beginnt die nächste Phase erst, wenn die frühere Phase abgeschlossen ist.
Was ist der Testansatz?
Die erste Phase im Wasserfallmodell ist die Anforderungsphase, in der alle Projektanforderungen vor Beginn der Prüfung vollständig definiert sind. In dieser Phase erarbeitet das Testteam einen Brainstorming-Testumfang, eine Teststrategie und erstellt einen detaillierten Testplan.
Erst wenn das Design der Software abgeschlossen ist, führt das Team die Testfälle aus, um sicherzustellen, dass sich die entwickelte Software wie erwartet verhält.
Bei dieser Methodik fährt das Testteam erst mit der nächsten Phase fort, wenn die vorherige Phase abgeschlossen ist.
Vorteile
Dieses Software-Engineering-Modell ist sehr einfach zu planen und zu verwalten. Daher können Projekte, bei denen die Anforderungen im Voraus klar definiert und angegeben wurden, einfach mit einem Wasserfallmodell getestet werden.
Nachteile
Im Wasserfallmodell können Sie erst mit der nächsten Phase beginnen, wenn die vorherige Phase abgeschlossen ist. Daher kann dieses Modell ungeplante Ereignisse und Unsicherheiten nicht berücksichtigen.
Diese Methode eignet sich nicht für Projekte, bei denen sich die Anforderungen häufig ändern.
Iterative Entwicklung
Was ist es?
In diesem Modell ist ein großes Projekt in kleine Teile unterteilt, und jeder Teil wird mehreren Iterationen des Wasserfallmodells unterzogen. Am Ende einer Iteration wird ein neues Modul entwickelt oder ein vorhandenes Modul erweitert. Dieses Modul ist in die Softwarearchitektur integriert und das gesamte System wird zusammen getestet
Was ist der Testansatz?
Sobald die Iteration abgeschlossen ist, wird das gesamte System getestet. Das Feedback vom Test ist sofort verfügbar und wird in den nächsten Zyklus einbezogen. Die für aufeinanderfolgende Iterationen erforderliche Testzeit kann basierend auf den Erfahrungen aus früheren Iterationen reduziert werden.
Vorteile
Der Hauptvorteil der iterativen Entwicklung besteht darin, dass das Testfeedback am Ende jedes Zyklus sofort verfügbar ist.
Nachteile
Dieses Modell erhöht den Kommunikationsaufwand erheblich, da am Ende jedes Zyklus Feedback zu den zu erbringenden Leistungen, dem Aufwand usw. gegeben werden muss.
Agile Methodik
Was ist es?
Herkömmliche Softwareentwicklungsmethoden gehen davon aus, dass die Softwareanforderungen während des gesamten Projekts konstant bleiben. Mit zunehmender Komplexität ändern sich die Anforderungen jedoch erheblich und entwickeln sich kontinuierlich weiter. Manchmal ist sich der Kunde selbst nicht sicher, was er will. Obwohl das iterative Modell dieses Problem behebt, basiert es immer noch auf dem Wasserfallmodell.
In der agilen Methodik wird Software in inkrementellen, schnellen Zyklen entwickelt. Interaktionen zwischen Kunden, Entwicklern und Kunden werden eher betont als Prozesse und Tools. Die agile Methodik konzentriert sich eher auf die Reaktion auf Veränderungen als auf eine umfassende Planung.
Was ist der Testansatz?
Inkrementelle Tests werden in agilen Entwicklungsmethoden verwendet, und daher wird jede Version des Projekts gründlich getestet. Dadurch wird sichergestellt, dass alle Fehler im System vor der nächsten Version behoben werden.
Vorteile
Es ist jederzeit möglich, Änderungen am Projekt vorzunehmen, um die Anforderungen zu erfüllen.
Diese inkrementellen Tests minimieren die Risiken.
Nachteile
Ständige Kundeninteraktion bedeutet zusätzlichen Zeitdruck auf alle Beteiligten, einschließlich des Kunden selbst, der Softwareentwicklung und der Testteams.
Extremes Programmieren
Was ist es?
Extreme Programmierung ist eine Art agiler Methodik, die an kurze Entwicklungszyklen glaubt. Ein Projekt ist in einfache Engineering-Aufgaben unterteilt. Programmierer codieren eine einfache Software und wenden sich an den Kunden, um Feedback zu erhalten. Überprüfungspunkte des Kunden werden einbezogen und die Entwickler fahren mit der nächsten Aufgabe fort.
Bei extremen Programmierern arbeiten Entwickler normalerweise paarweise.
Extreme Programming wird an Orten eingesetzt, an denen sich die Kundenanforderungen ständig ändern.
Was ist der Testansatz?
Extreme Programmierung folgt einer testgetriebenen Entwicklung, die wie folgt beschrieben wird:
- Fügen Sie der Testsuite einen Testfall hinzu, um die neue Funktionalität zu überprüfen, die noch entwickelt werden muss
- Führen Sie alle Tests aus, und natürlich muss der neu hinzugefügte Testfall fehlschlagen, da die Funktionalität noch nicht codiert ist
- Schreiben Sie Code, um die Funktion zu implementieren
- Führen Sie die Testsuite erneut aus. Diesmal sollte der neue Testfall bestehen, da die Funktion codiert wurde
Vorteile
Kunden, die ein vages Software-Design im Auge haben, könnten extreme Programmierung verwenden
Kontinuierliche Tests und die kontinuierliche Integration kleiner Releases stellen sicher, dass der gelieferte Software-Code von hoher Qualität ist
Nachteile
Besprechungen zwischen dem Softwareentwicklungsteam und den Kunden erhöhen den Zeitbedarf.
Welche Softwaremethode soll man wählen?
Für die Softwareentwicklung und die entsprechenden Tests stehen unzählige Methoden zur Verfügung. Jede Testtechnik und -methode ist für einen bestimmten Zweck konzipiert und hat ihre relativen Vor- und Nachteile.
Die Auswahl einer bestimmten Methodik hängt von vielen Faktoren ab, wie z. B. der Art eines Projekts, den Kundenanforderungen, dem Projektplan usw.
Aus Testsicht drängen einige Methoden darauf, Eingaben zu Beginn des Entwicklungslebenszyklus zu testen, während andere warten, bis ein funktionierendes Modell des Systems bereit ist.
Wie richte ich Softwaretestmethoden ein?
Softwaretestmethoden sollten nicht nur zum Testen von Softwarecode eingerichtet werden. Das Gesamtbild sollte berücksichtigt werden und das Hauptziel des Projekts sollte mit der Testmethode zufrieden sein.
Planung
Eine realistische Planung ist der Schlüssel zur Implementierung einer erfolgreichen Testmethode, und der Zeitplan sollte den Anforderungen jedes Teammitglieds entsprechen.
Definierte Ergebnisse
Um alle Mitglieder des Teams auf derselben Seite zu halten, sollten genau definierte Ergebnisse bereitgestellt werden. Die Ergebnisse sollten direkten Inhalt ohne Mehrdeutigkeit enthalten.
Testansatz
Sobald die Planung abgeschlossen ist und definierte Ergebnisse verfügbar sind, sollte das Testteam in der Lage sein, den richtigen Testansatz zu formulieren. Definitionsdokumente und Entwicklertreffen sollten das Team über den besten Testansatz informieren, der für das Projekt verwendet werden kann.
Berichterstattung
Eine transparente Berichterstattung ist sehr schwer zu erreichen, aber dieser Schritt bestimmt die Wirksamkeit des im Projekt verwendeten Testansatzes.