Skip to main content
The Features of a Good Item

How to write a good test item

Martine Holland avatar
Written by Martine Holland
Updated over a week ago

Now we know some of the core terminology and we have seen the types of item we can work with. But what makes a good item?

The full list of guidelines can be read here, but with a list of 30 points to remember it may not be hard to remember them all as you are getting started. Although they are all important there are three questions that it is worth asking yourself as you write:

  • Does it test the learning objective?

  • Is it appropriate for an international audience?

  • Can it can be answered without seeing any options?

Before you submit your items for review, we would recommend that you review them carefully against the full set of guidelines. However, these three key questions will get you a long way. Below are examples of each item type that we currently consider to be good examples for you to follow.

Multiple Choice

Learning objective: Understands the types of data that would follow a Binomial or Poisson distribution.

Fill-in-the-blank

This item also demonstrates effective distractors, that are sourced from common mistakes made by learners. Common mistakes and misconceptions are a great source of distractors and are more highly discriminating than other distractors. (Discrimination is a term used to describe how well an item distinguishes between higher and lower ability test takers)

Typing

When we think about what makes a good typing item it is important that you are aware of how our solution checker works. We are not checking against the solution code that you provide. We are comparing the output of the test takers code to the output of our code. This means that we have to think carefully about what our code returns and whether there are other equally valid solutions, or ways to get to that output without using a correct approach.

Take note R users - we typically stick to tidyverse but if a base R function is a valid solution and returns the same output it is not incorrect, do your blanks allow it?

Did this answer your question?