Test Taker Experience on our Backend Programming Simulator

Test Taker Experience on our Backend Programming Environment

The interface of Mercer | Mettl's backend programming environment (CodeLysis) includes many key components such as a coding window for writing and editing code, a compiler for compiling and running the code, test cases for evaluating the code's functionality and various other features which make it easier for the test takers to adapt to the interface and focus on solving the coding problems at hand.  

This article aims to give the test taker a look and feel of the simulator and resolve any queries they might have with respect to the user interface. 

1. Problem Statement 

The problem statement contains a scenario wherein the test taker must identify the approach/algorithm which can be used to give a solution for the question.  
The provided input and acceptable output types are also mentioned, along with examples. 

2. Code Editor

In the programming section of the simulator, test takers are provided with a designated area where they can write, edit and test their solution to the coding question. 
The code template comes pre-equipped with a set of methods and variables which are pre-written code snippets that the test taker must utilize to solve the question.  
The use of these predefined methods and variables is considered a crucial element in the successful grading of the test taker's solution. 

3. Programming Languages Available 

The simulator supports a wide range of 30+ programming languages, including popular languages such as Java, C++, C#, Python, JavaScript, PHP and many more. This provides flexibility to the test-takers as they can choose a language they are comfortable with and switch to any of the available languages in the middle of the assessment, as many times as they want to.  

4. Writing the code

The main () method is already defined in the system, so there is no need for the test taker to define it. Instead, their focus should be on writing the code that can produce the desired output within the defined function.

The desired output must be returned from the pre-defined function using a return statement. More functions can also be written in the editor window, but the final return should be from the mentioned function only. The return type of the function has been defined in the provided function definition and the problem statement.  
Note: Test-takers need to ensure that their code returns a value synonymous with the defined return type. 

5. Compile Code

After a test taker is done writing the code, the next step is to click on the Compile and Test button, which will result in either of the two scenarios: 

a. The Code Compiles: In this scenario, the value returned in the code is checked against the default test cases. The test case(s) will either pass or fail against the expected output.  

b. The Code Does Not Compile: This happens when there is either a syntactical, logical or runtime error in the test taker’s code. The Code Execution window shows the error(s) and when clicked upon takes the test-taker to the exact line on which the error has occurred.  

Note: The code compiles for a maximum of 30 seconds. In case the test-taker’s code fails to return an output within 30 seconds, a timed-out message is displayed on the code execution window. 

6. Submit Code 

To submit their code, test takers need to click on the Submit Code button which will run the test taker’s code against all the weighted testcases. All the test cases hold a grade that will be awarded to the test taker on the passing of that test case. The sum of all the grades awarded from the passing of different test cases is considered the final grade for that question. The test taker has the option to make edits to their code and execute it as many times as they wish and finally submit their code.  

7. Additional Features:

(i) Walkthrough: This section gives a guided tour to the test taker on how to use the platform.  
It starts automatically as soon as a coding question appears, and test-takers can revisit it anytime by clicking on the How to attempt button on the left side of the page, above the problem statement.

(ii) IntelliSense / Code Complete: Provides suggestions while coding. It helps developers to write code faster and more accurately by providing context-aware suggestions for datatypes, variable names, function names, and other code elements as they type.

Test takers are notified as and when IntelliSense has loaded for the language that they have selected.

(iii) Custom Input: By enabling this option test takers can use their own custom input for debugging purposes which will run through the code and give an output instead of the test cases provided by the platform. 

(iv) Code History: Another distinct feature of this simulator is that it shows the entire code history of a particular question. It shows the total test cases passed, compilation time, code execution details and the entire code of all the versions of the solution submitted by the test taker. 

This feature helps the test-taker to review all the solutions given by them and which version to finally submit to help them score a better grade.  

(v) Editor Features: There are various features around the editor that the test-taker can access such as Fullscreen, Editor Modes, Editor Tab Spaces, Reset Editor, Switch Editor Theme etc. Test-takers can leverage these options and create an environment that lets them code more efficiently.