Testen von Softwaresystemen - Cheatsheet.pdf

Testen von Softwaresystemen - Cheatsheet
Testen von Softwaresystemen - Cheatsheet Unterschiedliche Testarten (z.B. Unit-Tests, Integrationstests, Systemtests) Definition: Arten von Softwaretests zur Überprüfung unterschiedlicher Aspekte eines Softwaresystems. Details: Unit-Tests: Testen einzelne Komponenten oder Funktionen in Isolation. Ziel: Sicherstellen, dass jede Komponente wie erwartet funktioniert. Integrationstests: Prüfen das Zus...

© StudySmarter 2024, all rights reserved.

Testen von Softwaresystemen - Cheatsheet

Unterschiedliche Testarten (z.B. Unit-Tests, Integrationstests, Systemtests)

Definition:

Arten von Softwaretests zur Überprüfung unterschiedlicher Aspekte eines Softwaresystems.

Details:

  • Unit-Tests: Testen einzelne Komponenten oder Funktionen in Isolation. Ziel: Sicherstellen, dass jede Komponente wie erwartet funktioniert.
  • Integrationstests: Prüfen das Zusammenspiel mehrerer Komponenten. Ziel: Fehler bei der Interaktion von Modulen identifizieren.
  • Systemtests: Überprüfen das gesamte System auf Anforderungen und Funktionalität. Ziel: Sicherstellen, dass das gesamte System korrekt arbeitet.

Äquivalenzklassen- und Grenzwertanalysen

Definition:

Äquivalenzklassen- und Grenzwertanalysen helfen, die Testfälle für Software zu reduzieren, indem sie Eingaben in Klassen einteilen und ihre Grenzwerte testen.

Details:

  • Äquivalenzklassen: Eingaberaum wird in Klassen aufgeteilt, die als gleichwertig angesehen werden können.
  • Grenzwertanalyse: Testen der Grenzen jeder Äquivalenzklasse (inklusive Rand- und Extremwerte).
  • Formeln zur Äquivalenzklassenaufteilung: \[ \text{Äquivalenzklasse A} = \{x \mid \text{Bedingung1}(x) \} \]
  • Vorteile: Reduziert Anzahl der Testfälle, deckt Fehler an den Rändern der Eingabebereiche.

Black-Box- und White-Box-Testing Methoden

Definition:

Black-Box- und White-Box-Testing Methoden sind Ansätze zur Untersuchung und Validierung von Software, wobei sie unterschiedliche Perspektiven und Techniken verwenden.

Details:

  • Black-Box-Testen: Testen der Funktionalität ohne Kenntnis der internen Struktur oder des Codes.
  • White-Box-Testen: Testen des internen Codes und der Struktur, basierend auf Kenntnis des Programms.
  • Black-Box-Testtechniken: Äquivalenzklassenbildung, Grenzwertanalyse, Entscheidungstabellen.
  • White-Box-Testtechniken: Kontrollflussanalyse, Pfadabdeckung, Schleifentests.
  • Ziel von Black-Box: Überprüfung der Anforderungserfüllung und Benutzerperspektive.
  • Ziel von White-Box: Überprüfung der internen Logik und Code-Fehler.

Best Practices für die Implementierung von Testskripten

Definition:

Best Practices für die Implementierung von Testskripten in der Vorlesung Testen von Softwaresystemen im Studiengang Informatik an der Universität Erlangen-Nürnberg.

Details:

  • Modularität: Testskripte sollten in unabhängige, wiederverwendbare Module aufgeteilt werden.
  • Lesbarkeit: Schreibe Testskripte klar und verständlich, nutze beschreibende Namen und Kommentare.
  • Automatisierung: Nutze Frameworks und Tools zur Automatisierung der Tests, z.B. JUnit, Selenium.
  • Konsistenz: Halte dich an einheitliche Kodierstandards und -richtlinien.
  • Fehlerbehandlung: Implementiere robuste Fehler- und Ausnahmenbehandlung, um Testabbrüche zu vermeiden.
  • Dokumentation: Führe geeignete Dokumentation der Tests und deren Ergebnisse.
  • Wiederholbarkeit: Sorge dafür, dass Tests unter gleichen Bedingungen reproduzierbare Ergebnisse liefern.
  • Umgebungsunabhängigkeit: Testskripte sollten nicht von spezifischen Umgebungen abhängig sein.
  • Wartbarkeit: Stelle sicher, dass Testskripte leicht zu pflegen und zu aktualisieren sind.
  • Isolierung: Testfälle sollten isoliert und unabhängig voneinander sein, um Seiteneffekte zu vermeiden.

Überblick über marktführende Testtools (z.B. Selenium, JUnit, TestNG)

Definition:

Kurzbeschreibung marktführender Testtools

Details:

  • Selenium: Automatisierung von Webanwendungen für Testzwecke. Unterstützt mehrere Programmiersprachen (z.B. Java, C#, Python).
  • JUnit: Framework für Unit-Tests von Java-Anwendungen. Nutzt Annotationen zur Definition von Testmethoden.
  • TestNG: Erweiterbares Framework für Unit- und Integrationstests. Bietet erweiterte Features wie parallele Ausführung und Testkonfigurationen.

Kontinuierliches Testen in Agilem und DevOps

Definition:

Kontinuierliches Testen ist ein Prozess innerhalb der agilen und DevOps-Methoden, der sicherstellt, dass Software ständig getestet wird, um schnell Feedback zu erhalten und Probleme frühzeitig zu identifizieren.

Details:

  • Integrierte Tests in CI/CD-Pipelines
  • Automatisierte Tests (Unittests, Integrationstests, End-to-End-Tests)
  • Fokus auf schnelle und häufige Feedback-Zyklen
  • Nutzung von Testumgebungen, die die Produktionsumgebung nachbilden
  • Tests als integraler Bestandteil des Entwicklungsprozesses

Metriken und Kennzahlen zur Qualitätssicherung

Definition:

Metriken und Kennzahlen helfen bei der Bewertung und Sicherstellung der Softwarequalität.

Details:

  • Fehlerdichte (\texttt{Fault Density}): Anzahl der Fehler pro KLOC (\texttt{thousands of lines of code})
  • Testabdeckung (\texttt{Test Coverage}): Prozentsatz des Codes, der durch Tests abgedeckt ist
  • MTTF (\texttt{Mean Time To Failure}): Durchschnittliche Zeit bis zum Auftreten eines Fehlers
  • MTTR (\texttt{Mean Time To Repair}): Durchschnittliche Zeit zur Behebung eines Fehlers
  • Defektentdeckungsrate: Anz. der entdeckten Fehler pro Zeiteinheit
  • Defektdichte: Anz. der Fehler pro Funktionseinheit oder Komponentengröße
  • Reaktionszeit auf Vorfälle: Zeit von der Meldung eines Defekts bis zur ersten Reaktion

Fehlersuchstrategien und Fehlerbäumen

Definition:

Strategien zur Identifikation von Fehlern in Softwaresystemen, oft durch strukturierte Analyse und Visualisierung mit Fehlerbäumen.

Details:

  • Fehlersuchstrategien: Systematische Ansätze zur Fehlersuche, z.B. Top-Down, Bottom-Up, Divide-and-Conquer.
  • Fehlerbäume: Diagramme zur Darstellung von Fehlern und deren Ursachen in einem System.
  • Ziel: Verständnis und Lokalisierung von Fehlern zur effizienten Behebung.
  • Logische Verknüpfungen in Fehlerbäumen oft durch UND- bzw. ODER-Gatter dargestellt.
  • Fehlerwahrscheinlichkeit durch Quantifizierung der Einzelereignisse im Baum berechenbar.
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