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