Softwaretestmethoden: QA-Modelle
โก Intelligente Zusammenfassung
Die Softwaretestmethodik definiert die Strategien und Testarten, mit denen sichergestellt wird, dass eine Anwendung die Kundenerwartungen erfรผllt. Wasserfallmodell, iteratives Vorgehen, agiles Vorgehen und Extreme Programming prรคgen jeweils den Beginn der Tests und die Art der Rรผckmeldung.

Was ist Softwaretestmethodik?
Unter Softwaretestmethodik versteht man Strategien und Testarten, die verwendet werden, um zu bestรคtigen, dass die zu testende Anwendung die Erwartungen des Kunden erfรผllt. Zu den Testmethoden gehรถren funktionale und nichtfunktionale Tests zur Validierung des AUT. Beispiele fรผr Testmethoden sind: Unit Tests, Integrationstests, Systemtest, Performance Testing usw. Jede Testmethode hat ein definiertes Testziel, eine Teststrategie und Ergebnisse.
Hinweis: Da Softwaretests ein integraler Bestandteil jeder Entwicklungsmethodik sind, verwenden viele Unternehmen umgangssprachlich den Begriff Entwicklungsmethodik und Testmethodik. Daher kรถnnten sich Testmethoden im Gegensatz zur obigen Definition von Testmethoden auch auf Wasserfall-, Agile- und andere QS-Modelle beziehen. Die Diskussion รผber verschiedene Testarten bringt fรผr die Leser keinen Mehrwert. Daher werden wir die verschiedenen Entwicklungsmodelle diskutieren.
Testmethodik vs. Testart vs. Teststrategie
Der obige Hinweis deutet auf eine echte Unklarheit in der Branche hin. Drei Begriffe werden im Gesprรคch synonym verwendet, haben aber in einem Projektdokument unterschiedliche Bedeutungen, und diese Verwechslung fรผhrt zu Testplรคnen, die die falsche Frage beantworten.
| Bedingungen | Fragen, die es beantwortet | Beschlossen von | Beispiele |
|---|---|---|---|
| Testmethode | Wann und wie wird das Testen in den Entwicklungszyklus integriert? | Das verwendete Entwicklungsmodell | Wasserfallmodell, iteratives Modell, agiles Modell, extremes Programming |
| Prรผfart | Welcher Aspekt des Produkts wird รผberprรผft? | Risiko- und Anforderungsabdeckung | Einheit, Integration, System, Leistung, Sicherheit |
| Testniveau | In welcher Tiefe wird die Software untersucht? | Position in der Build-Hierarchie | Komponente, Integration, System, Abnahme |
| Teststrategie | Wie sieht unser organisatorischer Ansatz in Bezug auf Qualitรคt aus? | QA-Leitung, gilt fรผr alle Projekte | Risikobasiert, Automatisierung zuerst, Shift Left |
| Versuchsplan | Was genau wird in diesem Projekt getestet, wann und von wem? | Testmanager, projektspezifisch | Umfang, Zeitplan, Ressourcen, Ein- und Austrittskriterien |
Eine nรผtzliche Faustregel: Die Methodik gibt den Rhythmus vor, die Art bestimmt das Ziel und die Versuchsplan Die Verpflichtung wird dokumentiert. In den folgenden Abschnitten werden die Methoden erlรคutert.
Wasserfall-Modell
Was ist das?
Im Wasserfall-Modell, Softwareentwicklungsfortschritt 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 vollstรคndig definiert werden, bevor mit dem Testen begonnen wird. In dieser Phase erarbeitet das Testteam ein Brainstorming รผber den Testumfang und die Teststrategie und entwirft einen detaillierten Testplan.
Erst wenn der Entwurf der Software abgeschlossen ist, beginnt das Team mit der Ausfรผhrung der Testfรคlle, um sicherzustellen, dass sich die entwickelte Software wie erwartet verhรคlt.
Bei dieser Methodik geht das Testteam erst dann zur nรคchsten Phase รผber, wenn die vorherige Phase abgeschlossen ist.
| Vorteile | Nachteile |
|---|---|
| Dieses Software-Engineering-Modell ist sehr einfach zu planen und zu verwalten. Daher kรถnnen Projekte, bei denen die Anforderungen im Vorfeld klar definiert und formuliert werden, problemlos mithilfe eines Wasserfallmodells getestet werden. | Im Wasserfallmodell kรถnnen Sie mit der nรคchsten Phase erst beginnen, wenn die vorherige Phase abgeschlossen ist. Daher kann dieses Modell keine ungeplanten Ereignisse und Unsicherheiten berรผcksichtigen. |
| Diese Methodik eignet sich nicht fรผr Projekte, bei denen sich die Anforderungen hรคufig รคndern. |
Iterative Entwicklung
Was ist das?
In diesem Modell wird ein groรes Projekt in kleine Teile zerlegt, und jeder Teil durchlรคuft mehrere Iterationen des Wasserfallmodells. Am Ende einer Iteration wird ein neues Modul entwickelt oder ein bestehendes Modul erweitert. Dieses Modul wird in die Softwarearchitektur integriert, und das gesamte System wird gemeinsam getestet.
Was ist der Testansatz?
Sobald die Iteration abgeschlossen ist, wird das gesamte System einem Test unterzogen. Das Feedback aus den Tests steht sofort zur Verfรผgung und flieรt in den nรคchsten Zyklus ein. Die in aufeinanderfolgenden Iterationen erforderliche Testzeit kann basierend auf den Erfahrungen aus vergangenen Iterationen reduziert werden.
| Vorteile | Nachteile |
|---|---|
| Der Hauptvorteil der iterativen Entwicklung besteht darin, dass das Testfeedback am Ende jedes Zyklus sofort verfรผgbar ist. | Dieses Modell erhรถht den Kommunikationsaufwand erheblich, da am Ende jedes Zyklus Feedback zu den Ergebnissen, dem Aufwand usw. gegeben werden muss. |
Agile Methodik
Was ist das?
Traditionelle Methoden der Softwareentwicklung gehen davon aus, dass die Softwareanforderungen wรคhrend des gesamten Projekts konstant bleiben. Mit zunehmender Komplexitรคt unterliegen die Anforderungen jedoch zahlreichen รnderungen und entwickeln sich kontinuierlich weiter. Manchmal ist sich der Kunde selbst nicht sicher, was er mรถchte. Obwohl das iterative Modell dieses Problem angeht, basiert es immer noch auf dem Wasserfallmodell.
Bei der agilen Methodik wird Software in inkrementellen, schnellen Zyklen entwickelt. Interaktionen zwischen Kunden, Entwicklern und Kunden stehen im Vordergrund und nicht Prozesse und Tools. Die agile Methodik konzentriert sich auf die Reaktion auf Verรคnderungen und nicht auf eine umfassende Planung.
Was ist der Testansatz?
Inkrementelles Testen wird in agilen Entwicklungsmethoden verwendet und daher wird jede Version des Projekts grรผndlich getestet. Dadurch wird sichergestellt, dass etwaige Fehler im System vor der nรคchsten Verรถffentlichung behoben werden.
| Vorteile | Nachteile |
|---|---|
| Es ist jederzeit mรถglich, รnderungen im Projekt vorzunehmen, um den Anforderungen gerecht zu werden. | Stรคndige Kundeninteraktion bedeutet zusรคtzlichen Zeitdruck fรผr alle Beteiligten, einschlieรlich des Kunden selbst, der Softwareentwicklungs- und Testteams. |
| Durch diese inkrementellen Tests werden Risiken minimiert. |
Extremes Programmieren
Was ist das?
Extreme Programming ist eine Art agiler Methodik, die auf kurze Entwicklungszyklen setzt. Ein Projekt wird in einfache technische Aufgaben unterteilt. Programmierer programmieren ein einfaches Stรผck Software und wenden sich an den Kunden, um Feedback einzuholen. RevDie Ansichtspunkte des Kunden flieรen ein und die Entwickler machen mit der nรคchsten Aufgabe weiter.
Bei extremer Programmierung arbeiten Entwickler normalerweise zu zweit.
Extremes Programmieren wird dort eingesetzt, wo sich die Kundenanforderungen stรคndig รคndern.
Was ist der Testansatz?
Extreme Programming folgt einer testgetriebenen Entwicklung, die wie folgt beschrieben wird:
- Hinzufรผgen Testfall zur Testsuite, um die neue Funktionalitรคt zu รผberprรผfen, die noch entwickelt werden muss.
- Fรผhren Sie alle Tests aus und offensichtlich muss der neu hinzugefรผgte Testfall fehlschlagen, da die Funktionalitรคt noch nicht codiert ist
- Schreiben Sie Code, um das Feature/die Funktionalitรคt zu implementieren
- Fรผhren Sie die Testsuite erneut aus. Dieses Mal sollte der neue Testfall erfolgreich sein, da die Funktionalitรคt codiert wurde
| Vorteile | Nachteile |
|---|---|
| Kunden mit einer vagen Software-Designvorstellung kรถnnten extreme Programmierung nutzen. | Besprechungen zwischen dem Softwareentwicklungsteam und Kunden erhรถhen den Zeitaufwand. |
| Kontinuierliche Tests und die kontinuierliche Integration kleiner Releases stellen sicher, dass der gelieferte Softwarecode von hoher Qualitรคt ist |
V-Modell und Spiralmodell
Zwei weitere Modelle kommen in den meisten Projekten zum Einsatz und runden das Bild ab, da jedes von ihnen auf unterschiedliche Weise eine Schwรคche des Wasserfallmodells behebt.
V-Modell. Das V-Modell, oft auch Verifizierung und Validierung genannt, ordnet jeder Entwicklungsphase eine entsprechende Testphase zu, dargestellt als die beiden Schenkel eines V. Anforderungen werden mit Akzeptanztests, High-Level-Design mit Systemtests, Low-Level-Design mit Integrationstests und Programmierung mit Komponententests verknรผpft. Der Vorteil liegt darin, dass die Testplanung parallel zu jeder Entwicklungsphase und nicht erst nach der Programmierung beginnt. So werden unklare Anforderungen bereits Monate vor dem Auftreten eines Fehlers durch den Entwickler der Akzeptanztests erkannt. Die Schwรคche des Modells ist eine รbernahme aus dem Wasserfallmodell: Es setzt weiterhin die Stabilitรคt der Anforderungen voraus.
Spiralmodell. Die Spiralmethode integriert eine explizite Risikoanalyse in die Iteration. Jeder Durchlauf umfasst vier Aktivitรคten: Ziele festlegen, Risiken identifizieren und beheben, entwickeln und testen sowie die nรคchste Iteration planen. Die Tests konzentrieren sich daher auf die Bereiche mit dem hรถchsten Risiko, anstatt gleichmรครig verteilt zu sein. Dieses Verfahren eignet sich fรผr groรe, kostspielige und langlaufende Programme wie in der Luft- und Raumfahrt oder bei Kernsystemen im Bankwesen, wo die Kosten einer spรคten Risikoerkennung gravierend sind. Fรผr ein kleines Webprojekt ist der Aufwand einer formalen Risikoanalyse in jedem Durchlauf selten gerechtfertigt.
Beide Modelle bewegen sich zwischen der Disziplin des Wasserfallmodells und der agilen Reaktionsfรคhigkeit. Wenn die Release-Frequenz wichtiger ist als beides, dann DevOps Die Pipeline integriert Tests in die kontinuierliche Integration, sodass jeder Commit automatisch verifiziert wird.
Welche Software-Methodik soll ich wรคhlen?
Fรผr die Softwareentwicklung und die entsprechenden Tests stehen unzรคhlige Methoden zur Verfรผgung. Jede Testtechnik und -methodik ist fรผr einen bestimmten Zweck konzipiert und hat ihre jeweiligen Vor- und Nachteile.
Die Auswahl einer bestimmten Methodik hรคngt von vielen Faktoren ab, wie z. B. der Art eines Projekts, Kundenanforderungen, Projektzeitplan usw.
Aus Testsicht drรคngen einige Methoden auf Testeingaben zu einem frรผhen Zeitpunkt im Entwicklungslebenszyklus, wรคhrend andere warten, bis ein funktionierendes Modell des Systems fertig ist.
Wie richtet man 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 Testmethodik erfรผllt werden. Sehen Sie sich diese Liste seriรถser Unternehmen an Anbieter von Softwaretestdiensten der Ihnen dabei helfen kann, effektive Teststrategien zu entwickeln, die auf die Ziele Ihres Projekts zugeschnitten sind.
Planung
Eine realistische Planung ist der Schlรผssel zur Implementierung einer erfolgreichen Testmethodik und der Zeitplan sollte den Bedรผrfnissen jedes Teammitglieds gerecht werden.
Definierte Liefergegenstรคnde
Um alle Teammitglieder auf dem gleichen Stand zu halten, sollten klar definierte Ergebnisse bereitgestellt werden. Die zu erbringenden Leistungen sollten direkte Inhalte ohne Unklarheiten 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 Entwicklerbesprechungen sollten dem Team Hinweise auf den besten Testansatz geben, der fรผr das Projekt verwendet werden kann.
Reporting
Eine transparente Berichterstattung ist sehr schwer zu erreichen, aber dieser Schritt bestimmt die Wirksamkeit des im Projekt verwendeten Testansatzes.




