---
# System prepended metadata

title: Projekt-Dokumentation

---

> [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

![](https://hackmd.io/_uploads/rklUq4dwh.png)

## Github Commit History

![](https://hackmd.io/_uploads/rkfgoEuvh.png)


## SonarQube
Da wir einige konflikte mit SonarQube und Selenium hatten haben wir diesen teil ohne die Selenium Tests durchführen müssen.
![](https://hackmd.io/_uploads/B1szLLdDn.png)

![](https://hackmd.io/_uploads/SygcUUOD2.png)


## 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                                                                                                                                                                                                                                                                                                               |