Den ersten Anlaufpunkt bietet der Skriptcheck in der grafischen Oberfläche im Bereich »Surveys« unter [Configure] (Q. Desktop oder Q. Server). Die Prüfung liefert keine zeilengenauen Hinweise auf die Fehler, weist aber durch den Kontext auf die Frage, in deren Zusammenhang ein Fehler auftritt. Der Skript-Check berücksichtigt verschiedene Fehlerquellen. und weist auf Syntaxfehler wie unzulässige Zeichen in Variablennamen oder ein falsch definiertes Opennumformat hin, berücksichtigt aber auch den Ablauf und warnt etwa bei Fragen, die nicht im Interview-Ablauf enthalten sind,
Das geschriebene Skript unterscheidet sich vom ausgeführten Skript, weil Q. die einzelnen Dateien, aus denen das Skript womöglich besteht, erst einmal zusammenführt und sämtliche Platzhalter und Makros durch die eigentlichen Werte ersetzt. Daher kann es insbesondere bei Makros helfen, auch das expandierte Skript im Auge zu behalten, wie es sich über [Expanded script] herunter laden lässt (ebenfalls unter [Configure] zu finden),
Unter Umständen kommt ein Fehler auch erst später zum Tragen und tritt nicht an der Quelle auf. Hier kann es helfen, Teile des Skripts nach und nach auszukommentieren, um die Fehlerquelle zu isolieren.
Ein anderes Vorgehen besteht darin, die Werte zu
untersuchen, die Variablen annehmen. Das lässt sich am
einfachsten über den
@insert
-Mechanismus erreichen.
textq debug; text=" 1: @insert(nq.1) <br /> 2: @insert(nq.2) <br /> 3: @insert(nq.3) <br /> numq: @insert(nq) ";
Das Beispiel gibt die verschiedenen Werte einer NumQ aus, jeweils einzeln an den bezeichneten Stellen des Arrays und zum Schluss den Array insgesamt. @insert() funktioniert ausschließlich in echten Textbereichen wie text="", title="", etc... Variablen können in einem Skript aber auch an anderen Stellen auftauchen. Deshalb lässt sich die gleiche Auskunft auch mit dem Print-Befehl in einem ActionBlock erreichen, der an die Frage gehängt wird.
continueActionBlock={ print(nq.1); print(nq.2); print(nq.3); print(nq); };
Durch den Print-Befehl werden die Werte in eine Datei
namens actionlog.txt
im
text
-Verzeichnis geschrieben:
PrintAction: variable: nq.1; value: 4.0 PrintAction: variable: nq.2; value: 5.0 PrintAction: variable: nq.3; value: 6.0 PrintAction: variable: nq; value: 4.0 5.0 6.0
Da @insert
in Actionblöcken nicht
zur Verfügung steht, können Variablen dort nur mit
print
überprüft werden. Das ist
unabdingbar, um auch selbstdefinierte und berechnete
Variablen, die nur in Actionblöcken auftreten, im Blick
behalten zu können.
Fehler, die bei der Darstellung des Fragebogens im Browser auftreten, werden mit großer Wahrscheinlichkeit nicht durch das Skript selbst verursacht, sondern durch mitgegebene CSS- oder Javascript-Anweisungen, die nicht nur in den Skript-Dateien sondern auch im Template stecken können. Die meisten Browser stellen heute eine Möglichkeit bereit, die von Q. generierte HTML-Seite in allen Einzelheiten zu untersuchen (->Rechtsklick auf ein Element in der Seite ->Element untersuchen). Für Firefox etwa existiert mit Firebug ein altgedientes Plugin, das verschiedene Sichtweisen auf eine HTML-Seite ermöglicht, vom HTML-Code über Einzelheiten der CSS-Datei bis hin zur Darstellung der Struktur oder dem Blick auf den Javascript-Code.