Nutzung Testfälle
🚧 | Diese Seite befindet sich in Bearbeitung | 🚧 |
Das Testen von Software ist ein wesentlicher Bestandteil der heuteigen Softwareentwicklung. Aus diesem Grund sind das Finden und Beheben von Fehlern, sowie das Testen und JUnit bereits Teil der Programmiervorlesung im ersten Semester. Wir wollen damit unter anderem Studierende ermutigen, ihre eigenen Programmieraufgaben selbstständig mit eigenen testfällen zu testen.
Wenn nun aber diese eigenen Testfälle weitergegeben werden, entsteht ein unfairer Vorteil für die Studierenden, welche im Besitz von fremden Testfällen sind. So hat ein Studierender automatisch einen Vorteil gegenüber seinen Mitstudierenden, wenn er seine Programmieraufgaben mit frendem Testfällen testen und damit seine eigenen Programmieraufgaben verbessern kann. Eine solche unkontrollierte Weitergabe von Testfällen verstößt gegen die Chancengleichheit aller Studierenden, welche die Übungsaufgaben oder Abschlussaufgaben bearbeiten wollen.
Aus diesen Gründen wollen wir eine Regelung für das Teilen von Testfällen einführen. Mit dieser Regelung soll ein fester Rahmen geschaffen werden, in dem jeder Studierende seine eigenen Testfälle unter bestimmten Bedingungen teilen darf, sodass jeder Mitstudierende sie finden und nutzen kann. Dabei ist zu beachten, dass diese Regelung auch wieder aufgehoben werden kann. Sollte dies der Fall sein, wird dies im Forum bekannt gegeben., Die acht Eckpunkte dieser Regelung sind:
- Es dürfen nur eigene Testfälle ausgetauscht werden:
Es dürfen nur die eigenen JUnit-Tests oder Protokolltests ausgetauscht werden und keine weiteren Lösungen oder Vergleichbares. Es ist ausdrücklich nicht erlaubt, Testfälle aus dem Abgabensystem oder andere Implementierungen in irgendeiner Form zur Verfügung zu stellen. Dies gilt neben den Testfällen aus dem Abgabensystem insbesondere auch für die Testfälle auf der Aufgabenstellung als auch für die Beispiellösungen oder die eigenen Lösungen. - Die Testfälle dürfen keine Implementierungsdetails enthalten:
Die geteilten Testfälle dürfen nicht direkt auf die eigentliche Implementierung der Programmieraufgabe schließen lassen. Ähnlich wie bei den Beispielinteraktionen dürfen die Testfälle nur die Werte der Programmeingaben und -ausgaben enthalten. Wenn beispielsweise die Fibonacci-Folge implementieren soll, dürfen die Testfälle nur die Werte der Zahlenfolge fest hartcodiert enthalten, nicht aber die zugehörige Rechenregel. - Testfälle dürfen nicht im Abgabensystem mit eingereicht werden:
Eigene und fremde Testfälle dürfen nicht zusammen mit einer einzigen Abgabe im Abgabensystem hochgeladen werden. Zu diesem Zweck wurde der Ordner „tests/“ in die nicht verfolgten Dateien aufgenommen, damit sein Inhalt von GIT ignoriert wird. - In jedem geteilten Testfall muss das eingene u-Kürzel angegeben werden:
Geteilte Testfälle müssen immer eindeutig einem Studierenden zugeordnet werden können. Außer dem eigenen u-Kürzel dürfen den geteilten Testfällen keine weiteren persönlichen Daten hinzugefügt werden. - Die Testfälle müssen unter einer Open-Source-Lizenz veröffentlicht werden:
Damit die Testfälle von jedem Studierenden problemlos verwendet werden können, müssen alle freigegebenen Testfälle unter der sogenannten MIT-Lizenz für alle zugänglich gemacht werden. Zu diesem Zweck muss der MIT-Lizenztext muss in einer Datei namens LICENSE im Stammverzeichnis des Repositorys abgelegt werden. - Student:innen können ihre aufgabenspezifischen Tests in deren eigenen Git-Repository bereitstellen:
Andere Git-Repositories (mit fremden Testfällen) können jedoch jederzeit mit sogenannten Git-Submodulen als Unterverzeichnis des eigenen Git-Repositories eingebunden werden. Aufgabenunabhängige generische Rahmenwerke für Testfälle, wie sie z. B. mit den Protokolltests ausgeführt werden können, können im Gegensatz hierzu gemeinsam entwickelt und eingesetzt werden. - Die Testfälle für eine Aufgabe müssen immer mittels einem eigenen internen Repository innerhalb des GitLab des KIT freigegeben werden:
Die Sichtbarkeitsebene muss immer auf „Intern“ eingestellt sein, sodass das Repository nur von jedem angemeldeten Studierenden erreicht werden kann. Alle Testfälle, die unseren Richtlinien entsprechen und für alle Studierenden in GitLab zugänglich sind, können auch auf anderen Plattformen zur Verfügung gestellt werden. - Das Repository für die Testfälle einer Aufgabe muss immer einen vordefinierten festen Projektnamen haben:
Damit alle Studierenden auch die Möglichkeit haben, erfolgreich nach den freigegebenen Testfällen zu suchen, muss der Projektname immer dem folgenden Schema folgen: tests-<sheet>-<task>-<semester>. Dabei ist <sheet> das Kürzel für das zugehörige Aufgabenblatt (z. B. Sheet1, Sheet5, Final1 oder Final2), <task> für die zugehörige Aufgabe (z. B. TaskA, TaskB, oder TaskC) und <semester> für das aktuelle Semester (z. B. WS2223, SS23, WS2324 oder SS24).
Mit diesen Regelungen wollen wir Klarheit, Vorhersehbarkeit und Sicherheit über die Prüfungsformen sowie die damit verbundenen konkreten Prüfungspflichten und -berechtigungen geben. Dieser Schritt bedeutet aber weiterhin auch, dass die Übungs- und Abschlussaufgaben eigenständig erstellt werden müssen und alle verwendeten Hilfsmittel vollständig und genau angegeben werden müssen und alles, was unverändert oder mit Abänderungen aus Arbeiten anderer übernommen wurde, angegeben werden muss.