Skip to content

Working with the questionnaire document

Upload the Word, Excel or PDF questionnaire: SurveyTester reads it into a model, derives testcases and bots, verifies the programmed survey and compares its texts.

Published 5 min read .md

Every survey starts as a document: the questionnaire the researcher wrote, with questions, answer lists, routing, termination rules and quotas. Programming turns that document into a survey, and testing means checking that the survey does what the document says. SurveyTester reads the questionnaire itself, so the document becomes the reference for testcases, for verification and for text comparison - with no retyping.

What the questionnaire tab does

The Questionnaire tab of a project takes the document as Word (.docx), Excel (.xlsx) or PDF. SurveyTester reads it with AI into a structured model: questions with codes and texts, answer options and grid rows, named lists, routing ("ask if"), termination rules, quotas and constructs. The layout does not matter: a classic questionnaire with codes at the line start, an agency template with scaffold lines, a tracker with bracket notes or a spreadsheet are all read. Hidden variables and information pages are recognised as well.

Every question of the model is shown with the original document fragment, the recognised structure and, once test runs exist, the screenshot of the survey page side by side. The whole document is viewable in the browser.

Placeholder: screenshot of the Questionnaire tab with the uploaded document, its status Analysed and the tabs Overview, Questions, Findings, Testcases, Document
The Questionnaire tab after the analysis

Why this is hard without SurveyTester

  • Two sources of truth. The document is what the client signed off; the survey is what respondents see. Checking one against the other by hand means reading every question twice.
  • Routing hides in notes. "Ask if Q3 = 1 or 2", "terminate if under 18", "show the brands selected at Q5" - rules scattered over programming notes, hard to test exhaustively by clicking.
  • Testcases take time. Writing one testcase per routing branch and one per screenout rule is the work nobody has time for before launch.

How it works

1. Upload and analysis

Drop the document on the Questionnaire tab or attach it in the new-project dialog. The analysis starts right away (switch Analyse right after the upload off to start it later). The status moves from Uploaded to Analysing to Analysed; the progress line shows the current AI call. Every reading is confirmed by several independent passes, a repair pass picks up lines the extraction missed, and option labels are verified against the document text. The reasoning effort configured for the AI engine applies to the analysis.

The Overview tab lists title, language, legend, sections, lists, quotas and constructs with warnings; the Questions tab every question with code, type, text, options, rows, "ask if", termination and scripter notes.

Placeholder: screenshot of one question in the Questions tab - document fragment on the left, recognised structure in the middle, survey page screenshot on the right
A question: document, model and survey side by side

2. Testcases and bots from the document

Generate testcases derives personas from the model: one Complete persona per quota cell and routing branch, and one Screenout persona per termination rule. Generate & run bots starts SurveyBots with them at once - this works before the survey has ever been tested, because the bots answer live per page from the persona description. The testcases are listed in the Testcases tab and in the project's testcase list.

3. Match & verify

Once test runs exist, Match & verify maps the document questions to the detected survey questions (grids programmed as a loop of questions included) and checks the survey against the document:

CheckedExamples
Structuremissing or extra options, exclusive flags, selection limits, question type
Wordingquestion and option texts that differ from the document
Per test runrouting ("ask if"), termination rules, piping
Programming rulesrandomisation, piped lists, subsets per respondent - handed to the question expectations

Discrepancies appear in the Findings tab with a severity. A finding can be declined (it stays declined when the next verification reproduces it) or turned into an issue; a summary tells you what to do next. The verification runs again automatically after every bot job.

Placeholder: screenshot of the Findings tab with structure, wording and routing findings, severity badges and the buttons Decline and Create issue
Findings of the verification

4. Text comparison

Compare texts opens the translation view with the document as a column: every question, option and grid row text of the survey is compared word by word with the document, and differences can be reported as issues. The former External Files upload of the translation view has moved here; files uploaded there earlier keep working until their document is analysed. Uploaded documents are also listed in Docs & Info for download.

Step by step

  1. Create the project with the survey link and upload the questionnaire in the Questionnaire tab (or attach it in the new-project dialog).
  2. Wait for the status Analysed and skim the Overview for warnings - a list the analysis could not read, a condition that references an unknown code.
  3. Generate & run bots: the personas cover every routing branch and every screenout.
  4. When the bots are through, Match & verify and work the Findings: decline what is intended, turn the rest into issues for the programmer.
  5. After the fix, run the bots again; the verification repeats itself and withdrawn findings disappear.
  6. Use Compare texts for the final wording check against the document.

Notes

  • The analysis uses the company's AI engine; an administrator can switch it off for questionnaires, see AI Administration. Usage is metered per project.
  • A document can be re-analysed after an edit (Re-analyse); mappings and declined findings are kept where the question codes still match.
  • Legacy .doc files are converted; scanned PDFs without a text layer cannot be read.

Key takeaway

The questionnaire document is the reference for the whole test: SurveyTester reads it once, derives the testcases, verifies the programmed survey against it after every bot run, and compares the texts - so the survey that goes live is the one the document describes.