mirror of
https://github.com/st-tu-dresden-praktikum/swt23w23
synced 2024-06-28 12:53:42 +02:00
Co-authored-by: Denis Natusch <denis.natusch@mailbox.tu-dresden.de> Co-authored-by: Eren Asker <eren.asker@mailbox.tu-dresden.de> Co-authored-by: Erik Hohlfeld <erik.hohlfeld@mailbox.tu-dresden.de> Co-authored-by: Mathis Kral <mathis_tiberius.kral@mailbox.tu-dresden.de> Co-authored-by: Paul Heimer <heimerp54@gmail.com> Co-authored-by: Theo Reichert <theo.reichert@mailbox.tu-dresden.de>
303 lines
13 KiB
Plaintext
303 lines
13 KiB
Plaintext
// SPDX-License-Identifier: CC-BY-4.0
|
|
// SPDX-FileCopyrightText: 2023-2024 swt23w23
|
|
|
|
// To be able to publish this report in the repository under a free license,
|
|
// the system under test section had to be taken out,
|
|
// and some other sections had to be rewritten.
|
|
// The original report has been given to the other group.
|
|
== Cross-Testing
|
|
|
|
*Durchführende Gruppe:* 23 +
|
|
*Anwendung von Gruppe:* 22
|
|
|
|
=== Getestetes System
|
|
|
|
(Siehe Pflichtenheft Gruppe 22)
|
|
|
|
=== Fehler-Report
|
|
|
|
Vom Tabellenformat wurde abgewichen, da dies sehr unübersichtlich wäre.
|
|
|
|
==== Probleme beim Brausen
|
|
|
|
===== Authentifikation
|
|
|
|
*Pfad*: `+/+` +
|
|
*Parameter*: unauthentifiziert +
|
|
*Beschreibung*: *F0010:* Laut Anforderungsbeschreibung soll das System bei jedem Aufruf eine Authentifizierung verlangen. Dies ist eindeutig nicht der Fall. Evtl. falsche Anforderung? +
|
|
*Rückgabe*: Startseite (nicht Login-Seite)
|
|
|
|
*Pfad*: `+/stock+` u.a. +
|
|
*Parameter*: unauthentifiziert +
|
|
*Beschreibung*: Wird zwar in Navbar nicht angezeigt, jedoch dennoch aufrufbar +
|
|
*Rückgabe*: Stock (nicht Login-Seite)
|
|
|
|
===== Registrierung mit bestehender E-Mail-Adresse
|
|
|
|
*Pfad*: `+/register+` +
|
|
*Parameter*: `+1234@email.com+`,`+123+` +
|
|
*Beschreibung*: *F0021:* Die bereits hinterlegte Email wird abgeleht, aber in Form eines Crash. +
|
|
*Rückgabe*: `+java.lang.IllegalArgumentException: A different UserAccount with email 1234@email.com already exists!+`
|
|
|
|
===== Überbestellung
|
|
|
|
*Pfad*: `+/catalog/*/detail+`, `+/cart+` +
|
|
*Parameter*: * +
|
|
*Beschreibung*: *F0100, F0230:* Kein Schutz vor Überbestellung im Backend (es ist möglich, mit 2 Nutzern mehr Items/Personal in den Warenkorb zu legen, als es im Inventar gibt und diese dann auch zu bestellen) +
|
|
*Rückgabe*:
|
|
image:https://pad.sbruder.de/uploads/0dee8ff3-b7c9-48f8-a650-a814e61c58eb.png[https://pad.sbruder.de/uploads/0dee8ff3-b7c9-48f8-a650-a814e61c58eb]
|
|
image:https://pad.sbruder.de/uploads/ea4e9aa2-bf6c-460b-b471-953c7d771267.png[https://pad.sbruder.de/uploads/ea4e9aa2-bf6c-460b-b471-953c7d771267]
|
|
image:https://pad.sbruder.de/uploads/06cb0c26-97d4-4d7b-bad3-8c2d51c2e342.png[https://pad.sbruder.de/uploads/06cb0c26-97d4-4d7b-bad3-8c2d51c2e342]
|
|
|
|
===== Negative Artikelzahl
|
|
|
|
*Pfad*: `+/catalog/*/detail+`, `+/cart+` +
|
|
*Parameter*: * +
|
|
*Beschreibung*: *F0230*: Es ist möglich, eine negative Anzahl an Artikeln in den Einkaufskorb zu legen und diese auch zu bestellen (keine Validierung im Backend, siehe link:###globale-probleme[Soviet Russia (Globale Probleme)]. +
|
|
*Rückgabe*:
|
|
image:https://pad.sbruder.de/uploads/e44ec25b-d481-44da-acc6-aed64f7302b6.png[https://pad.sbruder.de/uploads/e44ec25b-d481-44da-acc6-aed64f7302b6]
|
|
image:https://pad.sbruder.de/uploads/fbbb1b9c-7153-41e4-9c80-7acc96c320b5.png[https://pad.sbruder.de/uploads/fbbb1b9c-7153-41e4-9c80-7acc96c320b5]
|
|
|
|
===== Unpassender Artikel
|
|
|
|
*Pfad*: `+/catalog/MobileBreakfast/detail+` +
|
|
*Parameter*: `+date=2024-02+` +
|
|
*Beschreibung*: *F0120:* „Unpassender“ Artikel in den Buchungsoptionen. Kummer-Nummer: `+116 111+` +
|
|
*Rückgabe*:
|
|
image:https://pad.sbruder.de/uploads/9eff528d-0fd5-42cf-8e14-f06720e6bb7a.png[https://pad.sbruder.de/uploads/9eff528d-0fd5-42cf-8e14-f06720e6bb7a]
|
|
|
|
===== Archivierung nicht möglich
|
|
|
|
*Pfad*: * +
|
|
*Parameter*: * +
|
|
*Beschreibung*: *F0243/F0310:* Die Option zur manuellen Archivierung konnte nicht gefunden werden. Folglich konnte die Option `+abgeschlossen+` in der Ansicht nicht überprüft werden. +
|
|
*Rückgabe*: *
|
|
|
|
===== Unintuitive Gestaltung des Kalenders
|
|
|
|
*Pfad*: `+/calendar+` +
|
|
*Parameter*: * +
|
|
*Beschreibung*: Unintuitive Gestaltung des Kalenders, Datum sowie Uhrzeiteingabe am Datum-Filter (ohne Funktion) +
|
|
*Rückgabe*:
|
|
image:https://pad.sbruder.de/uploads/01d50dc8-adc9-41e3-b542-d8036c979e0d.png[https://pad.sbruder.de/uploads/01d50dc8-adc9-41e3-b542-d8036c979e0d]
|
|
image:https://pad.sbruder.de/uploads/b826446c-9b58-4233-9dc6-6de4ad1d720e.png[https://pad.sbruder.de/uploads/b826446c-9b58-4233-9dc6-6de4ad1d720e]
|
|
|
|
===== Falsches Tabellen-Rendering
|
|
|
|
*Pfad*: `+/catalog/*/detail+` +
|
|
*Parameter*: * +
|
|
*Beschreibung*: Falsches Markup führt zu Problem bei Tabellen-Rendering +
|
|
*Rückgabe*: image:https://pad.sbruder.de/uploads/f4cc211a-5708-4f6e-aea9-11b5cbb92a53.png[https://pad.sbruder.de/uploads/f4cc211a-5708-4f6e-aea9-11b5cbb92a53]
|
|
|
|
===== Ungültiger Standardwert für Menge
|
|
|
|
*Pfad*: `+/catalog/*/detail+` +
|
|
*Parameter*: * +
|
|
*Beschreibung*: Ungültiger Standardwert für `+value+` (führt bei manchen Browsern zu falscher Darstellung, ist aber in jedem Fall nicht korrekt) +
|
|
*Rückgabe*: image:https://pad.sbruder.de/uploads/98988fe4-0c43-4fc1-859a-bb0f2af8c01b.png[https://pad.sbruder.de/uploads/98988fe4-0c43-4fc1-859a-bb0f2af8c01b]
|
|
|
|
===== Keine Fehlermeldung bei Datum in Vergangenheit
|
|
|
|
*Pfad*: `+/catalog/PartyService+` +
|
|
*Parameter*: Datum in der Vergangenheit +
|
|
*Beschreibung*: Keine Fehlermeldung wird angezeigt +
|
|
*Rückgabe*: Seite wird erneut aufgerufen, Eingaben verworfen, keine Fehlermeldung angezeigt.
|
|
|
|
===== Längenbeschränkung bei Registrierung unklar/nicht vorhanden
|
|
|
|
*F0021*:
|
|
|
|
Inwiefern „Längenüberschreitungen“ geprüft werden sollen, ist nicht klar
|
|
(kann daher also nicht genau geprüft werden).
|
|
Weder Template noch Code enthalten derartige Funktionalität.
|
|
|
|
===== Löschen von bereits bestellten Produkten schlägt fehl
|
|
|
|
*Pfad*: `+/stock+` +
|
|
*Parameter*: Klick auf Mülleimer neben Produkt, was bereits bestellt wurde +
|
|
*Beschreibung*: *F0340*: Sollte nach Pflichtenheft Produkt tatsächlich löschen +
|
|
*Rückgabe*: Crasht mit Standard-Seite (nicht freundlich)
|
|
|
|
===== Buchungen werden nach Inventaränderung nicht validiert/gelöscht
|
|
|
|
*Pfad*: `+/stock+` +
|
|
*Parameter*: Reduzieren eines in einer zukünftigen Buchung verwendeten Zubehör erst auf 1, dann auf 0 +
|
|
*Beschreibung*: *F0350*: Bei Reduktion auf 1 bleibt die Buchung mit voller Anzahl erhalten, bei Reduktion auf 0 crasht die Applikation +
|
|
*Rückgabe*: video::https://salespointframework.org/stock-reduction-crash.mp4[]
|
|
|
|
===== Kalender von Personal kann nicht eingesehen werden
|
|
|
|
*F0360*: Weder auf `+/staff+` noch auf `+/calendar+` sehe ich eine Option dazu.
|
|
|
|
===== Boss kann nicht Gehalt und Stundenlohn anzeigen
|
|
|
|
*Pfad*: `+/staff+` +
|
|
*Parameter*: * +
|
|
*Beschreibung*: *F0370*: Es wird lediglich „salary“ angezeigt +
|
|
*Rückgabe*: s.o.
|
|
|
|
===== Feuern von verplanten Mitarbeitern nicht möglich
|
|
|
|
*Pfad*: `+/staff+` +
|
|
*Parameter*: Löschen eines verbuchten Mitarbeites +
|
|
*Beschreibung*: Soll nach *F0390* möglich sein +
|
|
*Rückgabe*: Hat keinen Effekt, es wird auch keine Fehlermeldung angezeigt
|
|
|
|
===== `+Consumable+` können nicht ohne Nebeneffekte hinzugefügt werden
|
|
|
|
*Pfad*: `+/stock+` +
|
|
*Parameter*: Hinzufügen eines Consumable +
|
|
*Beschreibung*: Soll nach *F0320* ein Consumable hinzufügen +
|
|
*Rückgabe*: Fügt Consumable _und_ Rentable hinzu
|
|
video::https://salespointframework.org/consumable-only.mp4[]
|
|
|
|
===== Unintuitives Löschen von Bestellungen
|
|
|
|
*Pfad*: `+/editorderhistory+` +
|
|
*Parameter*: * +
|
|
*Beschreibung*: Wählt man keine Produkte aus, löscht der Mülleimer-Button direkt die ganze Bestellung ohne Warnung oder Bestätigungsanforderung an den Nutzer. +
|
|
*Rückgabe*: Bestellung wird gelöscht
|
|
|
|
===== Leere Bestellungen
|
|
|
|
*Pfad*: `+/catalog/*+` +
|
|
*Parameter*: * +
|
|
*Beschreibung*: Man kann leere Bestellungen erstellen, wenn man einen Gegenstand 0 mal bestellt und die Bestellung danach in den Warenkorb hinzufügt. +
|
|
*Rückgabe*: Leere Bestellung in "`/cart`"
|
|
|
|
==== Globale Probleme
|
|
|
|
Hier werden Pfad und Parameter weggelassen, da sie für diese Probleme unerheblich sind.
|
|
|
|
===== Message-Namen bei unbekannter locale
|
|
|
|
Werden nicht angezeigt, nur Platzhalter. Führt auf Startseite dazu, dass Anmelde- und Registrierungslink nicht angezeigt wird (letzteres evtl. *F0020*).
|
|
|
|
image:https://pad.sbruder.de/uploads/83ab1c5e-cdcd-4a56-a711-37e02e520bce.png[https://pad.sbruder.de/uploads/83ab1c5e-cdcd-4a56-a711-37e02e520bce]
|
|
|
|
===== Datenschutz CDN
|
|
|
|
Keine datenschutzkonforme Einbindung von Boostrap (über CDN ohne vorherige Einwilligung)
|
|
|
|
===== Persistenz-Crash
|
|
|
|
Applikation crasht bei zweitem Start mit aktivierter Persistenz. Dadurch ist Persistenz de facto nicht gegeben.
|
|
|
|
Start mit `+java -jar swt23w22-1.0.0.BUILD-SNAPSHOT.jar --spring.config.name=test+`
|
|
|
|
`+test.properties+` (angepasst nach developer documentation auf Basis der `+application.properties+` in jar):
|
|
|
|
....
|
|
spring.datasource.url=jdbc:h2:./db/cateringservice
|
|
spring.jpa.hibernate.ddl-auto=update
|
|
salespoint.authentication.login-via-email=true
|
|
....
|
|
|
|
Logs:
|
|
|
|
....
|
|
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
|
|
2023-12-20T13:08:21.368Z ERROR 2 --- [ main] o.s.boot.SpringApplication : Application run failed
|
|
|
|
java.lang.IllegalStateException: Failed to execute ApplicationRunner
|
|
[snip]
|
|
Caused by: org.springframework.dao.IncorrectResultSizeDataAccessException: query did not return a unique result: 2
|
|
....
|
|
|
|
===== Browser-Anforderungen
|
|
|
|
Browser-Anforderungen in Entwicklerdokumentation zu niedrig angesetzt, z.B. siehe Video für `+date+`-Input-Feld, welches erst von https://caniuse.com/input-datetime[Firefox 57] unterstützt wird, nicht von Firefox 4.0
|
|
|
|
video::https://salespointframework.org/datetime-input.mp4[]
|
|
|
|
===== Sprache
|
|
|
|
Sprache der Applikation nicht konsistent (schwankt zwischen Deutsch und Englisch)
|
|
|
|
image:https://pad.sbruder.de/uploads/07e41dc8-5b37-437a-bafc-a2f022e12a8b.png%20=x350[https://pad.sbruder.de/uploads/07e41dc8-5b37-437a-bafc-a2f022e12a8b]
|
|
|
|
===== Katalog für nicht angemeldete Nutzer
|
|
|
|
Katalog wird für nicht angemeldete Nutzer in der Menüleiste angezeigt, kann aber nicht angesehen werden (Link zur Registrierung ist zudem nicht klickbar)
|
|
image:https://pad.sbruder.de/uploads/c85bbe92-3183-49b7-96e6-2479697e3bf7.png%20=500x[https://pad.sbruder.de/uploads/c85bbe92-3183-49b7-96e6-2479697e3bf7]
|
|
|
|
===== Arbeitsstunden und Arbeitszeiten von Personal anpassen nicht möglich
|
|
|
|
*F0380* ist recht ungenau formuliert, jedoch kann ich keine derartige Funktionalität finden.
|
|
|
|
===== Rechnung wird nicht als E-Mail versendet
|
|
|
|
Wird von *F0244* verlangt, ist aber offensichtlich nicht der Fall.
|
|
|
|
===== Nicht verfügbare Ressourcen werden eingebunden
|
|
|
|
image:https://pad.sbruder.de/uploads/2cb4b234-231b-4087-9045-58d1a370035f.png[https://pad.sbruder.de/uploads/2cb4b234-231b-4087-9045-58d1a370035f]
|
|
|
|
(`+NS_ERROR_CORRUPTED_CONTENT+` heißt hier: CSS/JS erwartet, HTML erhalten; dazu wird 404 zurückgegeben, hier im Netzwerkinspektor nicht sichtbar)
|
|
|
|
===== In Soviet Russia, catering service pays you!
|
|
|
|
In dieser Demonstration werden folgende Probleme kombiniert:
|
|
|
|
* Stock kann von jeder Person gesehen und bearbeitet werden
|
|
* Rabatte können außerhalb von latexmath:[[0;100]] liegen
|
|
* Backend validiert dies nicht
|
|
|
|
video::https://salespointframework.org/youpayme.mp4[]
|
|
|
|
===== F0241
|
|
|
|
Erstellung einer Buchung pro Service aus dem Warenkorb.
|
|
|
|
image:https://pad.sbruder.de/uploads/c3676d34-7037-41f1-9dc7-519f8c0789de.png[im Warenkorb des bestellenden Nutzers]
|
|
|
|
Bestellung
|
|
|
|
image:https://pad.sbruder.de/uploads/ddb569c9-f51c-4434-b3ea-47a5dcc1d44e.png[als
|
|
bestellender Nutzer nach der Bestellung]
|
|
|
|
image:https://pad.sbruder.de/uploads/40de60c7-a1a9-4ad9-abce-e926bed89dfc.png[als
|
|
Admin nach der Bestellung]
|
|
|
|
Da nirgends eine Definition von des Begriffs _Buchung_ oder im Webinterface das Wort Buchung in den gezeigten Screenshots auftaucht, nehme ich "`Bestellung`" als ein Synonym dafür an.
|
|
Da nach den Screenshots eine "`Order-ID`"/"`Bestellnummer`".
|
|
Damit wäre F0421 verfehlt.
|
|
|
|
===== F0242
|
|
|
|
Bezahlen einer angelegten Buchung, Markierung mit Status „ausstehend“.
|
|
|
|
image:https://pad.sbruder.de/uploads/e75e1d1b-6a8c-48b5-a3c4-8089652c3b22.png[https://pad.sbruder.de/uploads/e75e1d1b-6a8c-48b5-a3c4-8089652c3b22]
|
|
|
|
Wo kann man den _Status_ ändern?
|
|
|
|
* als Admin scheint es über das Stifticon nicht zu gehen
|
|
* als bestellender Nutzer ist scheinbar nur noch eine Art Rechnung der Bestellung downloadbar
|
|
|
|
===== F0530
|
|
|
|
Änderung der persönlichen Daten ist nicht möglich:
|
|
image:https://pad.sbruder.de/uploads/f1848c06-f291-47d3-9e37-bd06730c9d83.png[https://pad.sbruder.de/uploads/f1848c06-f291-47d3-9e37-bd06730c9d83]
|
|
|
|
===== F0520
|
|
|
|
Kein Login für Mitarbeiter möglich.
|
|
|
|
===== F0510
|
|
|
|
Kein Login für Mitarbeiter möglich.
|
|
|
|
=== Sonstiges
|
|
|
|
* Optik recht spartanisch, keine Verwendung des eingebundenen Bootstrap, CSS recht repetetiv und nicht unbedingt idiomatisch
|
|
* Fehlende Features s.o.
|
|
* Usability auf Mobilgeräten sehr schlecht: image:https://pad.sbruder.de/uploads/5f5ceb4e-708f-4a37-af02-bc79291af280.png[https://pad.sbruder.de/uploads/5f5ceb4e-708f-4a37-af02-bc79291af280]
|
|
* Formatierung der Uhrzeit in der Rechnungsanzeige von "`/userprofile`" inkorrekt bspw. wird "`Rechnung von 5.1.2024 *13:2* Uhr.`" angezeigt anstatt "`13:02 Uhr`"
|
|
|
|
=== Verbesserungsvorschläge
|
|
|
|
* Verwirrende Terminologie: Inventar/Stock
|
|
* Verwirrende Terminologie: „Menü“ als Überschrift im Inventar (nicht direkt klar, was das sein soll), „Consumable“ beim Hinzufügen (anderer Begriff)
|
|
* Verwirrende Terminologie: Gehalt/Lohn (im F0370 werden beide Begriffe separat verwendet, implementiert ist jedoch Gehalt, jedoch mit einem Betrag, der eher auf Lohn schließen lässt)
|
|
* Da nirgends eine Definition von des Begriffs _Buchung_ oder im Webinterface das Wort Buchung in den gezeigten Screenshots auftaucht, nehme ich "`Bestellung`" als ein Synonym dafür an. (F0421)
|