2.2 Test Generation

This section offers two scenarios wherein an instructor is using the test generation wizard to automatically generate tests. In the first, the instructor uses the simple filtering mode; in the second, the instructor uses the detailed filtering mode.

In both cases, the wizard automatically populates a new test. The questions are randomly chosen from the database, within the parameters set by the user.

2.2.1 Test Generation with Simple or no Filtering

When the use selects File -> New... to generate a new test, he or she is rewarded with the dialog box shown in Figure 2.2.1.


Figure 2.2.1: Test generation dialog.

The Time field specifies how long the test will last in hours and minutes. The wizard will generate a test that will take approximately this amount of time to finish.

The Class field contains the class for which this test is being generated. The drop-down will provide a list of classes for which questions are available, or the user may simply type in a class name.

The Questions field designates the number of questions that the test will contain.

Once these fields are filled in, the wizard has enough information to generate a test. If the user were to click OK now, the wizard would build a test from the set of all questions for the given class. This is often not acceptable (the most obvious example being the inclusion of final questions on a midterm); in such a case, the user may click Show filtering >> to expose the question filtering functionality. The resulting view is shown in Figure 2.2.2.


Figure 2.2.2: Test generation dialog with basic filtering shown.

Each field in the basic filtering screen represents a filter which may be applied to eliminate potential questions from inclusion on the test. Leaving a field at its default value (either Any or leaving a text field blank) causes questions not to be filtered against that field.

Week allows questions to be filtered against the selected week of the quarter. The test may permit only questions on material from a certain week, only questions before the given week, or only questions that come after the given week.

Keywords allows only questions tagged in the database with the given keyword(s) to be included in the test.

Difficulty allows only questions with the selected difficulty to be included.

Last used allows test questions to be filtered by the date that they were last included in a test. As with the week field, a test may be configured to only include questions that have not been used since a certain date, only questions that have been used since a given date, or only questions that were last used on a certain date.

The result of setting up a test using basic filtering is shown in Figure 2.2.3.


Figure 2.2.3: The test generation dialog with basic filtering all filled out.

The test created with this data will be one hour and thirty minutes long, and consist of ten questions for CSC 101. The questions will cover material that comes before week ten, so stuff from the last two weeks of class will be mysteriously left out. Questions that have been included on a test generated after Jan. 1, 2005 will not be included on the test. Questions of any difficulty may be included, but only questions tagged with the keyword Variables or the keyword Loops may be used.

If we assume that there are sufficient questions in the database that meet the above criteria, one possible result for the generated test is shown in Figure 2.2.4.


Figure 2.2.4: A generated test.

2.2.2 Test Generation with Detailed Filtering

Selecting the Detailed filtering tab reveals that which is shown in Figure 2.2.5.


Figure 2.2.5: Test generation with detailed filtering.

Detailed filtering allows the user to create blocks of questions and apply different filters independently to different blocks. Each block is represented by a row in the table; the plus and minus buttons may be used to add and subtract groups.

The Quantity field represents the number of questions in a block.

Each subsequent column represents a field against which questions in a block may be filtered. Leaving a field blank is equivalent to using a wildcard value; questions will not be filtered against that field. The generator will attempt to make an exact match on non-empty fields. Alternatively, numerical fields may be prepended by a less-than or greater-than symbol; in this case, the generator will attempt to find values less than or greater than the value, as appropriate. In the case of dates, < is interpreted as meaning before the given date, and > is interpreted as meaning after the given date.

Week is the week number.

Type is Multiple Choice, True or False, Short Answer, Long Answer, or Code.

Length is the estimated time required to complete the question, in the form [hours]:[minutes].

Last Used is the date that the question was last used in a test.

Difficulty is Easy, Medium, Hard, or whatever else the person doing test management comes up with.

An example of the detailed mode all filled out is shown in Figure 2.2.6.


Figure 2.2.6: The test generation dialog with detailed filtering configured and ready to go.

The filters are configured to generate:

Assuming that sufficient questions are are in the database that meet the given criteria, one possible outcome is shown in Figure 2.2.7.


Figure 2.2.7: A generated test

2.2.3 Test Generation Algorithm

The wizard generates a test from the database of questions based on the class selected, the allotted time given, and the allotted questions given.

If question lengths are not specified (as is the case when simple filtering is used), the test generator attempts to split the allotted time equally among questions; an hour-long test with six questions will be filled with ten-minute questions. If times are specified for some questions but not others, the questions with specified times are selected first, and the remaining time is split equally among the questions remaining.

The test wizard looks at the pool of all questions that meet the specified criteria. Questions are randomly selected from this pool, added to the test, and removed from the pool before the next question is selected. Thus, if not explicitly specified, the proportions of test types and difficulty levels in the test will be roughly equivalent to the proportions present in the database, within the range produced by the random behavior.

If more questions are requested than there are questions that meet the specified criteria, empty slots are placed in the generated test and highlighted. This is specified in greater detail in section 2.4.