Вы находитесь на странице: 1из 36

Einheit 13 Abtretung

Von Jawaj Duha


Testmethoden
Testmethoden im Software-Engineering sind Teststrategien, -ansätze oder -methoden, mit denen
ein bestimmtes Produkt getestet wird, um seine Benutzerfreundlichkeit sicherzustellen. Es stellt
sicher, dass das Produkt gemäß den Spezifikationen funktioniert und keine Nebenwirkungen hat,
wenn es außerhalb der Designparameter verwendet wird.

Warum sind Softwaretestmethoden wichtig?

• Es verwaltet Ihre Projektanforderungen, Testfälle, Fehler und Probleme in einer einzigen


integrierten Umgebung während des gesamten Testlebenszyklus.
• Es ist eine komplette Testlösung, die Anforderungsmanagement , Testfalldesigns, Release-
Management, Fehlerverfolgung usw. umfasst.
• Es handelt sich um einen sehr intuitiven Testansatz, der ein vollständiges Bild des
Softwareprodukts und des Gesundheitszustands liefert.

Funktionale vs. nicht-funktionale


Testmethoden
Funktionstests umfassen Anwendungstests anhand von Geschäftsanforderungen, die mehrere
Testtypen umfassen, die sicherstellen sollen, dass sich jeder Teil der Software so verhält, wie von
den Benutzern erwartet.

Nicht-funktionale Testmethoden beinhalten verschiedene Testtypen, die sich auf die betrieblichen
Aspekte einer Software konzentrieren. Dies ist der Schlüssel zur Veröffentlichung hochwertiger
Software, die von Endbenutzern leicht übernommen werden kann, indem ein robustes
Testframework erstellt wird, das sowohl funktionale als auch nicht-funktionale Testmethoden
implementiert.

Unit-Tests
• Es ist die Anfangsebene des Tests, die normalerweise von den Entwicklern in einer
testgesteuerten Umgebung durchgeführt wird, um Testfälle zu schreiben und auszuführen,
bevor die Software an das Testteam übergeben wird.
• Unit Testing ist eine Softwaretestmethodik, die sicherstellt, dass einzelne Komponenten der
Software perfekt für den Zweck funktionieren, für den sie entwickelt wurden.
• Unit-Tests erleichtern das Debuggen, da Fehler viel früher erkannt und vom Testteam leicht
behoben werden können.

Unit-Tests - Vorteile
• Reduziert Defekte in den neu entwickelten Funktionen oder reduziert Fehler bei der
Änderung der bestehenden Funktionalität
• Reduziert die Testkosten, da Fehler in einer sehr frühen Phase erfasst werden
• Verbessert das Design und ermöglicht eine bessere Umgestaltung des Codes
• Unit-Tests, wenn sie in den Build integriert sind, geben auch die Qualität des Builds an
Nachteile/Einschränkungen der Einheit
• eTesting kann nicht jeden Fehler in einer Anwendung erkennen
• Es ist unmöglich, jeden Ausführungspfad in jeder Softwareanwendung auszuwerten
Es gibt eine Begrenzung für die Anzahl der Szenarien und Testdaten, die der Entwickler
verwenden kann, um den Quellcode zu überprüfen.
Unit Testing Life Cyc
Unit-Testtechniken:

1. Black-Box-Tests - Mit denen die Benutzeroberfläche, Eingabe und Ausgabe getestet werden
2. White Box Testing - wird verwendet, um das Verhalten jeder dieser Funktionen zu testen
3. Gray Box Testing - Wird zur Durchführung
von Tests, Risiken und
Bewertungsmethoden verwendet.

Abnahmeprüfung
• Die Abnahmeprüfung ist die letzte Phase der
Funktionsprüfung, um die endgültige
Software für die Lieferung zu bewerten.
• Es stellt sicher, dass das Produkt den
Geschäftskriterien entspricht und die
Anforderungen des Endbenutzers vollständig erfüllt.
• Es führt interne und externe Tests durch. Das bedeutet, dass das Produkt zum Beta-Test in
die Hände der Benutzer gegeben und auch vom Qualitätsteam getestet wird.
• Beta-Tests sind der Schlüssel, um potenzielles Feedback von Benutzern zu erhalten und sie
vor der endgültigen Produktlieferung anzusprechen.
Abnahmetests in SDLC
Das folgende Diagramm erläutert die Abnahmeprüfung im
Softwareentwicklungslebenszyklus.

Die Abnahmetestfälle werden mit den Testdaten


oder mit einem Abnahmetestskript ausgeführt und
dann werden die Ergebnisse mit den erwarteten
verglichen.
Abnahmeprüfung - Kriterien
Akzeptanzkriterien werden anhand folgender Attribute definiert:

• Funktionale Richtigkeit und Vollständigkeit


• Datenintegrität
• Datenkonvertierung
• Benutzerfreundlichkeit
• Leistung
• Aktualität
• Vertraulichkeit und Verfügbarkeit
• Installierbarkeit und Aufrüstbarkeit
• Skalierbarkeit
• Dokumentation
Abnahmetestplan - Attribute
Die Abnahmetestaktivitäten werden phasenweise durchgeführt. Zunächst werden die Basistests
durchgeführt, die Ergebnisse sind zufriedenstellend, dann wird die Ausführung komplexerer
Szenarien durchgeführt.

Der Abnahmetestplan hat folgende Attribute:

• Einleitung
• Abnahmetest-Kategorie
• Betriebsumgebung
• Testfall-ID
• Testtitel
• Testziel
Abnahmeprüfbericht - Attribute
Der Abnahmeprüfbericht weist folgende Attribute auf:

• Berichtskennung
• Zusammenfassung der Ergebnisse
• Variationen
• Empfehlungen
• Zusammenfassung der To-Do-Liste
• Genehmigungsbeschluss

Wer führt Abnahmeprüfungen durch?


• Interne Abnahmetests (auch Alpha-Tests genannt) werden von Mitgliedern der Organisation
durchgeführt, die die Software entwickeln, aber nicht direkt am Projekt beteiligt sind. In der
Regel Mitglieder des Produktmanagements, des Vertriebs oder des Kundensupports.
• Externe Abnahmetests - werden von Personen durchgeführt, die keine Mitarbeiter der
Organisation sind, die Software entwickelt hat.
• Kundenakzeptanztests werden von den Kunden der Organisation durchgeführt, die die
Software entwickelt hat. Sie sind diejenigen, die die Organisation gebeten haben, die
Software zu entwickeln.
• Benutzerakzeptanztests - (auch Beta-Tests genannt) werden vom Endbenutzer der Software
durchgeführt.

Vorteile der Abnahmeprüfung:


• Validiert, dass die Geschäftsanforderungen auf der Grundlage der In-Scope-
Benutzererfahrungen erfüllt werden
• Reduziert das Risiko, dass Fehler in der Produktion erkannt werden
• Endbenutzer gewinnen bei der Verwendung des neuen Systems Fähigkeiten und
Selbstvertrauen, bevor sie live gehen.
Nachteile/Einschränkungen der Abnahme
•eSie könnten nicht alle Funktionen oder Features testen
• Der Testfortschritt ist schwer zu messen
• Benutzer können die Funktionsweise des Systems bestätigen und die Defekte nicht sehen
oder melden
• Benutzer können sich darauf konzentrieren, das neue System mit einem Altsystem zu
vergleichen, anstatt nach Fehlern zu suchen.
Funktionstests
Funktionstest ist eine Testtechnik, die verwendet wird, um die Funktionen/Funktionalität des
Systems oder der Software zu testen, sollte alle Szenarien abdecken, einschließlich Fehlerpfade
und Grenzfälle.

Funktionsprüftechniken:

Es gibt zwei wichtige Funktionstesttechniken, wie unten gezeigt:

Zu den anderen wichtigen Funktionstesttechniken


gehören:
• Unit-Tests
• Integrationstests
• Rauchprüfung
• Benutzerakzeptanztests
• Lokalisierungstests
• Schnittstellentests
• Usability-Tests
• Systemtests
• Regressionstests
• Globalisierungstests

Vorteile des Funktionstests:


• Es entsteht ein fehlerfreies Produkt/Software
• Es stellt sicher, dass der Kunde/Endbenutzer zufrieden ist
• Es stellt sicher, dass alle Anforderungen erfüllt werden
• Es stellt das ordnungsgemäße Funktionieren aller Funktionen einer
Anwendung/Software/eines Produkts sicher.
Nachteile/Einschränkungen der
•eFunktional funktionalen

testing ist ein Prozess, bei dem verschiedene logische Fehler in der Software im Testprozess
nicht erkannt werden
• Es ist egal, wie der Entwickler den eigentlichen Quellcode implementiert, weil er nur
konzentriert sich auf die Ergebnisse des Quellcodes.
Systemtests
• Systemtests sind die Black-Box-Testmethode, mit der das integrierte System als Ganzes
bewertet wird und sichergestellt wird, dass es alle spezifischen Anforderungen erfüllt.
• Im Falle von Systemtests wird die Funktionalität des Produkts durchgängig getestet und in
der Regel vom Testteam und nicht vom Entwicklungsteam durchgeführt.
• Systemtests werden durchgeführt, bevor das Softwareprodukt in die Produktion gebracht wird.
Arten von Systemtests:
Vorteile des Systemtests:
• Überprüft das System anhand der geschäftlichen, funktionalen und technischen
Anforderungen der Endbenutzer.
• Es hilft, vor dem Akzeptanztest maximale Fehler zu erhalten.
• Systemtests erhöhen das Konfidenzniveau des Teams im Produkt, bevor das Produkt zur
Abnahmeprüfung geht.
Nachteile/Einschränkungen des Systems
•eOnly Limite d Abdeckung der Anwendung, da der Tester nicht auf ein bestimmtes
Codesegment abzielen kann.
• Testfälle sind schwierig zu entwerfen, da der Tester keine Vorkenntnisse über
spezifikationen und Codierung.
• Einige mögliche Eingaben werden nur getestet.
Leistungstests
Leistungstests, eine nicht-funktionale Testtechnik, die durchgeführt wird, um die
Systemparameter in Bezug auf die Stabilität unter verschiedenen Arbeitsbelastungen zu
bestimmen. Performancetests messen die Qualitätsattribute des Systems, wie Zuverlässigkeit
und Ressourcennutzung.
Leistungstesttechniken:
• Lasttests - es ist die einfachste Form des Testens, um das Verhalten des Systems unter
spezifischer Last zu verstehen. Lasttests führen zur Messung wichtiger geschäftskritischer
Transaktionen und zur Belastung der Datenbank, der Anwendung, des Servers usw.
• Stresstests - Es wird durchgeführt, um die obere Grenzkapazität des Systems zu ermitteln
und auch zu bestimmen, wie sich das System verhält, wenn die aktuelle Last das erwartete
Maximum deutlich überschreitet.
• Soak Testing - Soak Testing, auch bekannt als Dauertest, wird durchgeführt, um die
Systemparameter unter kontinuierlicher erwarteter Belastung zu bestimmen. Während des
Soak-Tests werden die Parameter wie die Speicherauslastung überwacht, um Speicherlecks
oder andere Leistungsprobleme zu erkennen.
• Spike-Tests - Spike-Tests werden durchgeführt, indem die Anzahl der Benutzer plötzlich um
einen sehr großen Betrag erhöht und die Leistung des Systems gemessen wird.
Leistungsprüfungsprozess:
Sicherheitstests
Sicherheitstests sind eine Testtechnik, um festzustellen, ob ein Informationssystem Daten schützt
und die beabsichtigte Funktionalität beibehält. Es zielt auch auf die Überprüfung von 6
Grundprinzipien ab, die unten aufgeführt sind:

• Vertraulichkeit
• Integrität
• Authentifizierung
• Autorisierung
• Verfügbarkeit
• Nicht-Repudiation
Sicherheitstests - Techniken:
• Injektion
• Gebrochene Authentifizierung und Sitzungsverwaltung
• Cross-Site-Scripting (XSS)
• Unsichere direkte Objektreferenzen
• Sicherheits-Fehlkonfiguration
• Gefährdung sensibler Daten
• Fehlende Zugriffskontrolle auf Funktionsebene
• Cross-Site Request Forgery (CSRF)
• Verwenden von Komponenten mit bekannten Schwachstellen
• Nicht validierte Weiterleitungen und Weiterleitungen

Regressionstests
Regressionstests einer Black-Box-Testtechnik, die darin besteht, die Tests, die von
den Codeänderungen betroffen sind, erneut auszuführen. Diese Tests sollten so oft
wie möglich während des gesamten Softwareentwicklungslebenszyklus durchgeführt
werden.

Arten von Regressionstests:

• Erfordert Kenntnisse über das System und wie es sich auf die vorhandenen Funktionalitäten
auswirkt.
• Tests werden basierend auf dem Bereich häufiger Defekte ausgewählt
• Tests werden ausgewählt, um den Bereich einzubeziehen, der mehrfach Code-Änderungen
unterzogen wurde
• Tests werden basierend auf den kritischen Merkmalen ausgewählt.

Regressionstestschritte:
Regressionstests sind die idealen Fälle der Automatisierung, die zu einer besseren Return On
Investment (ROI) führen.

• Wählen Sie die Tests für die Regression


• Wählen Sie das APT-Tool und automatisieren Sie die Regressionstests
• Anwendungen mit Checkpoints verifizieren
• Regressionstests verwalten/bei Bedarf aktualisieren
• Planen Sie die Tests
• In die Builds integrieren
• Analysieren Sie die Ergebnisse

Wasserfall-Methodik
Im Wasserfallmodell durchläuft die Softwareentwicklung verschiedene Phasen wie
Anforderungsanalyse, Design usw. - sequentiell.

In diesem Modell beginnt die nächste Phase erst, wenn die frühere Phase abgeschlossen ist.
Wofür ist der Testansatz
l Die erste Phase im Wasserfallmodus ist die Anforderungsphase, in der alle
Projektanforderungen vor Testbeginn vollständig definiert
sind. In dieser Phase brainstormt das Testteam den Testumfang, die Teststrategie und entwirft
einen detaillierten Testplan.

Erst wenn das Design der Software abgeschlossen ist, wird das Team mit der Ausführung der
Testfälle fortfahren, um sicherzustellen, dass sich die entwickelte Software wie erwartet verhält.

Bei dieser Methodik geht die Prüfung nur dann in die nächste Phase über, wenn die vorherigen
Phasen abgeschlossen sind.
Vor- und Nachteile von Wasserfall-Vorteilen:?
Dieses Software-Engineering-Modell ist sehr einfach zu planen und zu verwalten. Daher können
Projekte, bei denen die Anforderungen klar definiert und im Voraus festgelegt sind, einfach mit
einem Wasserfallmodell getestet werden.

Nachteile:

Im Wasserfallmodell können Sie erst dann mit der nächsten Phase beginnen, wenn die vorherige
Phase abgeschlossen ist. Daher kann dieses Modell keine ungeplanten Ereignisse
berücksichtigen.
Agile Methodik
In der agilen Methodik wird Software in schnellen Zyklen entwickelt. Interaktionen zwischen
Kunden, Entwicklern und Kunden werden stärker betont als Prozesse und Tools. Die agile
Methodik konzentriert sich auf die Reaktion auf Veränderungen und nicht auf eine umfassende
Planung.

Was ist der Testansatz für die agile Methodik?

Inkrementelle Tests werden in agilen Entwicklungsmethoden verwendet und daher wird jedes
Release des Projekts gründlich getestet. Dadurch wird sichergestellt, dass alle Fehler im System
vor dem nächsten Release behoben werden
Vor- und Nachteile von Agile
Methodeology?
Vorteile:
Es ist jederzeit möglich, Änderungen im Projekt vorzunehmen, um die Anforderungen zu erfüllen.
Diese inkrementellen Tests minimieren Risiken.

Nachteile:
Ständige Kundeninteraktion bedeutet zusätzlichen Zeitdruck für alle Stakeholder, einschließlich
des Kunden selbst, der Softwareentwicklung und der Testteams
Welche Software-Methodik soll gewählt
werden?
Es stehen unzählige Testmethoden zur Verfügung, die für einen bestimmten Zweck mit eigenen
Vor- und Nachteilen entwickelt wurden. Die Auswahl einer Software-Methodik hängt von
mehreren Faktoren ab, wie der Art des Projekts, den Anforderungen des Kunden, dem
Projektzeitplan usw. In einigen Fällen gehen Test und Entwicklung Hand in Hand, während
andere Tests in späteren Phasen umfassen, wenn der Build fertig ist.
Einrichten von Testmethoden?
Testmethoden werden nicht nur zum Testen von Code verwendet, sondern auch für andere
Zwecke.

• Planung: Die Planung ist der Schlüssel zur erfolgreichen Implementierung der Testmethodik,
die die Anforderungen jedes Mitglieds des Teams erfüllen sollte.
• Testansatz: Sobald Sie mit der Terminplanung fertig sind und die Projektergebnisse gut
definiert sind, besteht der nächste Schritt darin, den richtigen Testansatz zu formulieren.
• Berichterstattung: Dieser Schritt bestimmt die Wirksamkeit des Testansatzes und die
Änderungen, die für die erfolgreiche Einrichtung der Testmethodik erforderlich sind.

Вам также может понравиться