2.2.1 Generating a Test

To generate a test automatically, the user selects File->new->'Generate Test' from the main UI. (refer to section 2.1)

The user must specify the class and difficulty using the drop-down menus that the TestTool automatically populates.  The class menu is populated by selected all unique 'Class' attributes from questions in the repository. 

The user must also specify the test title, filename, difficulty, number of questions, and time in order to configure automatic generation.  By default, there are 10 questions on a test, a test is an hour long, and a test has medium difficulty.  These values initially appear in the 'Automatic Generation' window.  

The user has the option to specify tags used to guide the generation algorithm.  Tags only guide the TestTool's generation algorithm, so they are not required.

To generate a test, the user selects the 'Generate' button.  The TestTool responds by creating the 'Automatic Generation' window depicted in Figure 1.



Figure 1: Automatic Generation Window


Automatically generating a test provides the user with the same functionality as manually creating and editing a test, except the new test window initially contains questions, and each of these questions has an assigned 'Point Value'.  Automatic Generation is not mutually exclusive with manual test editing.  The user edits an automatically generated test the same way that the user edits a manually created test.

 

Figure 2:  Auto-generated Current Test Window

Point values are assigned using a simple algorithm based on question difficulty, time, and type.  A description of this algorithm and a table representing the point mapping are depicted in Figure 3.

 

    Point Value = Value(Difficulty) + Value(Type) + Time

Type Value
true/false 1
fill in the blank 1
multiple choice 2
matching 2
short response 3
long response 4
coding 5

 

Difficulty Value
Easy 1
Medium 2
Hard 3

Figure 3: Algorithm Description and Value Mapping



Generation Rules:

The user must complete all fields.  If a field is left blank other than 'Tags', the user is asked to input the specified criteria before proceeding.

Figure 4: Blank Question Field

 


The user must not use duplicate filenames.  If the user attempts to use a duplicate filename, the user is prompted with this information and asked to change the filename.

Figure 5: Duplicate Filename


If there are not enough questions to generate a test for the desired amount of time, then the user is prompted with this information and given the choice to proceed, cancel, or add more questions.

 

Figure 6: Invalid # of Questions


For automatic test generation,  questions within the provided constraints are selected randomly until the desired time is matched +/- a variance value.  Automatic generation cannot be fully random, because the TestTool attempts to match average question difficulty to the user-specified test difficulty +/- a variance value.

If the user specifies a test difficulty that cannot be generated, (question difficulties cannot be averaged to match test difficulty) then warns the user that test difficulty may vary. The user selects 'Generate' again to continue.

 

Figure 7: Invalid Difficulty


If the user specifies an invalid test time (e.g. a test time less than the shortest question in the repository for this class), then the user is prompted with an error and be asked to increase the test duration or add more questions.

               

.

Figure 8: Invalid Time


If the generation is undesirable, then the user can simply edit the current test.  See section 2.2.2 for more details.



Prev: [none] | Next:  Creating a Blank Test | Up: Functional Requirements | Top: index