How to Create Practice Quizzes & Tests With Wufoo

BLOG_Story1_paymentsThe number of things you can use Wufoo for far outnumbers the amount of stars in the Milky Way (it does not but it’s a lot!) and I’ll be showing you just one more cool thing you can do with Wufoo. This time we’re going to use Wufoo to create a practice test (or quiz if you’re so inclined) that students can use during studying to help prepare for their exams.

Let’s get started!

### 1. Create Your Test

The first thing we need to do is [create the form]( for our test. For our example, we’re going to be creating a test about the *American Revolution* (or if you’re like our very own [Kane Stanley](, you know it as the American Rebellion). Plus, I’m actually a U.S. History major (Go [UCLA](!) so this is me totally geeking out here.

Anyhow, the best way to begin creating your test is by laying out **all of the questions** for your test first. We’ll layer in the section breaks and rules once that’s all in place.

For your questions, I suggest using the [multiple choice field type]( for best results and keeping the number of question options to three. When you’re finished, you should have something that looks like this:


One last thing we need to do is for each question, we want to *unselect* the radio button so that no answer is selected by default. Other than being a downer if the correct answer is already selected, it also messes with our rules, so make sure you unselect any radio buttons for each of your questions.

### 2. Add Those Section Breaks

Since our students will be using this practice test to help them study, we should give them **feedback** as they give their answers so they can learn as they go. To do this, we’ll be using the amazing [section break]( to give instant feedback to the test taker as they answer each question.

Head back to the [Form Builder]( of your test and this time, we’re going to be *layering* in section breaks for each question. We’re going to place **two section breaks before each question**, one that displays if the answer is correct and one that displays if the answer is incorrect.

Take a look at our example.


As you can see, I’ve added two section breaks ahead of each question. I added some styling to display the correct section break as **green** and incorrect ones as **red**. I also added some context to reinforce why each section break was displaying (showing background information for the correct answer and info about which question was incorrect).

Now that we’ve created these two section breaks for each question in your test, it’s time to add some real magic and use our handy-dandy Rules feature. Why? Read on!

### 3. Field Rules Make Everything Better

Now that you’ve navigated to the [Rules Builder]( for your test, we’re going to create some [Field Rules]( to show and hide those section breaks on your test. It’s no fun if the answers are shown ahead of time.

For each question, we’ll be creating **two field rules**. The first rule we’ll create will let you show the correct answer section break if the answer to the question is correct. The second rule we’ll create will allow you to show the incorrect answer section break, if the answer to that question is wrong. You can see two such rules here:

The **first rule** is set to show the correct answer section break for Question #1 if the answer is correct. And the **second rule** is setup to show the incorrect answer section break if the answer to the question is **any** of the two other answers.

As you can imagine, the number of section breaks can get out of hand if you’re creating a fairly long form, which is why we setup the form so that the section breaks appear *before* each question. It not only helps the student who is taking the test to see if their answer is correct, but it also helps you as the form creator when we setup the test. How so? All of your fields will show up in order in the Rule Builder:

As you can see, the corresponding section breaks for Question #1 appear above it, the section breaks for Question #2 appear before Question #2, and so on. It just helps when you’re setting up complex rules to set it up your fields like this. Now, setup all of the section break rules for each of your questions and save your rules.


That’s it! Your test is now setup. Your students can take advantage of these practice quizzes by testing their knowledge and get instant feedback on how they’re doing, i.e. is there more study time on the horizon or no? The Field Rules you’ve added will easily display messages to the student as well so they can teach and empower themselves as they go. Want to see this form in action? No problem. You can [view this form here](

And this isn’t limited to just educators either. Creating these practice forms and quizzes can be incredibly useful for companies too. For example, those that have internal training programs, for testing employees on new processes, or any number of other use cases.

Got a good use case for using Wufoo as a testing platform? Let us know in the Comments below!


  • That’s pretty interesting and could work okay, but not really practical for a long test. A 20 question test would require 40 section breaks. Why not build in a new form type called test, with the correct and incorrec fields part of each question?

    Posted May 1st, 2014 by Adam Voyton.
  • @Adam: you’re right, this would get out of hand if you had a quiz/test that scaled out to more than say 20-25 questions. I think it’s a great solution for bite sized practice tests like this and you could even create a test per chapter in a text book so that it could be more manageable.

    As for your suggestion, that’s a pretty interesting idea! Thanks for sharing.

    Posted May 1st, 2014 by Johan Lieu.
  • A solution that works until a form type test is created would be to create a TEST TEMPLATE of a longer test. Then you would copy the master template and name it what you want.

    I have a project with a series of tutorial quizes that will be uploaded in July of this year to teach youngsters to read body language in animations, pictures and diagrams.

    Posted May 1st, 2014 by Jack Wall.
  • I am not an educator, but I may try to use this feature as an online marketing tool to create quizzes for lead generation and increasing company interest and exposure. What does wufoo think about using it for that purpose?

    Posted May 1st, 2014 by Amy.
  • @Amy that sounds like a really cool use of tests. Let us know how that goes!

    Posted May 1st, 2014 by Johan Lieu.
  • @Jack Wall: great suggestion! Creating the test once and then duplicating it and editing the new copied form is one way to cut down on the setup time.

    Posted May 1st, 2014 by Johan Lieu.
  • Is there a way to set a time limit on quizzes with wufoo? Thanks! 🙂

    Posted May 1st, 2014 by Peter.
  • Curious why you needed to place the section breaks before the questions? Would it still work if you placed the feedback sections after each question?

    Posted May 1st, 2014 by Chris Aitken.
  • Cool! Something we’ve been looking for for a while.
    With 2 observations/requests:

    how can I disable changing the answer given once it’s been ticked? (in your case all participants will get a 100% score by trial and order – sooner or later)
    how can I give the test evaluation at the end of the quiz – for all questions?


    Posted May 1st, 2014 by Gregor.
  • Please could you let me know if I can have 100 questions in a question bank and the form selects , let say 20 questions randomly .
    Does wufoo have this functionality ?

    Posted May 1st, 2014 by Shaun.
  • @Shaun: we don’t have this functionality at the moment, but that’s a good one. Thanks for sharing.

    Posted May 1st, 2014 by Johan Lieu.
  • Just built a 10 question Harassment Quiz for our employees. Our HR Personnel director needs to keep the results of the quiz for her files. I am having trouble with the report builder trying to capture this data the user data in a logical way. Need a score for correct and incorrect responses. There has to be an easier way….

    Posted May 1st, 2014 by Christa Kasson.

Add a Reply

You may use HTML for style.