Zum Inhalt

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

Beispiel Kriterium

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.

Grober Entwurf
Grober Entwurf (nur Idee)

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 Grober Entwurf

  • 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.
    • 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

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