Das Testen einer funktionalen Design-Layout-Spezifikationsdatei kann recht überwältigend erscheinen, ist jedoch eine wesentliche Methode, um sicherzustellen, dass das weiterentwickelte Softwareprodukt die gewünschten Anforderungen erfüllt. Hier sind die Schritte, die ihr befolgen könnt, um Testinstanzen für eine Spezifikationsdatei zu erstellen:

  • Stimmige Informationen: Vergewissert euch, dass ihr über ausgezeichnete Informationen über die Datei und ihre zahlreichen Abschnitte verfügt, einschließlich des Zwecks, der Funktionen und der Erfordernisse.
  • Alle Anforderungen: Sucht nach den genauen Anforderungen in der Datei und erstellt eine Liste aller Funktionen und Merkmale, die geprüft werden sollen.
  • Grundlage für Anforderungen: Legt auf der Grundlage der Anforderungen die Ziele der einzelnen Prüfungen fest und bestimmt die voraussichtlichen Endergebnisse.
  • Aufteilung der Anforderungen: Teilt die Anforderungen in kleinere, realisierbare Teile auf, die einzeln geprüft werden können. Dies wird euch helfen, extra zentrierte und vollständige Prüffälle zu erstellen.
  • Saubere Prüffälle: Schreibt die sogenannten Prüffälle sauber und prägnant auf, einschließlich der Prüfschritte, der voraussichtlichen Ergebnisse und aller Vorbedingungen, die erfüllt sein müssen.
  • Prüfinstanzen überprüfen: Überprüft die Prüfinstanzen, um sicherzugehen, dass sie vollständig und genau sind und alle in der Datei enthaltenen Anforderungen erfüllen.
  • Priorisierung: Basierend auf der Kritikalität der Anforderungen, priorisiert die Prüfinstanzen so, dass die wichtigsten zuerst geprüft werden.
  • Ergebnisse archivieren: Führt die Prüfinstanzen durch und archiviert die Ergebnisse. Wenn irgendwelche Fehler oder Defekte gefunden werden, dokumentiert diese und arbeitet mit der Verbesserungsgruppe zusammen, um sie zu beheben.
  • Überprüfen: Überprüft die Prüfinstanzen regelmäßig und ersetzet sie, wenn Anpassungen an der Spezifikationsdatei vorgenommen werden.

 

Beispiel eines Testfalls für ein Feature aus einem Spezifikationsdokument

Feature: Passwort-Zurücksetzung über E-Mail

Spezifikationsdetails:

  • Der Benutzer sollten in der Lage sein, ihr Passwort über einen „Passwort vergessen?“-Link auf der Login-Seite zurückzusetzen.
  • Nach Eingabe ihrer E-Mail sollte ein Link zum Zurücksetzen des Passworts versendet werden.

Test Case ID: TC_PW_RESET_001
Titel: Überprüfung der Passwort-Zurücksetzungsfunktion

Beschreibung: Dieser Testfall prüft, ob das Zurücksetzen des Passworts über die Funktion „Passwort vergessen?“ mit einer gültigen E-Mail-Adresse funktioniert.

Voraussetzungen:

  • Der Benutzer hat bereits ein Konto mit einer verifizierten E-Mail-Adresse.
  • Der Mailserver ist betriebsbereit.

Testdaten:

Test Schritte:

  1. Gehe zur Login-Seite der Anwendung.
  2. Klicke auf den Link „Passwort vergessen?“.
  3. Gib die E-Mail-Adresse benutzer@example.com in das dafür vorgesehene Feld ein.
  4. Bestätige die Eingabe und sende die Anfrage ab.
  5. Überprüfe den Eingang der E-Mail zur Passwortrücksetzung.
  6. Klicke auf den Link im E-Mail zur Passwortrücksetzung.
  7. Gib das neue Passwort NeuesSicheresPasswort123! ein und bestätige es.

Erwartetes Ergebnis:

  • Der Benutzer erhält innerhalb von 5 Minuten eine E-Mail zur Passwortrücksetzung.
  • Der Link in der E-Mail führt zu einer Seite, auf der ein neues Passwort festgelegt werden kann.
  • Nach Festlegung eines neuen Passworts wird der Benutzer auf die Login-Seite umgeleitet und kann sich mit dem neuen Passwort anmelden.

Post-Bedingungen:

  • Das alte Passwort ist ungültig.
  • Der Benutzer kann sich mit dem neuen Passwort einloggen.

Priorität: Hoch

Automatisierbar: Ja

Tester: Maria Musterfrau

Geplantes Testdatum: 21.11.2023

Tatsächliches Ergebnis: (wird nach der Testausführung ausgefüllt)

Status: (Offen/Geschlossen/In Bearbeitung – wird nach der Testausführung ausgefüllt)

Bemerkungen: (Hinzufügen von Anmerkungen oder Besonderheiten, die während des Tests aufgefallen sind)

Angehängte Dokumente: (Screenshots, Log-Dateien etc.)

Diese strukturierte Vorgehensweise sorgt dafür, dass die Testfälle gründlich geplant, durchgeführt und dokumentiert werden, was die Qualität der Software erheblich verbessern kann.

Wie man das automatisieren könnte?

Die Automatisierung von Testfällen kann mit Hilfe verschiedener Werkzeuge und Frameworks erfolgen, die sich auf automatisiertes Testen spezialisieren. Hier ist ein Überblick darüber, wie man den oben genannten Testfall für die Passwort-Zurücksetzung automatisieren könnte, unter Verwendung eines automatisierten Test-Frameworks wie Selenium für Webanwendungen:

Schritt 1: Wähle ein Testautomatisierungs-Framework

Selenium WebDriver ist eine beliebte Wahl für Webanwendungen. Es ermöglicht euch, in verschiedenen Programmiersprachen wie Java, C#, Python etc. zu programmieren.

Schritt 2: Einrichten der Testumgebung

  • Selenium installieren: Installiert Selenium-Bibliotheken für die gewählte Programmiersprache.
  • Browser-Treiber installieren: Ladet die entsprechenden Browser-Treiber herunter (z.B. ChromeDriver für Google Chrome).
  • Test Runner wählen: Wählt ein Unit-Testing-Framework wie JUnit oder TestNG für Java oder pytest für Python.

Schritt 3: Erstelt ein Test-Skript

Unten ist ein einfaches Beispiel, wie ein Testskript in Python mit Selenium aussehen könnte:

from selenium import webdriver
import unittest
import time

class PasswordResetTest(unittest.TestCase):

    def setUp(self):
        # Initialisieren des WebDrivers
        self.driver = webdriver.Chrome('/path/to/chromedriver')
        self.driver.get("http://www.example.com/login")

    def test_password_reset(self):
        driver = self.driver

        # Klicken auf "Passwort vergessen?"
        driver.find_element_by_link_text("Passwort vergessen?").click()

        # E-Mail-Adresse eingeben und Formular absenden
        driver.find_element_by_id("email").send_keys("benutzer@example.com")
        driver.find_element_by_id("submit").click()

        # Warten, um E-Mail-Überprüfung zu simulieren
        time.sleep(5)

        # Normalerweise würde hier der E-Mail-Zugang simuliert,
        # um den Link zur Passwortrücksetzung zu überprüfen.

        # Das neue Passwort setzen - diese URL würde von der echten E-Mail kommen
        driver.get("http://www.example.com/reset-password/XYZ123")
        driver.find_element_by_id("new_password").send_keys("NeuesSicheresPasswort123!")
        driver.find_element_by_id("confirm_password").send_keys("NeuesSicheresPasswort123!")
        driver.find_element_by_id("submit").click()

        # Überprüfen, ob nach dem Zurücksetzen das Login möglich ist
        assert "Login" in driver.title

    def tearDown(self):
        # Schließen des Browsers am Ende des Tests
        self.driver.close()

if __name__ == "__main__":
    unittest.main()

 

Schritt 4: Konfiguriert eure Testumgebung

Stellt sicher, dass alle benötigten Dienste laufen (z.B. E-Mail-Server, Anwendungsserver) und dass ihr Zugriff auf erforderliche Ressourcen wie Test-E-Mail-Konten habt.

Schritt 5: Testausführung und -überwachung

Führt die Tests aus und überwacht die Ergebnisse. Tools wie Jenkins oder GitLab CI/CD können verwendet werden, um Testskripte in einer CI/CD-Pipeline automatisch auszuführen.

Schritt 6: Fehlerbehebung und Wartung

Wenn Fehler auftreten, überprüft die Testskripte und passt sie an Änderungen der Webanwendung an.

Anmerkungen zur E-Mail-Verifikation

Das Automatisieren des Schritts zur E-Mail-Verifikation kann kompliziert sein, da es den Zugriff auf ein E-Mail-System erfordert. Hier könnt ihr:

  • E-Mail-APIs verwenden, wie z.B. Gmail API, um das E-Mail-Konto zu überprüfen und den Link zur Passwortrücksetzung abzurufen.
  • Dummy-E-Mail-Dienste verwenden, die für Testzwecke erstellt wurden, z.B. Mailinator, um eine öffentliche E-Mail-Inbox zu verwenden.
  • Stubbing/Mocking verwenden, um die E-Mail-Sendefunktion zu simulieren, wenn ihr Zugriff auf den Code habt.

Die genauen Schritte hängen von den Spezifikationen der zu testenden Anwendung, den verwendeten Technologien und der Infrastruktur ab. Testautomatisierung ist ein fortlaufender Prozess und erfordert regelmäßige Pflege, um mit den Änderungen an der Anwendung Schritt zu halten.