// 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)