Skip to main content

Eva

Eva ist ein verteiltes System für die modulare und parallele Auswertung von Lösungen zu Programmier- und Datenbankaufgaben über Docker. Es hat die folgenden Funktionen:

  • Kompilierung von Lösungen
  • Prüfung der Lösungen auf funktionale Korrektheit mittels testbasierten Verfahren
  • Prüfung auf Qualitätseigenschaften (wie z.B. Code Style)
  • Ermittlung der Code Coverage (pro Testfall) über Bytecode- und Sourcecode Instrumentierung (JaCoCo, OpenClover)

Das System ist horizontal skalierbar und ermöglicht eine parallele Auswertung. Die zentralen Anwendungsbereiche des Systems sind:

  • Einbindung in Automated Assessment / Intelligent Tutoring Systeme (wie Subato)
  • Auswertung von Forschungsdaten im Bereich der Programmierausbildung

Es ist das erste Auswertungssystem im Bereich der Programmierausbildung, das unterschiedliche Code Coverage Metriken pro Testfall erheben kann. Code Coverage Informationen sind vor allem für die Forschung zu Fehlvorstellungen notwendig und können zudem zu einer Verbesserung des testbasierten Feedbacks beitragen.

Darüber hinaus wurde bei der Entwicklung ein besonderer Fokus auf Modularität und Wiederverwendbarkeit gelegt. Hierdurch entstanden standardisierte Austauschformate für die Vereinheitlichung von sprach- und technologieabhängigen Repräsentationen von Auswertungsergebnissen. Zudem entstanden Testrunner, welche diese Formate verwenden.