DDP-Projekt / Kompilierer

Der Kompilierer der Deutschen Programmiersprache
https://ddp.le0n.dev/Spielplatz
MIT License
139 stars 3 forks source link

Mehr/Bessere Tests #60

Open bafto opened 7 months ago

bafto commented 7 months ago

Momentan gibt es nur eine begrenzte Menge an End-to-End tests und keinerlei Unit tests. Das sollte man ändern.

E2E tests können vor allem für den Duden sehr einfach erweitert werden:

Eine einfache Methode wäre ein Test, der überprüft ob jede (öffentliche) Funktion im Duden mindestens einmal in den tests aufgerufen wurde, und wenn nicht failen. Das führt zwar am Anfang zu einem großen Aufwand, da viele neue Tests hinzugefügt werden müssten. Allerdings ist es ein sehr sinnvolles Ziel, jede Funktion, die der Nutzer benutzen könnte zu testen (es geht immerhin um die Standard Bibliothek einer Programmiersprache, da sollten Funktionen nicht unerwartet segfaulten bloß weil ein leerer String übergeben wurde...).

Unit tests sind nochmal ein größerer Aufwand, da diese bisher non-existent sind. Das muss ich ändern.

NotLe0n commented 7 months ago

Man muss aber bedenken, dass manche Funktionen im Duden nicht leicht getestet werden können. Zum Beispiel: Betriebssystem (nur vielleicht sowas: f() == Windows || f() == Linux, aber ob das was bringt?)

bafto commented 7 months ago

Dabei müssen wir einfach testen, wie oft solche Fälle vorkommen. Wenn solche untestbaren Funktionen nur 5%-10% ausmachen, kann man die Funktion ja einfach in einem dummy-test aufrufen, aber das Ergebnis ignorieren. Wenn das aber zu oft vorkommen würde, dann könnte so ein script einfach als Indikator wie viel getestet ist (so wie test-coverage) dienen.