> [time=Wed, Jun 15, 2023][name=Lucas. C][name=Lukas. B][name=Linus. S][name=Martin. S][color=#fa52e4]
:::info
#### Bisherige Abgaben:
1. [Systemanforderung](https://hackmd.io/@m450/SJlTfiYlh)
2. [Entwicklung- Test- und Produktionsumgebung](https://hackmd.io/@m450/HJwllnMb2)
3. [Furps](https://hackmd.io/@m450/S1eMkjy3Zh)
4. [Systemtests ](https://hackmd.io/@m450/BkuCmb2b3)
5. [JUnit ](https://hackmd.io/@m450/HJu2mmBz3)
6. [Mockito ](https://hackmd.io/@m450/Hyj2p7rM2)
7. [Selenium](https://hackmd.io/@m450/SkLtWv0zh)
8. [BALF(Clean Code Konzepte)](https://hackmd.io/@m450/SJpUlz9Nn)
9. [Code Reviews und Static Code Analysis ](https://hackmd.io/@m450/BybaFQqN3)
:::
:::danger
#### Projekt auf Github:
https://github.com/LinusGSP/m450_applikation_testen
:::
# Projekt-Dokumentation
## Test Driven Developed Erweiterung Quiz-Me Webanwendung
### <u> Aufgabe </u>
**Implementiere dieses Feature mit Hilfe von TDD:**
* Eine Passwort geschützte Admin Page mit der Funktion vorhandene Lernsets zu löschen
---
### <u> Flowchart </u>
```flow
st=>start: Admin Page
e=>end: close page
op=>operation: enter password
op2=>operation: choose "Lernset"
op3=>operation: delete "Lernset"
io=>inputoutput: sends delete request to DB
io2=>inputoutput: deletes data from DB
io3=>inputoutput: refreshes page with new data
cond=>condition: correct password?
cond2=>condition: delete any other "Lernsets"?
st->op->cond->op2->op3->io->io2->io3->cond2
cond(yes)->op2
cond(no)->op
cond2(yes)->op2
cond2(no)->e
```
---
## TDD

## Github Commit History

## SonarQube
Da wir einige konflikte mit SonarQube und Selenium hatten haben wir diesen teil ohne die Selenium Tests durchführen müssen.


## TestKonzept
| ID / Titel | T-001 Korrekte Passwort Validierung |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Beschreibung | Es wird überprüft, ob bei der Eingabe eines falschen Passworts der User nicht auf die Admin page gelassen wird. |
| Testvoraussetzungen | • Der MySQL Server wurde gestartet und wurde korrekt initiiert.<br>• Das Java backend wurde gestartet.<br>• Das Node.js Frontend ist gestartet.<br>• Ein Browser sollte installiert sein, vorzugsweise Firefox |
| Testschritte | 1. Öffnen des Browsers<br>2. Eingabe der von ‘http://localhost:3000/admin’ in die Suchleiste.<br>3. Eingabe in das Passwortfeld ‘Test‘<br>4. Submit Taste drücken |
| Erwartetes Ergebnis | Der User bleibt auf der gleichen Seite und wird nicht Weitergeleitet |
| Effektieves Ergebnis | Der User wird nicht weitergeleitet |
| Mängelklasse | 0
| ID / Titel | T-002 Eingabe Korrektes Passwort |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Beschreibung | Es wird überprüft, ob bei der Eingabe des Korrekten passwortes, der User auf die Admin page weitergeleitet wird. |
| Testvoraussetzungen | • Der MySQL Server wurde gestartet und wurde korrekt initiiert.<br>• Das Java backend wurde gestartet.<br>• Das Node.js Frontend ist gestartet.<br>• Ein Browser sollte installiert sein, vorzugsweise Firefox |
| Testschritte | 1. Öffnen des Browsers<br>2. Eingabe der von ‘http://localhost:3000/admin’ in die Suchleiste.<br>3. Eingabe in das Passwortfeld ‘12345‘<br>4. Submit Taste drücken |
| Erwartetes Ergebnis | Der User wird auf die Admin Page weitergeleitet und hat nun die Möglichkeit Lernsets zu löschen. |
| Effektieves Ergebnis | Der User wird weitergeleitet zur Admin page. |
| Mängelklasse | 0 |
| ID / Titel | T-003 Korrekte Löschen von Lernsets |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Beschreibung | Es wird überprüft, ob Lernsets korrekt gelöscht werden können. |
| Testvoraussetzungen | • Der MySQL Server wurde gestartet und wurde korrekt initiiert.<br>• Das Java backend wurde gestartet.<br>• Das Node.js Frontend ist gestartet.<br>• Ein Browser sollte installiert sein, vorzugsweise Firefox |
| Testschritte | 1. Öffnen des Browsers<br>2. Eingabe der von ‘http://localhost:3000/admin’ in die Suchleiste.<br>3. Eingabe in das Passwortfeld ‘12345‘<br>4. Submit Taste drücken<br>5. Beim ersten Lernset den Namen Aufschreiben/Merken<br>6. Delete Button des Lernsets drücken<br>7. Schauen, ob das Lernset noch vorhanden ist. |
| Erwartetes Ergebnis | Nach dem Löschen des Lernsets wird der User auf die Home seite weitergeleitet und das Lernset ist dort nicht mehr Vorhanden. |
| Effektieves Ergebnis | Der User wird weitergeleitet und das Lernset ist verschwunden. |
| Mängelklasse | 0 |