Testen von Softwaresystemen - Cheatsheet.pdf

Testen von Softwaresystemen - Cheatsheet
Testen von Softwaresystemen - Cheatsheet Definition und Ziele des Softwaretestens Definition: Systematischer Prozess zur Evaluierung der Qualität und Funktionsweise von Software. Details: Erkennen von Fehlern und Mängeln Sicherstellen der Erfüllung der Anforderungen Verbesserung der Softwarequalität Vermeidung von Risiken Validierung und Verifikation Arten von Tests: Unit-Tests, Integrationstests,...

© StudySmarter 2024, all rights reserved.

Testen von Softwaresystemen - Cheatsheet

Definition und Ziele des Softwaretestens

Definition:

Systematischer Prozess zur Evaluierung der Qualität und Funktionsweise von Software.

Details:

  • Erkennen von Fehlern und Mängeln
  • Sicherstellen der Erfüllung der Anforderungen
  • Verbesserung der Softwarequalität
  • Vermeidung von Risiken
  • Validierung und Verifikation

Arten von Tests: Unit-Tests, Integrationstests, Systemtests, Abnahmetests

Definition:

Arten von Tests: Unit-Tests, Integrationstests, Systemtests, Abnahmetests

Details:

  • Unit-Tests: Testen einzelner Komponenten oder Funktionen isoliert.
  • Integrationstests: Überprüfung des Zusammenspiels mehrerer Komponenten.
  • Systemtests: Testen des gesamten Systems in einer Umgebung, die der Produktionsumgebung ähnelt.
  • Abnahmetests: Letzte Überprüfung durch den Kunden oder Endnutzer, um die Anforderungen und Erwartungen zu bestätigen.

Black-Box-Testing vs. White-Box-Testing

Definition:

Vergleich von Testverfahren: Black-Box-Testing analysiert das Systemverhalten ohne Kenntnis der internen Struktur, White-Box-Testing untersucht den inneren Code und prüft logische Abläufe.

Details:

  • Black-Box-Testing: Testet externes Verhalten, spezifikationsbasiert, Fokus auf funktionale Anforderungen
  • White-Box-Testing: Testet interne Logik, struktur- und codebasiert, Fokus auf Kontrollfluss und Pfadabdeckung
  • Ansätze ergänzen sich für vollständige Testabdeckung
  • Beispiele für Black-Box-Testing: Äquivalenzklassenanalyse, Grenzwertanalyse
  • Beispiele für White-Box-Testing: Anweisungsüberdeckung, Zweigüberdeckung

Äquivalenzklassenbildung

Definition:

Definieren von Testfällen durch Gruppierung von Eingabedaten in Äquivalenzklassen, die den gleichen Fehler aufweisen würden.

Details:

  • Ziel: Reduktion der Anzahlt nötiger Testfälle bei gleichzeitiger Abdeckung aller relevanten Szenarien.
  • Eine Äquivalenzklasse enthält Werte, die durch gleiche Verarbeitung gleiche Ergebnisse liefern.
  • Unterscheidung in: Äquivalenzklassen für gültige Eingaben und Äquivalenzklassen für ungültige Eingaben.
  • Für jede Klasse wird ein repräsentativer Wert getestet.

Grenzwertanalyse

Definition:

Systematisches Testen von Eingabewerten an den Grenzen der Eingabebereiche, sinnvoll bei der Prüfung von Fehlern an den Extremwerten.

Details:

  • Konzentriert sich auf Grenzwerte und Werte knapp innerhalb und außerhalb dieser Grenzen
  • Effektiv für das Finden von Fehlern, die sich in Grenzbereichen manifestieren
  • Beispiele: Minimal- und Maximalwerte, Null, negative Werte (falls anwendbar)
  • Anwendung in Kombination mit anderen Testmethoden wie Äquivalenzklassenbildung
  • Formal kann dies so ausgedrückt werden: Sei die Funktion f definiert auf dem Bereich [a, b], dann erfolgt das Testen für Werte a, a+1, b-1, b sowie für Werte knapp außerhalb dieses Bereichs wie a-1 und b+1

Vorteile und Herausforderungen der Testautomatisierung

Definition:

Testautomatisierung: Anwendung von Softwaretools zur Durchführung von Tests, um Genauigkeit und Effizienz zu steigern.

Details:

  • Vorteile:
    • Zeiteinsparung
    • Wiederholbarkeit
    • Genauigkeit
    • Abdeckung
  • Herausforderungen:
    • Hohe Anfangsinvestition
    • Wartungsaufwand
    • Einschränkungen bei nicht-funktionalen Tests
    • Komplexität der Tool-Integration

Agile Testing und Test Driven Development (TDD)

Definition:

Agile Testing: Testmethoden, die in Agile-Entwicklungsprojekten eingesetzt werden. TDD: Entwicklungsprozess, bei dem Tests vor dem eigentlichen Code geschrieben werden.

Details:

  • Agile Testing integriert Testen kontinuierlich während des gesamten Entwicklungszyklus.
  • Fokus auf Zusammenarbeit zwischen Entwicklern, Testern und Kunden.
  • TDD: Zyklus von Red (Test schreiben), Green (Code implementieren), Refactor (Code verbessern).
  • TDD fördert sauberen, wartbaren Code und frühzeitige Fehlererkennung.
  • Vorteile: Höhere Softwarequalität, verbesserte Designentscheidungen.
  • Herausforderungen: Initialer Zeitaufwand, erfordert disziplinierten Ansatz.

Erstellung und Durchführung automatisierter Tests

Definition:

Erstellung und Durchführung automatisierter Tests dienen der effizienten Überprüfung von Softwarefunktionen durch automatisierte Testskripte.

Details:

  • Testautomatisierung reduziert manuellen Testaufwand und Fehleranfälligkeit.
  • Durchführung mit Tools wie Selenium, JUnit, u.a.
  • Schritte: Testskripterstellung, Testdatenmanagement, Testausführung, Ergebnisanalyse.
  • Wiederholbarkeit und Skalierbarkeit der Tests.
  • Wichtig für Continuous Integration/Continuous Deployment (CI/CD).
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden