Projekt Modul 324 und Modul 450
Das Modul 450 thematisiert das Thema Testen.
Das Modul 324 thematisiert das Thema Dev-Ops.
Beide Themen werden in diesem Projekt kombiniert.
Ausgangslage
Die Basis für die Bewertung der individuellen praktischen Arbeit bildet der
Kriterienkatalog QV BiVO2021
Ein Kriterium ist beschrieben mit:
- ID: zBsp C02
- Titel: zBsp Datenmodell entwicklen
- Anforderungen:
- 1 Es wurde eine geeignete Datenmodellierungsmethodik (bspw. relational, objektorientierte, ER-Modellierung) gewählt, die Wahl wurde sinnvoll begründet.
- 2 ...
- Gütestufen: Anforderungen umrechnen in Punkte 0-3:
- 3: alles erfüllt / 2: 4-5 erfüllt / 1: 2-3 erfüllt / 0: weniger als 2 erfüllt

Projektidee
Eine Webapplikation, mit der nachgeführt werden kann, welche Anforderungen pro Kriterium bereits erfüllt wurden.
Daraus kann die Applikation die mutmassliche Note von Teil 1 und Teil 2 der individuellen praktischen Arbeit berechnen.
Anforderungen
- Organsisation:
- Gruppen bilden von 2-3 Personen
- Arbeiten planen mit einfachem Storyboard oder Aufgabenliste
- GitHub Repository erstellen.
- Parallele Umsetzun
- KI-Nutzung:
- Nutzen Sie explizit die Möglichkeiten von KI.
- Dokumentieren Sie in Ihrem Repository, wie und wo Sie KI genutzt haben.
- Kurze Notiz, Was, Hinweis auf Codestelle
- keine Prompts
- Aufbau:
- Frontend: zBsp: React
- Backend: zBsp: Java Springboot
- Datenbank: SQL oder NoSQL
- aber kein Code-Less Tool wie zBsp. Bubble.io
- Funktionalität:
- Erfassen der Personendaten.
- Name, Vorname, Thema der Arbeit, Datum der Abgabe
- Diese Daten werden im Backend in der Datenbank gespeichert.
- Fortschritt der Erfüllung der Kriterien erfassen:
- Die Kriterien mit ID, Titel, Leitfrage, Anforderungen, Gutestufen werden als JSON-Datei im Backend gespeichert.
- Vorbereitung ausserhalb der Applikation: Kriterien aus PDF umwandlen in JSON
- Beginnen Sie mit 3 Kriterien (zBsp je eines aus A, eines aus B/C/G oder H und eines aus Doc)
- In Ihrer eigenen IPA werden Sie ihre persönliche Auswahl von Kriterien haben. Und es kann sein, dass Kritieren gegenüber dem Katalog verändert wurden. Deshalb wird später der Transfer vom PDF in JSON individuelle pro Person gemacht werden müssen. (Nicht Teil dieses Projektes.)
- Frontend ruft die Kriterien vom Backend ab und stellt sie dar.
- Benutzer kann nun die Anforderungen des Kriteriums in der Darstellung abhaken.
- Weiter kann der Benutzer unter dem Kriterium eine Notizen hinterlegen. ZBsp was noch fehlt.
- Die erfassten Daten werden via Backend in der Datenbank gespeichert.
- Die Kriterien mit ID, Titel, Leitfrage, Anforderungen, Gutestufen werden als JSON-Datei im Backend gespeichert.
- Mutmassliche Note berechnen und anzeigen:
- Das Backende kann aus den Daten der abgehakten Anforderungen pro Kriterium die Gütestufe (0-3) berechnen.
- Das Backend kann aus den Gütestufen aller Kriterien die mutmassliche Note für Teil 1 und Teil 2 berechnen.
- Das Frontend ruft diese Daten ab und stellt Sie dar.
- Für Teil 1 und Teil 2:
- errechnete Gütestufe pro Kriterium
- errechnete mutmassliche Note
- Erfassen der Personendaten.
Bewertung
Stetiger Fortschritt ist wichtiger als ein fertiges Produkt am Ende der Projektzeit.
Organisation und Zusammenarbeit im Team:
- Sie arbeiten im Team mit einem Partner.
- Sie nutzen ein Git-Repository und checken die Software regelmässig nach jedem Arbeitsschritt ein.
- Jeder im Team hat jeder Zeit Zugriff auf den aktuellen Stand der Dokumente des Teams (Arbeitplanung, Software, Tests, etc.).
- Sie kommunizieren effizient, transparent über Ihr Vorgehen, geplante Arbeiten und Erledigtes.
- Jeder im Team ist fähig über alles im Projekt kompetent Auskunft zu geben.
- Ihr Projekt muss sich von den Projekten anderer Teams deutlich unterscheiden.
- Sie entwickeln das Projekt kontinuierlich stetig weiter. Kleine Schritte, die abgeschlossen sind. Agiles Vorgehen.
Dev-Ops (Modul 324): (Anpassungen durch Lehrperson noch möglich)
- Der Code muss bei jedem Commit automatisch gebaut werden.
- Fehlgeschlagene Builds sollen die Pipeline stoppen und eine Fehlermeldung zurückgeben.
- Alle Unit-Tests und Integrationstests werden automatisch ausgeführt.
- Die Tests müssen beim Durchlaufen der Pipeline mindestens 80 % der definierten Testfälle bestehen.
- Testergebnisse sollen in der GitHub Actions-Übersicht dargestellt werden.
- Ein Linter überprüft den Code und meldet Fehler.
- Nach erfolgreichem Testen soll die Pipeline die App automatisch in eine Staging-Umgebung deployen.
- Sensible Daten wie API-Keys sollen sicher mit GitHub Secrets verwaltet werden.
- Jeder Schritt in der GitHub Actions-Konfiguration (YAML-Datei) muss kommentiert sein.
- Die Funktionsweise der Pipeline wird kurz im Projektbericht dokumentiert.
- Die Pipeline muss spezifische Fehlermeldungen ausgeben, z.B. bei fehlgeschlagenen Tests oder Builds.
Testing (Modul 450) (Anpassungen durch Lehrperson noch möglich)
- Erstellen eines Testkonzepts mit Definition der Testarten
(z.B. Unit-Tests, Integrationstests, E2E-Tests). - Dokumentation der Testfälle mit Beschreibung von Vorbedingungen, Eingaben, erwarteten Ergebnissen und Nachbedingungen.
- Implementierung und Ausführung automatisierter Tests mit einem Testframework
(ZBsp Jest, JUnit, Cypress...). - Nachvollziehbare Dokumentation der Testergebnisse, ... Testprotokolle.
- Abdeckung von mindestens 80 % der User-Story-Anforderungen durch Tests.
- Nutzung von Mocking-Tools oder Stubs, um Abhängigkeiten in Integrationstests zu simulieren.
- Einhaltung der Clean-Code-Prinzipien, um Tests effizient und wartbar zu gestalten.
Bewertungsraster
| Kriterium | Modul | Gewichtung (%) | Beschreibung |
|---|---|---|---|
| Automatisierung | 324 | 30 | CI/CD-Pipeline automatisiert Build-, Test-Prozesse. Struktur der Jobs und Abhängigkeiten zwischen den Prozessen. ungenügend, genügend, gut, hervorragend |
| Testintegration | 324 | 20 | Automatisierte Tests sind in die Pipeline integriert und Ergebnisse deutlich sichtbar. ungenügend, genügend, gut, hervorragend |
| Code-Qualität | 324 | 10 | Linter meldet Probleme, fehlerhafter Code wird nicht in den Hauptbranch gemerged. ungenügend, genügend, gut, hervorragend |
| Versionskontrolle | 324 | 10 | Systematische Git-Nutzung mit sinnvollen Commits, Branches Branches mussen vor dem Merge getestet sein (Nachweis, wie das eingehalten wird). ungenügend, genügend, gut, hervorragend |
| Vorgehen | 324 | 30 | Geplantes Vorgehen nachvollziehbar (zBsp. Storyboard, Aufgabenliste...) regelmässiger Fortschritt, klare prägnannte Kommunikation, Abdeckung der Anforderungen. ungenügend, genügend, gut, hervorragend |
| Testkonzept | 450 | 25 | Vollständiges Testkonzept mit klarer Beschreibung von Testarten, Zielen und Fällen. ungenügend, genügend, gut, hervorragend |
| Testabdeckung | 450 | 25 | Mindestens 80 % der umgesetzten User-Story-Anforderungen sind durch Tests abgedeckt. Nachvollziehbarkeit: Anforderung --> Test ungenügend, genügend, gut, hervorragend |
| Testumsetzung | 450 | 20 | Unterschiedliche Testarten unterschiedliche Teststufen (Testpyramide) Automatisierte Tests, sinnvoll und korrekt implementiert. ungenügend, genügend, gut, hervorragend |
| Testergebnis | 450 | 10 | Testergebnisse und Fehler sind dokumentiert (Protokoll, Analyse des Ergebnisses). ungenügend, genügend, gut, hervorragend |
| Vorgehen | 450 | 30 | Geplantes Vorgehen nachvollziehbar (zBsp. Storyboard, Aufgabenliste...) regelmässiger Fortschritt, klare prägnannte Kommunikation, Abdeckung der Anforderungen. ungenügend, genügend, gut, hervorragend |