Hallo,
ich glaube schöner wäre es, wenn die Tests nicht bestimmte TIDs erwarten. Dafür aber müssen bestimmte Constraints geprüft werden, z.B. dass man mit einer bestimmten minimalen Seitengröße noch auskommt, für so-und-so-viele Datensätze nicht mehr als X Seiten benötigt, etc. pp. Des Weiteren muss man dann auch gezielt die Performanz testen, das heisst z.B. ein massiver Get-Test, um zu prüfen, ob es wirklich mit O(1) läuft.
Das Problem dabei ist natürlich, dass solche Tests erheblich aufwendiger, und auch ein Stück schwieriger zu gestalten sind. Auch gibt es dann die erhöhte Gefahr einer Grauzone, in der sinnvolle Lösungen plötzlich nicht so gut bewertet werden wie eigentlich schlechter konzipierte, weil die entspr. Tests zu einseitig gestaltet sind. Das gibt dann wieder viel Anlass für Streit ;-)…
Man hat aber noch ein weiteres Problem: Anscheinend, böse gesagt, ist es den meisten Studenten tatsächlich auch lieber, irgendeinen “Scheiss” nachzuprogrammieren, als sich selbst etwas überlegen zu müssen. Wenn dann z.B. letztes Mal alle diesen B-Baum “zum Kotzen” fanden, nur weil man halt eben wirklich überlegen musste, wie dieses ganz grundlegende Konzept funktioniert, sieht man, dass nicht jeder Groll auf diese Veranstaltung wirklich berechtigt ist. Oh nein, es ist schwer - ich muss weinen!
Es ist also schon nachvollziehbar, wieso die Übung so “abgestumpft” ist.
Dazu kommt noch ein weiterer Faktor: Die Garantie, dass man mit bestandenen öffentlichen Tests auf jeden Fall die Aufgabe bestanden hat, ist eigentlich äußerst kontraproduktiv (aufgrund des Umkehrschlusses: Ohne alle Punkte in diesen Tests ist ein Bestehen unwahrscheinlich). Sie wurde aber eigentlich zum Wohl der Teilnehmer eingerichtet, bzw. um ihnen eine gewisse Sicherheit zu ermöglichen. Dummerweise wird dadurch die Arbeit an der Aufgabe erstrecht pervertiert.
Bei mir gab es damals diese Regelung nicht und man hat einfach versucht, es “richtig” zu machen und den Großteil der Tests zu bestehen. Heutzutage dagegen scheint es allgemeiner Usus zu sein, den eigenen Code einfach so lange zu bearbeiten, bis endlich der Test durchläuft; man kämpft sich dabei teilweise einfach von Befehl zu Befehl, Diff zu Diff. Dabei geht IMHO oftmals viel von der Substanz verloren, es gibt ja auch gar nicht mehr so einen großen Anreiz, zu verstehen, wieso das jetzt eigentlich so oder so funktioniert.
Auch hier kann man jetzt schwer abwägen: Will man diese Regelung oder nicht? Nützt sie oder schadet sie. Ich gehe mal davon aus, dass viele tatsächlich nicht darauf verzichten wollen (siehe oben: Man arbeitet lieber den vorgekauten Test ab, als sich auf seinen eigenen Gehirnschmalz verlassen zu müssen)…
Ich freue mich über weitere Meinungen zu diesem Thema
cu
Ford Prefect