identifier="Test_01"
title="NEW SAMPLE QTI TEST"
What it does: Unique ID & displayed name of the test.
Admin can change: Title to match course/exam name.
Example: title="Final Exam - Biology 101"
<outcomeDeclaration identifier="SCORE" cardinality="single" baseType="float"
interpretation="The Test Score"
longInterpretation="http://www.google.com/search?q=interpreting+test+scores"
normalMaximum="10">
<defaultValue><value>20</value></defaultValue>
</outcomeDeclaration>
normalMaximum="10" → Max possible score (displayed to user).
<value>20</value> → Default score if not calculated.
Admin changes: Adjust normalMaximum to actual total points.
Example: normalMaximum="100"
<timeLimits maxTime="1200" minTime="1200"/>What it does: Max & min time in seconds for the entire test.
Admin changes: Set duration. 0 = no limit.
Example: maxTime="3600" minTime="1800" (1 hour max, 30 min min)
These are inside <testPart><customMetadata> and control UI & rules.
<option name="RESPOND_TO_ALL_QUESTION" value="true"/>true = User must answer all questions before submit.
false = Skip allowed.
<option name="SHOW_SOLUTION_CORRECT_ANSWER_AFTER_ATTEMPT" value="true"/>Shows correct answer & explanation after answering.
<option name="TEST_SAVE_BUTTON" value="true"/>true = Show save button for partial progress.
<option name="MULTI_LANG" value="true"/>Enables language switcher (if prompts exist in multiple langs like xml:lang="hi").
<option name="SHOW_INTERNET_SPEED" value="true"/>Shows network speed indicator (proctoring feature).
<option name="ALLOW_PREVIOUS_BUTTON" value="true"/>false = Linear navigation, no going back.
<option name="SHOW_MARKS_POINTS" value="true"/>Displays points per question.
<option name="MARKING_SCHEME" value="true"/>Shows how marks are awarded (e.g., +1 for correct, -0.25 for wrong).
<option name="FORCE_TO_CORRECT" value="true"/>Forces user to correct wrong answers before final submission (used in training mode).
<option name="IS_ACTIVITY_ENABLED" value="true"/>Tracks user activity (inactivity warning).
<option name="NUMBER_OF_QUE_ATTEMPT" value="3"/>How many attempts per question before showing answer.
<option name="RECORDER_TIME" value="300"/>Max recording time in seconds for voice/video response.
<option name="fldRestrictMobileApp" value="true"/>Restricts test to desktop browser only.
<option name="fldIsDeviceCheck" value="true"/>Checks for secondary device usage (proctoring).
<option name="CHECKBOX_LIMIT" value="5"/>Max checkboxes user can select in multiple-answer questions.
<option name="LATE_LOGIN_TIME" value="10"/>Minutes allowed after start time to still join the test.
<option name="AUTO_SAVE_TIME" value="5"/>Auto-save interval in seconds.
<option name="SHOW_WATERMARK" value="true"/>Overlays candidate name/ID on screen.
<option name="CUSTOM_MESSAGE" value="true"/>
<option name="PASS_FEEDBACK_MSG" value="You passed the test!"/>
<option name="FAIL_FEEDBACK_MSG" value="You failed the test. Better luck next time!"/>
<option name="END_TEST_MSG" value="Thank you for completing the test!"/>
Admin changes: Edit the English text inside value.
Example: value="Great job! You scored above 70%."
<option name="SHOW_FEEDBACK_FORM" value="true"/>
<option name="FEEDBACK_TEMPLATE" value="Standard Feedback"/>
<option name="FEEDBACK_MANDATE" value="true"/>
Forces user to fill feedback form after test.
<option name="IS_MULTI_ATTEMPT" value="true"/>
<option name="NUMBER_OF_MULTI_ATTEMPTS" value="3"/>
User can retake the test 3 times.
<option name="PAUSE_TEST" value="true"/>
<option name="NUMBER_OF_PAUSE_ATTEMPTS" value="2"/>
Allow pausing test (resume later) up to 2 times.
<option name="IS_OPT_BREAK" value="true"/>
<option name="OPT_BREAK_DURATION" value="15"/>
<option name="SKIP_BREAK" value="false"/>
After a section, optional 15-min break. User cannot skip if false.
<option name="BIO_BREAK_ENABLE" value="true"/>
<option name="TOTAL_BIO_BREAK_ALLOWED" value="2"/>
<option name="BIO_BREAK_START_AFTER" value="30"/>
<option name="BIO_BREAK_DURATION" value="10"/>
<option name="BIO_BREAK_TYPE" value="extra time"/>
BIO_BREAK_START_AFTER = minutes after test start when break becomes available.
BIO_BREAK_DURATION = break length in minutes.
extra time = adds to total time, not pausing the clock.
<option name="SUBJECT_GROUPING" value="true"/>
<option name="TOPIC_GROUPING" value="true"/>
<option name="ARRANGE_SEQUENCE" value="true"/>
<option name="SHUFFLING" value="true"/>
Randomizes question order per attempt. Group by subject/topic if metadata exists.
<option name="IS_OPEN_BOOK" value="true"/>Removes restrictions on external resources.
<assessmentSection identifier="Section_01" title="Section 1">
<qtiMetadata>
<qtiMetadataField label="subject">General Knowledge</qtiMetadataField>
<qtiMetadataField label="topic">Geography</qtiMetadataField>
</qtiMetadata>
Admin changes: subject, topic for filtering/reporting.
<responseDeclaration identifier="RESPONSE" cardinality="single" baseType="identifier">
<correctResponse><value>H</value></correctResponse>
<mapping lowerBound="0" upperBound="2" defaultValue="-2">
<mapEntry mapKey="H" mappedValue="1"/>
</mapping>
</responseDeclaration>
lowerBound="0" upperBound="2" → Clamp final score between 0 & 2.
defaultValue="-2" → If no answer, deduct 2 points.
mapEntry → Points for correct choice.
Admin can: Change points, add negative marking for wrong options.
Example for negative marking:
<mapEntry mapKey="He" mappedValue="-0.5"/><responseDeclaration identifier="RESPONSE" cardinality="single" baseType="file">
<mapping>
<mapEntry mapKey="test_1" mappedValue="1"/>
<mapEntry mapKey="test_2" mappedValue="1"/>
</mapping>
</responseDeclaration>
<uploadInteraction maxSize="10485760"/>
maxSize = 10 MB (bytes).
mapEntry = points for passing each test case.
Admin changes: Adjust file size, test cases, points.
<responseDeclaration identifier="RESPONSE" cardinality="multiple" baseType="identifier">
<correctResponse>
<value>H</value><value>O</value>
</correctResponse>
<mapping>
<mapEntry mapKey="H" mappedValue="1"/>
<mapEntry mapKey="O" mappedValue="1"/>
<mapEntry mapKey="Cl" mappedValue="-1"/>
</mapping>
</responseDeclaration>
Partial marking possible.
Admin changes: Add/remove correct combinations, apply penalty for wrong extra choices.
<matchInteraction maxAssociations="4">
...
</matchInteraction>
<responseDeclaration>
<correctResponse>
<value>A1 B1</value><value>A2 B2</value>...
</correctResponse>
</responseDeclaration>
maxAssociations = how many pairs user must make.
Admin changes: Pair sets, points per correct match.
<responseDeclaration identifier="RESPONSE1" cardinality="single" baseType="string">
<correctResponse><value>hydrogen</value></correctResponse>
<mapping lowerBound="0" upperBound="1" defaultValue="0">
<mapEntry mapKey="hydrogen" mappedValue="1"/>
</mapping>
</responseDeclaration>
Case-sensitive match by default.
Admin changes: Add alternative spellings (e.g., hydrogen and Hydrogen by adding more mapEntry keys with same value).
<extendedTextInteraction responseIdentifier="RESPONSE" maxSize="10485760"/>No automated scoring. Admin must manually grade.
maxSize = 10 MB of text.
<metaData>
<metaDataField label="testCategory">10th</metaDataField>
<metaDataField label="difficultyLevel">Expert</metaDataField>
<metaDataField label="template">SSC</metaDataField>
<metaDataField label="testInstructions">TEST567Y</metaDataField>
<metaDataField label="totalQuestions">10</metaDataField>
</metaData>
For internal reporting & categorization.
Admin changes: Any label/value pair (e.g., "testCategory" : "Graduate").
<testSchedule>
<startDateTime>2024-10-15T09:00:00</startDateTime>
<endDateTime>2024-10-15T17:00:00</endDateTime>
</testSchedule>