---
# System prepended metadata

title: Entwicklung- Test- und Produktionsumgebung

---

> [name=Lucas]
> [time=Thu, Mar 30, 2023 8:52 AM]
> [name=Lukas]
> [time=Thu, Mar 30, 2023 8:52 AM]
> [name=Linus]
> [time=Thu, Mar 30, 2023 8:52 AM]
> [name=Martin]
> [time=Thu, Mar 30, 2023 8:52 AM][color=#680de0]
&rarr;
# Entwicklung- Test- und Produktionsumgebung
## Aufgabe 1
### Kleine Auswahl von nicht funktionalen Anforderungen

- Nutzerfreundliches Design
- Responsive
- Schnelle Reaktionszeiten
- Applikationssicherheit
- Barrierenfreiheit

---

## Aufgabe 2/3
### geeignete Testumgebung
**Hardware**: 16 GB RAM, CPU Intel i7 4 Kerne
**Betriebssystem**:  Windows 10 Pro v19044.2728
**Browser**: Google Chrome v111.0.5563.147 (official Build)
**Testframework**: JEST 29.5.x, Selenium 4.8.x, JUNIT 4.13.x
**Datenbank**: MySQL v8.0
**Prüfwerkzeuge**: InteliJ IDEA v2022.3
**Plugins**: not needed (I think)

---

## Aufgabe 4
### Testkonzept and eigene Wahl anpassen
#### a) Welche der folgenden Testziele (für nicht-funktionale Anforderungen) können mit der gewählten Umgebung getestet und wenn möglich automatisiert werden? Testziele:
- i. Fehler identifizieren, 
	- *Prüfbar*
- ii. die Leiistung überprüfen oder
	- *Prüfbar*
- iii. die Benutzerakzeptanz nachweisen
	- *Nicht Prüfbar*

---

#### b) Welche bereits geplanten Tests oder Testfälle können nicht mit der ausgesuchten Umgebung durchgeführt werden und allenfalls müssen mit einer anderen Testmethodik gemacht werden?

Keine, alle geplanten Testfälle können durchggefürt werden.

---

##### c) Beschreibe nun genau mit welchen Mitteln und Verfahren die jeweiligen Tests in der ausgewählten Umgebung manuell gemacht bzw. automatisiert werden können.

##### - Testfall #1: Anzeige der Quiz-Frage und Antwortmöglichkeiten
Manuelle Tests: Der Testfall kann manuell über den Browser durchgeführt werden, indem man die Anwendung öffnet und sicherstellt, dass die Quiz-Frage und Antwortmöglichkeiten korrekt angezeigt werden.

Automatisierte Tests: Der Testfall kann automatisiert werden, indem man JEST, Selenium und JUnit verwendet, um ein Skript zu schreiben, das die Anwendung öffnet und prüft, ob die Quiz-Frage und Antwortmöglichkeiten korrekt angezeigt werden.

##### - Testfall #2: Einreichen einer Quiz-Antwort
Manuelle Tests: Der Testfall kann manuell  über den Browser durchgeführt werden, indem man die Anwendung öffnet, eine Quiz-Frage auswählt und eine Antwort auswählt, um sicherzustellen, dass die Antwort korrekt übermittelt wird.

Automatisierte Tests: Der Testfall kann automatisiert werden, indem man JEST, Selenium und JUnit verwendet, um ein Skript zu schreiben, das die Anwendung öffnet, eine Quiz-Frage auswählt, eine Antwort auswählt und prüft, ob die Antwort korrekt übermittelt wird.

##### - Testfall #3: Erstellen eines Lensets
Manuelle Tests: Der Testfall kann manuell über den Browser durchgeführt werden, indem man die Anwendung öffnet und sicherstellt, dass das Lenset korrekt erstellt wird.

Automatisierte Tests: Der Testfall kann automatisiert werden, indem man Selenium und JUnit verwendet, um ein Skript zu schreiben, das die Anwendung öffnet, ein Lenset erstellt und prüft, ob das Lenset korrekt erstellt wurde.

##### - Testfall #4: XSS Injection
Manuelle Tests: Der Testfall kann manuell über den Browser durchgeführt werden, indem man versucht, ein Script in das Frage-Objekt zu injecten und sicherstellt, dass es nicht ausgeführt wird.

Automatisierte Tests: Der Testfall kann automatisiert werden, indem man JEST und JUnit verwendet, um ein Skript zu schreiben, das versucht, ein Script in das Frage-Objekt zu injecten und prüft, ob es nicht ausgeführt wird.

---

#### d) Welche zusätzlichen Tests sind zudem mit den gewählten Werkzeugen möglich.

- Erstellen eines Lensets
- XSS Injection: Es wird getested ob es möglich ist ein Script in das Frage-Objekt zu injecten

---

#### e) Hat deine Auswahl eine Auswirkung auf die Test-Daten und -Unterlagen?

Nein, es hat keine Auswirkungen, da die Testwerkzeuge gleich bleiben und alle Tests noch kompatibel sind. Jedoch können massgebende Änderungen an der Testumgebung Auswirkungen auf Test-Daten und -Unterlagen (zB. Testpläne, Testfälle und Testskripte) haben.

---

#### f) Sind durch die Wahl auch Anpassungen an Testverantwortlichkeiten und Testzeitpunkt notwendig?

Nein, keine Anpassungen sind notwedig. Unsere Wagk hat bei uns keine Änderungen in  der Testverantwortlichkeiten und des Testzeitpunktes verursacht. Massgebenden Änderungen an der Testumgebung kann aber die Art und Weise wie Funktionen funktionieren und getestet werden beinfluss. Da ist es essenziel wichtig auch die Testverantwortlichkeit und Testzeitpunkt anzupassen.

---

#### g) Sollte die Berichterstattung der Testergebnisse auch angepasst werden?

Nein, unsere Anpassungen haben keine Änderungen in der Berichterstattung des Testergebnisse verursacht. Jedoch ist es essenziel wichtig, das bei massgebende Änderungen an der Testumgebung auch die Berichterstattung der Testergebnisse angepasst werden, da sich die Art und Weise wie die Funktionen funktionieren und getesten werden sich ändern.

---

#### h) Bleiben die Tests wiederholbar und nachvollziehbar?

Ja, unsere Test bleiben immernoch wiederholbar und nachvollziehbar.

---

#### i) Ist jeweils festgelegt, was nach dem Finden eines Fehlers wann passieren soll, wenn ja ändert sich nun etwas?

Wenn ein fehler gefundene wird erstellt der Tester in unserem Github Repository ein Issue. Dieses beinhaltet:
- Welcher Test wurde getestet?
- Was wurde getan?/ die Schritte, die zum Fehler führten. Wie kann man den Fehler rekreieren?
- Den Fehler/Fehlercode oder das unerwartete Ergebnis/Resulat.
- Das eigentlich erwartetes Ergebnis

Dannach kann es von einem Entwickler untersucht und verbessert werden.