SASUnit - Unit-Testing Framework für SAS-Programme unter Windows
Testen von Software ist notwendig und zeitraubend. Der Unittest-Ansatz, der insbesondere im Java-Umfeld mit JUNIT bekannt geworden ist, setzt darauf, dass das Testen Teil des Entwicklungsprozesses ist und dass Tests soweit wie möglich automatisiert ablaufen. Dies hat den Vorteil, dass die Tests jederzeit schnell wieder ausgeführt und somit negative Seiteneffekte von Änderungen schnell identifiziert werden können.
SASUnit ist ein von HMS Analytical Software entwickeltes frei verfügbares SAS-Makropaket. Es steuert die Ausführung von Testszenarien und erstellt automatisch übersichtliche Testberichte im HTML-Format.
Um ein Makro mit SASUnit zu testen, benötigt man unveränderliche Testdaten und muss mindestens ein Testszenario erstellen, das meist aus mehreren Testfällen besteht. Jeder Testfall ruft das zu testende Programm, oft ein Makro, mit bestimmten Daten und Parameterwerten auf und prüft anschließend, ob die gewünschten Ergebnisse zurückgeliefert wurden. Es können dabei beispielsweise Werte von Makrovariablen, Inhalte von SAS-Datasets und das Vorhandensein oder die Abwesenheit bestimmter Meldungen im SAS-Log geprüft werden.
SASUnit steuert die Ausführung der Testszenarien und erstellt aus den Prüfergebnissen Testberichte im HTML-Format, in die die Testdaten, die Testszenarien und erweiterte Prüfergebnisse (z.B. Output von PROC COMPARE) integriert sind. Für nicht-automatisch testbare Eigenschaften (z.B. korrektes Layout von Grafiken und Berichten) können Checklisten für die manuelle Prüfung in die Testberichte integriert werden.
Screenshots vom Testprotokoll:
Näheres zur Anwendung von SASUnit finden Sie in dem anhängenden Artikel sasunit.pdf. Die anhängende Datei readme.html enthält weitere technische Hinweise. SASUnit und Anwendungsbeispiele können Sie mit anhängender Zip-Datei herunterladen.
Beachten Sie die Lizenzbedingungen:
Copyright 2008 durch HMS Analytical Software GmbH, Heidelberg, Deutschland (http://www.analytical-software.de). Hiermit gewähren wir das Recht, diese Software und ihre Dokumentation unter der GNU General Public License zu verwenden, zu kopieren, zu verändern und zu verteilen. Wir machen keinerlei Zusicherungen über die Funktionsfähigkeit dieser Software für irgendeinen Zweck. Näheres siehe http://www.gnu.de/gpl-ger.html
SASUnit enthält Teile von Doxygen, siehe http://www.doxygen.org
- Anmelden oder Registrieren um Kommentare zu schreiben

Erfahrungsberichte
Ab und zuhöre ich mehr oder weniger zufällig, dass der eine oder andere SASUnit benutzt. Über Erfahrungsberichte würde ich mich sehr freuen. Auch ein "Hallo, ich nutze es" wäre besser als nichts.
SASUnit
Hallo, ich nutze es ...
Habe es ein wenig abgeändert, damit es unter AIX läuft und erste Test-Cases durchgeführt.
Ich denke, man bekommt ja schon einiges geschenkt, wie z.B. das Scannen des LOGS n ERROR u WARNING (aber Vorsicht, wenn jemand spaßeshalber
%put WIR HABEN JA GAR KEINEN ERROR;
in den Test-Case schreibt, gilt das auch als Fehler.
Zur Auswertung der Testergebnisse unter AIX ist der html-Report nicht so günstig, das mache ich mit (z.Zt. noch etwas primitiven) Ausgaben in LOG bzw. OUTPUT.
viele Grüße
C. Janson
Version 0.904
Unterstützung für unterschiedliche Sprachen (National Language Support, NLS) wurde hinzugefügt, siehe englischsprachige Version dieser Seite.
assertReport kann nun für den Vergleich zweier Reports die Reports direkt in HTML-Frames übereinander darstellen.
Schließlich gab es noch einige Fehlerbereinigungen.
Download Komplettversion
Download Delta 0.902 zu 0.904
Version 0.902
%assertColumns wurde komplett überarbeitet. Es gibt jetzt einen Parameter i_allow, der steuert, wie streng die Prüfung durchgeführt werden soll. Siehe hierzu die Dokumentation für %assertColumns, das auf PROC REPORT beruht, oder direkt in der SAS-Online-Dokumentation zu den Return Codes von PROC REPORT.
Im Unterverzeichnis examples findet sich jetzt ein Beispiel für den Vergleich von Ergebnissen, die mit Microsoft Excel und SAS gerechnet wurden.
Download Komplettversion
Download Delta 0.901 zu 0.902
Version 0.901
%assertEquals wurde verbessert, es kann jetzt beim Vergleich von erwartetem und tatsächlichem Wert besser mit unterschiedlichen Datentypen umgehen. Dazu wurden einige kleinere Verbesserungen an der Dokumentation vorgenommen.
Download Komplettversion
Download Delta 0.9 zu 0.901
Anleitung für das Schreiben neuer Asserts
Hier eine Kurzanleitung für die Erweiterung von sasunit um neue Zusicherungen, also neue %assert...-Makros.
Die Aufgabe besteht aus folgenden Schritten:
Danach sind folgende Makrovariablen verfügbar:
Diese Makrovariablen werden ggfs. im nächsten Schritt gebraucht, um Dateien zu benennen, die in die Testdatenbank geschrieben werden sollen, damit diese später bei der Berichtserstellung identifiziert werden können.
Bitte schicken Sie mir geänderte Versionen von sasunit zu, damit ich die Aufnahme in ein Update prüfen kann.