Werkzeug zur Generierung von Unit-Tests für die automatische Beurteilung von Programmieraufgaben.


Hintergrund: Das Institut für Wirtschaftsinformatik setzt vermehrt auf die vollautomatische Beurteilung von Programmieraufgaben (Java, Python). Dabei kommen aktuell unterschiedliche Systeme zum Einsatz (ArTEMiS, Github Education, Moodle Code Runner). Neben einer hohen Korrektheit und Zuverlässigkeit der vollautomatischen Beurteilung sollen auch noch Daten erhoben werden, die Rückschlüsse darauf erlauben, inwieweit Studierenden die im Curriculum geforderten Kompetenzen auch erreichen, bzw. bei welchen Kompetenzen es Nachholbedarf gibt.

Ziel der Arbeit: Ziel dieser Masterarbeit ist die Entwicklung eines datengetriebenen (black-box orientierten) Generators, der auf Basis der spezifizierten Testfälle (black-box) automatisiert Unit-Tests für die o.a. Systeme (ArTEMiS, Github Education, Moodle Code Runner) generiert und learning-analytics Daten in Bezug auf die Erreichung der Kompetenzen bereitstellt.

Aufgaben:

  • Literaturanalyse, inwieweit bestehende Ansätze zur Generierung von Unit-Tests auf Basis von spezifizierten Testfällen für diese Aufgabenstellung geeignet sind.
  • Entwicklung eines möglichst einfachen Schemas (aufbauend auf die Ergebnisse der Literaturanalyse), auf Basis dessen die Unit-Tests automatisch generiert werden können.
  • Implementierung des Testfallgenerators (je nach Aufwand wird entschieden, für welche Systeme und welche Programmiersprache das durchzuführen ist)
  • Analyse der Eignung des Generators in Bezug auf Anwendbarkeit für LVA-Leiter, Feedback-Qualität für Studierende und Robustheit der Implementierung

Erwartete Ergebnisse:

  • Testfallgenerator
  • Detaillierte quantitative und qualitative Analyse des Werkzeuges mit Fokus auf Anwendbarkeit, Zuverlässigkeit, Korrektheit, Effizienz und Qualität des Feedbacks.
  • Beurteilung der Eignung der erhobenen Daten für learning-analytics.

Betreuung: Reinhold Plösch

Entwicklung eines Werkzeuges zur Generierung von Unit-Tests für Programmieraufgaben