# QS-Ziele
### Wartbarkeit
Unsere Auftraggebenden (folgend als AGs bezeichnet) planen das Projekt durch eine Visualisierung der von unserer Anwendung gesammelten Daten zu erweitern. Zusätzlich soll es möglich sein die WiFi-Access-Point Parameter zu optimieren.
Hierfür ist gut lesbarer und verständlicher Code eine Voraussetzung.
Deshalb haben wir dem Qualitätssicherungsziel "Wartbarkeit" die höchste Priorität zugeteilt.
Um dieses Qualitätsziel zu erreichen, werden wir nach jeder abgeschlossenen User Story Code Reviews durchführen, um unsauberen und unleserlichen Code frühzeitig zu erkennen. Diese werden unterstützt und geleitet durch eine automatische Überprüfung anhand des Kotlin Style Guides.
### Portabilität
Im Rahmen dieses Projektes hat die Sicherstellung der Portabilität eine hohe Priorität, um die Verbreitung der Software zu vergrößern.
Da unsere Software dazu dienen soll die Einstellungen eines Routers zu verbessern und dies im Optimalfall für jede Person möglich sein soll, ist eine Ausführbarkeit auf möglichst vielen verschiedenen mobilen Endgeräten wünschenswert. Wir haben die Android Version 8.0 als Minimum ausgewählt, da dies die minimale Version eines Gerätes ist, die uns zum Testen zur Verfügung steht. Mit dieser Anforderung kann unsere Anwendung auf etwa 82% der aktuellen Android-Geräten ausgeführt werden. (Stand: 09.12. - Android Studio)
Dies werden wir mit manuellen Tests auf physischen Geräten sicherstellen, um Abweichungen der Funktionalität in Simulation und durch verschiedene Android Versionen ausschließen zu können. Die manuellen Tests werden auf folgenden Geräten durchgeführt, da uns diese zur Verfügung stehen:
- HUAWEI P8 lite 2017(Android 8.0.0)
- Samsung Galaxy S9 (Android 10)
- Xiaomi Mi 9 (Android 11)
### Zuverlässigkeit
Im Rahmen dieses Projektes hat die Sicherstellung der Zuverlässigkeit eine hohe Priorität.
Da unsere Software dazu dienen soll die Einstellungen eines Routers zu verbessern, sind wir auf die Richtigkeit unserer gesammelten Daten angewiesen.
Hierfür werden wir automatisierte Tests verwenden, welche die Funktionen des Backends überprüfen. Das Frontend wird durch manuelle Tests der Portabilität mit überprüft, um auch dort eine korrekte Funktionsweise sicherstellen zu können.