CodingBleu / random-activity-generator

0 stars 0 forks source link

Integration Testing der unterschiedlichen Features #19

Open MickRaIU opened 3 months ago

MickRaIU commented 3 months ago

Integration Tests

Die beim Integration Test integrierten Komponenten, auch Module genannt durchlaufen vor der Integration den Unit Test. In unserem System ist besonders bei den Filterkomponenten keine eindeutige Unterscheidung zwischen Unit und Integration Tests möglich, daher meint Unit Test in diesem Zusammenhang, dass die Filter einzeln getestet werden, ohne dass weitere Filter dazwischen wirken und Integration Tests, sollen die Wechselwirkung der Filterkomponenten überprüfen.

Durch Integration Tests soll das Zusammenspiel der verschiedenen Systemkomponenten getestet und bewertet werden, sodass sichergestellt werden kann, dass diese korrekt funktionieren/interagieren.

Allerdings ist das Ziel dieses Tickets nach erfolgreicher Integration aller Filter/Aktionen für den Benutzer einen umfassenden Systemtest durchzuführen.

1. Identifikation der zu integrierende Komponenten

2. Integration der zu testenden Komponenten mit Integrationtest

  1. Im 1. Schritt wird hier der Button/Abfrage im Zusammenspiel mit der Datenbank getestet und überprüft, ob durch Auslösen der Datenbankabfrage tatsächliche Aktivitäten ausgegeben werden a) Zustand1: Ausgangsposition - Button ist auf Webseite platziert, Datenbank/Server wurden gestarten b) Schritt2: Aktion - Der Button wird betätigt und es ist nachzuvollziehen, dass die Datenbankabfrage ausgelöst wurde c) Zustand3: Aus der Datenbank abgefragte Aktivität wird auf der Webseite ausgegeben d) Zustand4: Aktivität wird angezeigt und der Button wird erneutet betätigt -> ab Schritt2)

  2. Im 2. Schritt wurde der Teilnehmendenanzahl Filter integriert- dieser wird in Zusammenhang mit der Datenbankabfrage geprüft und es wird kontrolliert, ob, die vom User übergebenen Filter an die Datenbankabfrage richtig übernommen werden a) Szenario1: Der Teilnehmendenanzahl Filter ist vom Nutzer auf 'null'/empty gelassen wurden, der Nutzer startet über den Button die Datenabfrage und bekommt Aktivitäten mit beliebiger Teilnehmeranzahl ausgegeben b) Szenario2: Der Benutzer gibt einen Wert in den Teilnehmendenanzahl Filter ein, der außerhalb unserer definierten Äquivalenzklasse liegt (0<x<=20, Stand 24.05.2004) -> die Datenbankabfrage schlägt fehl und der Benutzer bekommt eine Mitteilung/Fehlermeldung auf der Seite ausgegeben c) Szenario3: Der Benutzer gibt einen Wert innerhalb unserer Äquivalenzklasse ein (0<x<=20, Stand 24.05.2004) -> die Datenbankabfrage ist erfolgreich und der Benutzer bekommt eine Aktivität passend zur Teilnehmendenanzahl ausgegeben = Beispiel 4 Personen -> Brettspiel)

  3. Integration des Indoor/Outdoor Filters und Überprüfen des Zusammenspiels der beiden Filter a) Szenario1: Beide integrierten Filter sind null/zufällig und der Nutzer startet die Datenbankabfrage -> der Nutzer bekommt eine komplett zufällige Aktivität ausgegeben b) Szenario2: Der Benutzer gibt einen Wert in den Teilnehmendenanzahl Filter ein, der außerhalb unserer definierten Äquivalenzklasse liegt (0<x<=20, Stand 24.05.2004), wählt allerdings Outdoor an -> Datenbankabfrage schlägt Fehler und Benutzer bekommt Hinweis, dass eine gültige Teilnehmendenanzahl eingegeben werden muss c) Szenario3: Der Benutzer gibt einen Wert innerhalb unserer Äquivalenzklasse ein (0<x<=20, Stand 24.05.2004) und wählt im Filter Outdoor oder Indoor -> Datenbankabfrage erfolgreich und zeigt dem Nutzer genau die Aktivität mit den zur Anfrage passenden Attributen, z.B.: 2 Personen, Outdoor -> Spaziergang d) Wird einer der beiden Filter leer/null/default/zufällig gelassen, dann wird dieser Wert "egal" und es werden für das leergelassene Attribut zufällige Aktivitäten herausgegeben

  4. Integration der Kategorien Einzelfilterung mit dem Kategorienfilter Szenario 1: Der Kategorienfilter ist auf zufällig gesetzt und der Nutzer startet die Datenbankabfrage. Erwartetes Ergebnis: Der Nutzer bekommt Aktivitäten aus allen Kategorien ausgegeben. Szenario ": Der Benutzer wählt eine Kategorie (z.B. 'Spaß'). Erwartetes Ergebnis: Die Datenbankabfrage ist erfolgreich und der Benutzer bekommt Aktivitäten aus der gewählten Kategorie ausgegeben.

Kombination der Filter: Kategorienfilter und Teilnehmendenanzahl Szenario 1: Beide Filter (Teilnehmendenanzahl und Kategorie) sind 'null'/leer/zufällig. Erwartetes Ergebnis: Der Nutzer bekommt Aktivitäten aus allen Kategorien und für beliebige Teilnehmeranzahlen ausgegeben. Szenario 2: Der Benutzer gibt einen Wert für die Teilnehmendenanzahl außerhalb der Äquivalenzklasse ein und wählt eine gültige Kategorie. Erwartetes Ergebnis: Die Datenbankabfrage schlägt fehl und der Benutzer bekommt eine Fehlermeldung. Szenario 3: Der Benutzer gibt eine gültige Teilnehmendenanzahl ein und wählt eine gültige Kategorie. Erwartetes Ergebnis: Die Datenbankabfrage ist erfolgreich und der Benutzer bekommt Aktivitäten, die sowohl zur Teilnehmendenanzahl als auch zur Kategorie passen, ausgegeben.

Kombination der Filter: Kategorienfilter und Indoor/Outdoor Szenario 1: Beide Filter (Indoor/Outdoor und Kategorie) sind 'null'/leer/zufällig. Erwartetes Ergebnis: Der Nutzer bekommt Aktivitäten aus allen Kategorien und für beliebige Indoor/Outdoor Einstellungen ausgegeben. Szenario ": Der Benutzer wählt eine gültige Indoor/Outdoor-Einstellung und eine gültige Kategorie. Erwartetes Ergebnis: Die Datenbankabfrage ist erfolgreich und der Benutzer bekommt Aktivitäten, die sowohl zur Indoor/Outdoor-Einstellung als auch zur Kategorie passen, ausgegeben. Kombination der Filter: Kategorienfilter, Teilnehmendenanzahl und Indoor/Outdoor

Szenario 1: Alle drei Filter sind 'null'/leer/zufällig. Erwartetes Ergebnis: Der Nutzer bekommt Aktivitäten aus allen Kategorien, für beliebige Teilnehmeranzahlen und Indoor/Outdoor Einstellungen ausgegeben. Szenario 2: Der Benutzer gibt eine ungültige Teilnehmendenanzahl ein, wählt eine gültige Indoor/Outdoor-Einstellung und eine gültige Kategorie. Erwartetes Ergebnis: Die Datenbankabfrage schlägt fehl und der Benutzer bekommt eine Fehlermeldung. Szenario 3: Der Benutzer gibt eine gültige Teilnehmendenanzahl ein, wählt eine gültige Indoor/Outdoor-Einstellung und eine gültige Kategorie. Erwartetes Ergebnis: Die Datenbankabfrage ist erfolgreich und der Benutzer bekommt Aktivitäten, die zu allen drei Kriterien passen, ausgegeben.