AssessmentTest:TestPart

Consider a traditional paper-based summative test, which, for example, is divided into three top-level sections. The test rubric may direct the student to attempt any two of these three sections. Futhermore, within each of these sections, there may be yet more choice for the candidate (e.g. answer one question from part A and another question from either part B or part C).

The assessmentTest element caters for this popular type of test design. First it supports top level sections called testParts. In turn, a testPart contains one or more internal subsections called assessmentSections. These two major elements allow the test author to disaggregate what would otherwise be a linear set of items.

First we will see how to create these internal groupings within a test; thereafter we will see the functionality associated with these groupings.

Figure 3 shows how an assessmentTest may be broken down into one or more groupings of items



In other words Note that a QTI test must contain at least one testPart, which in turn must contain at least one assessmentSection.
 * An assessmentTest contains one or more testParts
 * A testPart contains one or more assessmentSections
 * An assessmentSection may
 * reference one or more assessmentItems – via the assessmentItemRef element
 * and/or contain one or more nested assessmentSections

Figure 4 shows one possible configuration of a test which contains eleven items.



In this example, the assessmentTest element contains two top-level testParts


 * the first testPart contains two internal assessmentSections
 * the first assessmentSection
 * references two QTI items - item1 and item2 - each via the assessmentItemRef element. Note that a QTI test does not physically contain full items. Instead it “points to” items by specifying their external filenames
 * contains a child assessmentSection, which references two items – item3 and item4. This is an example of a nested assessmentSection
 * the second assessmentSection
 * references three items – item5, item6 and item7
 * the second testPart is made up of two internal assessmentSections
 * the first assessmentSection
 * references two items – item8 and item9
 * the second assessmentSection
 * references two items – item10 and item11

Functionality associated with Item Groups
We have seen how to group items internally within an assessmentTest. How are these groups managed “behind the scenes” whilst a candidate sits a test?

The answer is via attributes and elements which are defined in the following components
 * testPart
 * sectionPart
 * assessmentSection
 * assessmentItemRef

Figure 5 shows the attributes and elements which control behaviour at the various levels. Note the lowest level, assessmentItemRef, is included because an item can have additional behaviour assigned when it is embedded inside a test.



testPart - Attributes and Elements

 * The mandatory identifier attribute value uniquely distinguishes an individual testPart from all the other testParts within one assessmentTest.
 * The mandatory navigationMode attribute determines the sequence in which the candidate must answer items in the testPart. This attribute can take one of two possible values
 * linear – the candidate must answer each item one after the other, and may not navigate back to a previously answered item
 * nonlinear – the candidate may answer the items in any sequence


 * The mandatory submissionMode attribute determines when the candidate is permitted to submit item responses. This attribute can take one of two possible values
 * individual – the candidate submits the response for one item before answering any another item in the testPart
 * simultaneous – responses for all the items in this testPart are submitted for response processing in one batch at the end of the testPart


 * A precondition is an optional element which is evaluated just before a candidate enters a testPart. If a precondition expression evaluates to false, then the associated testPart will not be presented to the candidate. More than one precondition can be associated with a testPart.  Note that the precondition element is also defined in sectionPart, and therefore applies to both sections and items,
 * A branchRule is an optional element which determines “where next?” after a testPart has been completed by the candidate. If a branchRule evaluates to true, either (i) the candidate will be directed to another nominated testPart or (ii) the entire test will be terminated immediately.  More than one branchRule can be associated with a testPart.
 * The optional itemSessionControl element specifies the following attributes which affect each item session in the testPart. (An item session is the period of time during which a candidate performs one or more interactions with a single item).  The attribute values declared at this level apply to every item inside the testPart.  Note, however, these values can be overridden “lower down” at either the section or the item level
 * maxAttempts
 * showFeedback
 * allowReview
 * showSolution
 * allowComment
 * allowSkipping
 * validateResponses


 * The optional timeLimits element specifies a minimum and/or a maximum time period for the candidate to answer all the items in the testPart. These values are specified as an number of seconds. There can be at most one timitLimits element declared in a testPart.  This element can be declared elsewhere too – see general discussion in the timeLimits section in this chapter.


 * The testFeedback element specifies test (not item) level feedback, which can either be displayed during or at the end of a testPart. More than one testFeedback element can be associated with a testPart. This element can be declared elsewhere too – see general discussion in the testFeedback section in this chapter.

It is important to note that the above features apply to just one testPart. Therefore, within one assessmentTest, a particular testPart’s submissionMode may be set to individual, whereas another testPart’s submissionMode may be set to simultaneous.

sectionPart - Attributes and Elements
This element contains attributes and elements which are common to both assessmentSection and assessmentItemRef (the diagram indicates this “inheritance” via two arrows ). The specification says sectionPart stores “a number of common parameters are shared by both types of child element”.
 * The mandatory identifier attribute value uniquely distinguishes the section or the item reference within the overall test.
 * The optional required attribute, if set to true, means this child element must appear in the final selection.
 * The optional fixed attribute relates to item shuffling within a section. If set to true, this element must remain in its original position when the final shuffled sequence is determined.
 * The optional preCondition element determines if this item or section will be skipped
 * The optional branchRule element contains rule(s) which identify, under certain circumstances, an alternative item or section to enter
 * The optional itemSessionControl element contains parameters to control the allowable states for each item session (note these values may be overridden “later” in an item or a section)
 * The optional timeLimits element determines the period of time during which the candidate may answer this item or this section

assessmentSection - Attributes and Elements

 * The mandatory title attribute stores a string title - which may or may not be displayed to the candidate
 * The mandatory visible attribute stores a Boolean value. If set to true, the candidate is aware that this is a distinct section within the overall testPart. If set to false, the candidate will not be aware of this section’s existence per se, and all items inside it will appear to belong to an outer section
 * The optional keepTogether attribute applies to invisible sections only (i.e. those with visible attribute set to false). If keepTogether is set to false, the items in this section may be mixed with items from a parent section. If keepTogether is set to true, the items in this section must remain en bloc
 * The optional selection element determines how many child elements may be chosen by a delivery engine from an assessmentSection. The section’s attribute select identifies this number
 * The optional ordering element determines the sequence in which the chosen child elements will be presented to the candidate. If the Boolean attribute shuffle is set to true, the delivery engine will randomize the sequence in which the items are presented
 * The optional rubricBlock element determines the introductory text displayed for this assessmentSection. The audience of this text is determined by the attribute view, which can take one or more values from a predefined set (e.g. candidate, author, tutor, proctor)

assessmentItemRef - Attributes and Elements

 * The mandatory href attribute logically includes an item in the test. The attribute value should be the URI (Uniform Resource Identifier) of the external file containing the item.
 * The optional category attribute associates a user-defined category (e.g. "biology") with an item. These categories can be detected and filtered within outcome processing. For example, the final test mark could ignore biology question responses.
 * The optional variableMapping element logically renames, within the scope of a test, a variable declared inside an item. For example, an item may internally declare a variable with identifier “ABC”. However, prewritten test outcome processing code may need to “temporarily” rename this variable to, say, “XYZ”.
 * The optional weight element assigns a weighting for this item specifically in the context of this test.
 * The optional templateDefault element overrides the default value of a template variable declared by the item based on an expression evaluated at test-level.

      Instructions for Section A           Y  </assessmentItemRef> <assessmentItemRef identifier="item063" href="item063.xml">  <variable identifier="item034.RESPONSE" /> <baseValue baseType="identifier">N</baseValue> </preCondition> </assessmentItemRef></assessmentSection> <assessmentSection identifier="sectionB" title="Section B" visible="true"> <itemSessionControl maxAttempts="2" /> <rubricBlock view="candidate"> Instructions for Section B    </rubricBlock> <assessmentItemRef identifier="item347" href="item347.xml"> <branchRule target="item656"> <variable identifier="item347.RESPONSE" /> <baseValue baseType="identifier">N</baseValue> </branchRule> <branchRule target="EXIT_SECTION"> <variable identifier="item347.RESPONSE" /> <baseValue baseType="identifier">Y</baseValue> </branchRule> </assessmentItemRef> <assessmentItemRef identifier="item653" href="item653.xml" /> <assessmentItemRef identifier="item656" href="item656.xml" /> </assessmentSection> </testPart> </assessmentTest>