Creative Responsive Test Banks

Hello Fellow Designers, 

I have a question about creating a test bank so that when a student misses a question, the question is available for retesting at a later time, but questions answered correctly are removed from the test bank. I would have ~30 questions delivered randomly in groups of about 8 questions. Upon completion the student would then access the next random group until such time as all ~30 questions were correctly answered. 

In an idea world the correctly answered questions would go to a second text bank and the process would repeat so that ultimately, students would have to answer all the questions correctly twice. 

I know this has to be a trigger but perhaps someone has already done this and can point my team in the right direction. 

Thank you in advance for any help, 


1 Reply
Greg Faust

Note that I'm writing this while referring to Storyline 2, though I don't think 1 is different with respect to the following.

What you're asking for is possible (at least, I think it is-- when I get a working demo, I'll post it). The last time I played around with this degree of quiz customization, though, I decided that I should seriously consider doing my quizzes in an LMS. Storyline presents certain obstacles to quiz customization:

  • We don't have access to the variable(s) tracking selected responses
  • We don't have access to the variable(s) tracking which questions were answered correctly
  • We can't customize slide navigation based on user response
  • The "Draw from bank" tool's selection criteria are fixed when you publish your story (i.e. you can tell it to include/randomize/exclude a question, but you can't program it to choose among those three based on the value of some variable).

The good news is that the above functions can be emulated.

The bad news is that it requires a lot of custom triggering.

First, you need to emulate quiz slide functionality by using custom triggers on a blank slide.

Second, you'll have to make these nonstandard "quiz" slides work with Storyline's quiz tools.

I'm writing the following to explain what needs to happen; obviously, it will be far faster if you (for example) completely write and debug ALL the triggers for ONE custom question slide, then duplicate that slide over and over to generate the remaining questions.

Also, if I have time, I'll post a demo and edit this guide (to address stuff I debug as I work on the demo). For now, I just want something posted to point you in (what I believe to be) the right direction.

Step One:

Create a question bank, but don't use question slides. Instead, manually build a question template by starting with a blank slide. For example, a four-option multiple choice question will need:

  • Four radio buttons (use the "Button set" feature so they interact correctly)
  • Other visuals appropriate to the question
  • A set of triggers on the "Submit" button
    • Show a warning if no answer was selected (AND add a condition to all the other triggers so they DON'T happen if no answer was selected)
    • Increment the number variable "Q1" (whose default value is 0) if the correct answer was selected
    • (If feedback is required, display appropriate feedback)
    • Set the four radio buttons to "Disabled".
    • Set "Submit" button to "Disabled".
    • (If feedback is not required, advance to the next slide)

So the variable "Q1" tells you how many times the student has answered Question 1 correctly. Question 2 needs to use the variable "Q2", and so on.

Step Two:

You'll need to randomize the order of your questions. In the Draw From Bank tool, you CAN have non-question slides. And that's just what you'll do: You'll draw ALL THIRTY questions, in some random order.

Step Three:

You want certain questions to be skipped-- specifically, the ones the student already got right twice. On the base layer of your question, add the trigger: Jump to Slide; Next Slide; When Timeline Starts. Add the Condition: IF variable Q1 is greater than or equal to 2 (just replace Q1 with the appropriate variable for the question, and replace 2 with however many times you want the question repeated).

Step Four:

Now, you want the quiz to end after the student has attempted eight questions. Let's keep track of how many questions have been attempted. Add two more triggers to the "Submit" button on each custom question slide: 

  • Decrement the variable "Wrong" by 1 if the correct answer was selected
  • Decrement the variable "QuestionsRemaining" by 1
  • "Wrong" and "QuestionsRemaining" are both numbers with default values of 8-- and these variables will have to be reset to 8 when the learner resets the quiz.

We will need a trigger saying to skip ahead if "QuestionsRemaining" hits 0, but first we need a destination to skip to.

Step Five:

I actually need to do some testing on the "Draw from Question Bank" tool to be sure how this part works. It's either:

1) Use the built-in "retry quiz" function on a results slide to make the "Draw from Question Bank" reset,

Or, if that fails to re-randomize the quiz,

2) Have duplicate after duplicate of the "Draw from Question Bank" and "results" slides (and maybe some triggers to loop back and reset all quizzes on the last one, in case the user manages to need way more quizzes than expected).

Either way, you'll want some kind of results slide and/or additional slides between each quiz. Add those after the "Draw from Question Bank" slide. Play around with the results slide so it shows what you want to show.

Step Six:

Does your results slide need to give actual results? If not, add a trigger to your Submit button. Jump to Slide: <your results slide> when user clicks Submit Button. Condition: "QuestionsRemaining" is less than or equal to 0. Make sure this trigger is BEFORE the "Jump to next slide" trigger.

If you DO need results, you'll have to trick Storyline into thinking that the learner answered eight questions, some right, some wrong. To do that, we'll use dummy quiz slides.

  • At the end of your question bank, create a Storyline True/False quiz slide (and you'll duplicate it 7 times).
  • Delete the "Feedback" spaces (so no popups will happen when the interaction is submitted).
  • Set the correct answer to "True" 
  • Add three triggers to the base layer:
    • Change State of <Radio Button "False> to "Selected" when timeline begins
    • Change State of <Radio Button "True"> to "Selected" when timeline begins. Condition: If Wrong is less than or equal to 7 (6, 5, 4, etc. for the duplicated versions of this slide)  -> This way, Storyline will answer right a number of times equal to the number of correct answers the learner got.
    • Submit Interaction: True/False when timeline begins. This will advance to the next slide automatically, because you deleted the "Feedback" spaces.

Duplicate this slide 7 times, changing the "right/wrong" condition number as appropriate.

Step Seven:

These dummy quiz slides must ALWAYS be at the END of the quiz. In the Draw from Bank dialog, anchor the dummy quiz slides to each other, and anchor the last one to the end.

Step Eight:

Unless you already did so in step six, we still need the "Jump to <somewhere>. Condition: Questions Remaining <= 0" trigger. Add such a trigger to the Submit button on each custom question slide.

Step Nine:

Anchor another blank slide just before the first dummy quiz question slide in the "Draw From Bank...". Have it say something like, "... and X additional points for you because you've already mastered the remaining questions in the bank". Make it a simple "click next to continue" slide, no fancy triggers.

I think that should do it. As I said, though, I haven't finished testing the demo I'm working on. Let me know how it goes.