Forum: PC-Programmierung Modul-Regressionstests


von Egon D. (Gast)


Lesenswert?

Hallo allerseits,

seit langem bastele ich von Zeit zu Zeit an einer
kleinen Tcl-Software, die die Software-Installation
in Linux-Systemen unterstützt. Kernpunkt der Geschichte
ist ein Scriptgenerator. Man wählt vor der Installation
die zu installierende Software aus und erzeugt die
notwendigen Scripte; das kann man solange wiederholen,
bis man zufrieden ist. Während der Installation selbst
muss man nix auswählen, sondern nur die Scripte starten
und zufrieden zuschauen, wie alles installiert wird.

Nach der inzwischen dritten Überarbeitung funktioniert
das schon ganz gut -- aber allmählich gewinnt ein
unerwartetes Problem an Bedeutung: Bisher sind bei den
Testinstallationen immer noch zahlreiche Fehler
aufgetreten, so dass eine einzelne Testinstallation
(die ja relativ zeitaufwändig ist) ziemlich viel Futter
für die Fehlersuche geliefert hat. Im Vordergrund stand
daher, in den bereits implementierten Features die
Fehler zu beseitigen.
Das ist weitgehend gelungen -- aber die Software ist
noch lange nicht fertig; es fehlen noch Features.
Jetzt möchte ich natürlich sicherstellen, dass im
Rahmen der notwendigen Erweiterungen nicht wieder
Funktionen kaputtgehen, die schonmal korrekt gearbeitet
haben. Dazu kann ich nicht jedesmal eine komplette
Testinstallation machen -- da werde ich ja adlig dabei.
Wünschenswert wären automatisierte Modultests, die
ich nach Änderungen laufen lassen kann und die
protokollieren, dass der jeweilige Modul in den
getesteten Belangen noch genau dieselben Ergebnisse
liefert wie vor der Erweiterung.

Aber hier stecke ich fest; mir fehlt eine weiterführene
Idee.

Die Software ist nicht sonderlich umfangreich (ca.
2000 Zeilen brutto / 1000 Zeilen netto); eine gewisse
Modularisierung ist auch gegeben (fünf Quelltexte mit
jeweils getrennten Namespaces für Interface und
Implementierung). Methodennamen und Datenstrukturen
sind auch beschrieben, aber eher informell und nicht
beinhart formalisiert.

Mein Problem liegt weniger in den Werkzeugen als
vielmehr im Herangehen, in der Methodik: Eine bestimmte
Funktion im Interface eines Modules wird ja von
unterschiedlichen Stellen aus aufgerufen, und von den
rückgegebenen Daten werden unterschiedliche Teile
weiterverarbeitet. Gibt es eine etablierte Vorgehens-
weise, die von dort zu einer Beschreibung der Schnitt-
stelle führt, auf die man automatisierte Tests aufbauen
kann? Vielleicht ist es ganz einfach, aber ich habe
irgendwie ein Brett vor dem Kopf.

Vielen Dank schonmal für's Lesen. Fragen zu weiteren
Details werden bei Bedarf gerne beantwortet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.