How to Import Test using QTI (.xml) method?

How to Import Test using QTI (.xml) method?

Navigate to 'Test Manager' tab. Click on 'Test' module and then click on 'Import(QTI)' button.

The next page shows the status of uploaded QTI files. If any file is Rejected, you may click on the 'Rejected' Status to see where the issue has occured for uploading the file.
Click on the 'Import(QTI)' button again which will display a page having option to download the Sample file or upload a file.
Download the Sample file first to know more about the QTI format.

1. Test-Level Metadata (Global Settings)

Test Title & Identification

xml
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"


Overall Test Score Declaration

xml
<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"


Time Limits

xml
<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)


2. Custom Metadata – Test Player Behavior

These are inside <testPart><customMetadata> and control UI & rules.

General Test Options

xml
<option name="RESPOND_TO_ALL_QUESTION" value="true"/>
  • true = User must answer all questions before submit.

  • false = Skip allowed.

xml
<option name="SHOW_SOLUTION_CORRECT_ANSWER_AFTER_ATTEMPT" value="true"/>
  • Shows correct answer & explanation after answering.

xml
<option name="TEST_SAVE_BUTTON" value="true"/>
  • true = Show save button for partial progress.

xml
<option name="MULTI_LANG" value="true"/>
  • Enables language switcher (if prompts exist in multiple langs like xml:lang="hi").

xml
<option name="SHOW_INTERNET_SPEED" value="true"/>
  • Shows network speed indicator (proctoring feature).

xml
<option name="ALLOW_PREVIOUS_BUTTON" value="true"/>
  • false = Linear navigation, no going back.

xml
<option name="SHOW_MARKS_POINTS" value="true"/>
  • Displays points per question.

xml
<option name="MARKING_SCHEME" value="true"/>
  • Shows how marks are awarded (e.g., +1 for correct, -0.25 for wrong).

xml
<option name="FORCE_TO_CORRECT" value="true"/>
  • Forces user to correct wrong answers before final submission (used in training mode).

xml
<option name="IS_ACTIVITY_ENABLED" value="true"/>
  • Tracks user activity (inactivity warning).

xml
<option name="NUMBER_OF_QUE_ATTEMPT" value="3"/>
  • How many attempts per question before showing answer.

xml
<option name="RECORDER_TIME" value="300"/>
  • Max recording time in seconds for voice/video response.

xml
<option name="fldRestrictMobileApp" value="true"/>
  • Restricts test to desktop browser only.

xml
<option name="fldIsDeviceCheck" value="true"/>
  • Checks for secondary device usage (proctoring).

xml
<option name="CHECKBOX_LIMIT" value="5"/>
  • Max checkboxes user can select in multiple-answer questions.

xml
<option name="LATE_LOGIN_TIME" value="10"/>
  • Minutes allowed after start time to still join the test.

xml
<option name="AUTO_SAVE_TIME" value="5"/>
  • Auto-save interval in seconds.

xml
<option name="SHOW_WATERMARK" value="true"/>
  • Overlays candidate name/ID on screen.


Feedback Messages

xml
<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%."

xml
<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.


Multiple Attempts & Pause

xml
<option name="IS_MULTI_ATTEMPT" value="true"/>
<option name="NUMBER_OF_MULTI_ATTEMPTS" value="3"/>
  • User can retake the test 3 times.

xml
<option name="PAUSE_TEST" value="true"/>
<option name="NUMBER_OF_PAUSE_ATTEMPTS" value="2"/>
  • Allow pausing test (resume later) up to 2 times.


Optional Break

xml
<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.


Bio Break (Extra Time)

xml
<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.


Question Shuffling & Grouping

xml
<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.


Open Book Test

xml
<option name="IS_OPEN_BOOK" value="true"/>
  • Removes restrictions on external resources.


3. Section-Level Metadata

xml
<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.


4. Question-Level Configurations

Multiple Choice (Single Answer)

xml
<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:

xml
<mapEntry mapKey="He" mappedValue="-0.5"/>


File Upload (Programming Task)

xml
<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.


Multiple Correct Answers

xml
<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.


Match the Following

xml
<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.


Fill in the Blanks (Text Entry)

xml
<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).


Subjective Essay (Extended Text)

xml
<extendedTextInteraction responseIdentifier="RESPONSE" maxSize="10485760"/>
  • No automated scoring. Admin must manually grade.

  • maxSize = 10 MB of text.


5. Test Scheduling & Metadata (Outside TestPart)

xml
<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").

xml
<testSchedule>
<startDateTime>2024-10-15T09:00:00</startDateTime>
<endDateTime>2024-10-15T17:00:00</endDateTime>
</testSchedule>
  • Test available only between these times (ISO format).

  • Admin changes: Update date/time.


Quick Reference: Common Admin Edits

What to changeWhere to lookExample
Test duration<timeLimits maxTime="...">maxTime="5400" (1.5 hr)
Passing scoreNo direct field; calculate via SCORESet in LMS rule
Points per question<mapEntry mapKey="..." mappedValue="...">mappedValue="2"
Negative markingAdd mapEntry with negative valuemappedValue="-0.25"
Allow backtrackingALLOW_PREVIOUS_BUTTONvalue="false"
Number of attemptsNUMBER_OF_MULTI_ATTEMPTSvalue="5"
Break between sectionsOPT_BREAK_DURATIONvalue="30" minutes
Late login windowLATE_LOGIN_TIMEvalue="20" minutes
Auto-save frequencyAUTO_SAVE_TIMEvalue="10" seconds

Note: Always keep a backup of the original QTI file before editing. Not all LMS platforms support every custom metadata option – validate with your specific QTI player.


    • Related Articles

    • How to create a test from Test Manager?

      To create a test, follow the steps given below. Step 1 : create Test 1.Click on the “Test Manager” Tab and then click on the “Test” button. 2. Now click on the “Add” button which is on the right hand side of the screen. 3. Here, add all relevant ...
    • How to create a Pool Test?

      Steps to create a Pool Test: Step 1: Create Test Log in to your Think Exam panel and navigate to the "Test Manager" tab. Click on "Test" and then on "Add" to create a new test. Enter the test details, such as name, duration, instructions, and other ...
    • How can we get test links from the admin panel?

      Steps to get Test Links form the Admin Panel : Log in to the Admin Panel and navigate to the Test Manager module. 2. Click on the three dots next to the test name under the Action button and select Copy Test Link. Admins can now share these copied ...
    • How to create a proctored Test?

      Proctoring settings: Overview This setting enables you to activate proctoring for the test, allowing you to configure the proctoring settings based on your needs. There are two types of proctoring available: Manual Proctoring With this option, a ...
    • Understanding the Test Action Menu in Think Exam

      The Action Menu in Think Exam provides administrators with quick access to a wide range of test management options. It can be accessed by navigating to: Test Manager Module → Test Sub-Module → Click on the Three Vertical Dots (⋮) corresponding to a ...