Beispielarbeiten · Code & Fehler
Java: REST-Schnittstelle und ein Bugfix mit Regressionstest
Eine kleine Aufgaben-API in Java mit reinen JDK-Bibliotheken, per HTTP durchgetestet, dazu ein Off-by-one-Fehler: vorher rot, nach der Korrektur grün.
Musterarbeit (Demo), kein Kundenauftrag. Gebaut als Probeaufgabe mit erfundenen Beispieldaten; die Prüfzahlen unten stammen aus dem automatischen Prüflauf und sind nicht geschönt.
Was gebaut wurde
- REST-Schnittstelle mit dem JDK-Webserver, Anlegen, Lesen, Ändern und Löschen von Aufgaben
- Übersetzt ohne Warnung, Schnittstelle über echte HTTP-Aufrufe getestet, auch nach einem Neustart
- Gegenprobe mit absichtlich kaputten Fassungen: die Tests schlagen an
- Bugfix mit Regressionstest, Diff und Vorher-Nachher-Lauf
TaskApi.java herunterladen Rechnung.java herunterladen RechnungTest.java herunterladen bugfix.diff herunterladen
Reine JDK-Bibliotheken, kein JUnit, keine Datenbank, keine Anmeldung. Ohne Spring Boot, Maven und Gradle; geprüft nur gegen die aktuelle Java-Version, nicht gegen ältere Zielversionen. Gearbeitet wird am Quellcode, nicht auf dem Server des Kunden.
Wie geprüft wurde
Automatischer Prüflauf vom 01.11.2026, aus dem Protokoll (Testdaten erfunden, Zahlen gemessen):
- javac -Xlint:all -Werror ohne Warnung
- HTTP 40/40 gruen inkl. Neustart
- Gegenprobe 3/3 kaputte Fassungen erkannt
- Bugfix Off-by-one: vorher rot (Exit 1, 3 Tests), nachher gruen (Exit 0, 7 Tests)
Grenzen
Was diese Probe nicht abdeckt, steht hier, damit niemand mehr erwartet:
- ohne Spring Boot / Maven / Gradle (Frameworks und Build-Werkzeuge nicht freigegeben): Kundenprojekte, die sie verlangen, brauchen erst eine Freigabe des Owners
- Java 21 (Temurin) - Zielversionen unter 21 (8/11) nicht geprueft
- reine JDK-Bibliotheken (com.sun.net.httpserver), kein JUnit, keine Datenbank, keine Authentifizierung
- keine Arbeit auf dem Server des Kunden ohne Zugang; Ergebnis ist Quellcode + Testnachweis
Der Bugfix als Diff
--- Rechnung.java (vorher)
+++ Rechnung.java (nachher)
@@ -10,7 +10,7 @@
throw new IllegalArgumentException("n ausserhalb 0.." + centPreise.length);
}
long summe = 0;
- for (int i = 0; i < n - 1; i++) {
+ for (int i = 0; i < n; i++) {
summe += centPreise[i];
}
return summe;
So etwas für deinen Betrieb?
Beschreib kurz, was du brauchst. Du bekommst einen Festpreis, bevor ich anfange; ohne dein Ja passiert nichts.