The first sheet of the upload template is the ‘Instruction’ sheet which is detailed manual to help you navigate the upload template. All the necessary steps are laid out for easy understanding, we suggest that you refer it while using the template for the first time.

Use this template file to upload multiple Questions to Assess Hands-On Coding Skills. Follow these steps to Bulk Upload Coding Questions -

Add the details of a single coding question in one row in the sheet named 'Questions'. Refer to the table below to fill detail of a Question.

A coding question can have multiple test cases to grade the candidate's code. All test cases for a particular question should be mentioned in the sheet named 'Test Cases'.

Once you are done adding questions & test cases simply upload this entire file on the Mettl.com. Contents of all sheets other than 'Questions' & 'Test Cases' will be ignored.

PFB the details of further Details:

  • QuestionsEnter question details in this sheet. Below are the details that are required.

    • Question ID: Enter a unique numeral question ID for all questions. This will be used while assigning test cases to their respective questions.

    • Topic: Enter the ‘Question Bank’ under which you want the question to be saved on the platform. Please note that one question can have only one topic name, however questions for varying topics can be uploaded simultaneously.

    • Difficulty Level: Enter the appropriate difficulty level for the question (Easy, Medium, Difficult).

    • Question Text: Enter the respective text of the question.

  • Languages: Enter the languages that the candidates can opt to answer the question in. In case of multiple languages, enter comma separated values. The below languages are supported on the Mettl Platform:

    • C

    • CPP,

    • CSharp

    • VB.Net

    • Java6

    • Java7

    • Java8

    • PHP

    • Swift2

    • Go1

    • javascript8


  • Function Name: Enter the name of function in which candidate is expected to write his/her code.

  • Input Types: Enter type of input variable that can be given to a function.

  • Output Types: Enter the type of outputs that can be given to a function.

  • Show Default Result: Select True/False, to determine if the candidate can view the result of the default test case.

  •  Num Of Test Cases: Enter the number of test cases to be assigned for the question.

  • Order Sensitive: Valid only if output of code is of type Array, List or ArrayList. Select True/False as applicable.

  • Code Scoring Setting: Select True/False as applicable.

  • Check Code Complexity (Optional): Specifies whether to check code's complexity. We use open source tool - 'Source Monitor' to evaluate candidate code's complexity. Select True/False as applicable.

  • Check Time Complexity (Optional): Specifies whether to check code's complexity. This option runs test cases of time complexity type (wherein you need to specify test case size)

  • Run Basic Test Cases (Optional): Specifies whether to run basic test cases or not. Select True/False as applicable.

  • Run Corner Test Cases (Optional): Specifies whether to run corner test cases or not. Select True/False as applicable.

  • Run Necessary Test Cases (Optional): Specifies whether to run necessary test cases or not. Select True/False as applicable.


  • Custom Scoring Logic (Optional): Specifies if Custom Scoring Logic should be used or not. If yes, then information in following fields will be used -

    • No of Lines

    • Maximum Lines

    • No Of Logical Statements

    • Maximum Statements

    • Code Compilation

    • Basic Test Cases

    • Necessary Test Cases

    • Corner Test Cases

    • Code Complexity

Select True/False as applicable.


  • No Of Lines (Optional): This field is only taken into account if 'Custom Scoring Logic' is True.


Specifies maximum marks to be awarded if candidate's code exceeds number of lines specified in 'Maximum Lines'.

If candidate's code has lesser lines then he/she will be awarded proportionate marks, i.e. (No Of Lines)*(Lines in Candidate's Code)/(Maximum Lines)

Enter positive integers to define no. of line limit.


  • No Of Logical Statements (Optional):  This field is only taken into account if 'Custom Scoring Logic' is True.

    • Specifies maximum marks to be awarded.

    • Enter positive integers to define no. of logical statements limit.

    • If candidate's code has more logical statements than specified in 'Maximum Statements'. Statements like if, while, for are counted as logical statements.

    • If candidate's code has lesser logical statements then he/she will be awarded proportionate marks, i.e. (No Of Logical Statements) *(Logical Statements in Candidate's Code)/ (Maximum Statements)

  • Maximum Statements (Optional): This field is only taken into account if 'Custom Scoring Logic' is True. 

    • Maximum no of logical statements that a candidate's code should have to get full marks specified by 'No Of Logical Statements'.

    • Enter positive integers to define no. of maximum statements limit.

  • Code Compilation (Optional): This field is only taken into account if 'Custom Scoring Logic' is True. Enter marks to be awarded in case Candidate's code compiles correctly.

  • Basic Test Cases (Optional): This field is only taken into account if 'Custom Scoring Logic' is True. Enter marks to be awarded in case Basic Test Cases run correctly on candidate's code.

  • Necessary Test Cases (Optional): This field is only taken into account if 'Custom Scoring Logic' is True. Enter marks to be awarded in case Necessary Test Cases run correctly on candidate's code.

  • Corner Test Cases (Optional): This field is only taken into account if 'Custom Scoring Logic' is True. Enter marks to be awarded in case Corner Test Cases run correctly on candidate's code.

  • Custom Category - Other Properties (Optional): Use this field if you want to tag your questions based on any custom criterion. This field will be available if you download the Question later.

    • For example, if you want to tag certain questions based on location & creation date, then value in this field could be -

    • {""location"":""India"", ""date_of_creation"":""01/01/2012""}

    • Please note the format of the values in this field -> {""tag_name1"":""tag_value1"", ""tag_name2"":""tag_value2""}

  • Test Cases-Enter all test case’s detail for respective questions in this sheet. Below are the details that are required.

    • Question ID: Enter the Question ID to which this test case is to be assigned.

    • Test Case Index: Enter the serial number of the test case

    • Test Case Title (Optional): Enter the title of the test case. This will be shown in candidate's report.

    • Test Case Description (Optional): Enter a description of the test case. This will be shown in candidate's report.

    • Test Case Type: Specifies type of a test case. While using custom scoring, you can specify how much weightage a particular type of test case should be allotted.

    • Below are the type of test cases:

    • Default

    • Basic

    • Necessary

    • Corner

    • Time Complexity

    • Test Case Marks: Enter marks to be assigned to this test case.

    • Test Case Size (Optional): Specifies type of test case for Time Complexity evaluation

    • Below are the types in which you can categorize the test cases.

    • Small

    • Medium

    • Large

    • Test Case Input Value 1: Specify the type of input value to be submitted as the first/second or nth argument of function that candidate will write. If function requires more arguments, then please add another column by name 'Test Case Input Value 3', 'Test Case Input Value 4' and so on.

    • Please note that number of input values in test case should match number of input values in the associated Question.

    • Test Case Input Value 2 (Optional): Refer to instructions provided in the previous point.

    • Test Case Output Value 1: Specify the type of first/second or nth output values of candidate's code.

    • If function returns more output values, then please add another column by name 'Test Case Output Value 3', 'Test Case Output Value 4' and so on.

    • Please note that number of output values in test case should match number of output values in the associated Question.

    • Test Case Output Value 2 (Optional): Refer to instructions provided in the previous point.