Cómo crear una pregunta o prueba de programación

Artículo 5 de 5 en una serie sobre la creación de tus propias pruebas.

Este es el quinto artículo de una serie de cinco, para ayudarte a crear tus propias pruebas utilizando la plataforma TestGorilla. La serie completa incluye:

  1. Cómo desarrollar una prueba de selección eficaz
  2. Cómo elegir un tipo de pregunta
  3. Cómo redactar preguntas de juicio situacional
  4. Cómo crear tu propia prueba
  5. Cómo crear una pregunta o prueba de programación (opcional)

La opción de agregar tus propias pruebas está disponible para los propietarios de cuentas, administradores y agentes de selección de personal que estén en nuestros planes Pro.

Cuando crees tu propia prueba, te recomendamos que hagas un esquema antes de incluirla en la plataforma TestGorilla. Esto te ayudará a asegurarte de que todo está organizado y dispuesto exactamente como quieres.

Tiempo de lectura de 8 minutos aprox.

 

En este artículo

  1. ¿Qué es una pregunta de programación?
  2. Cómo crear una pregunta de programación
    1. Seleccionar el lenguaje
    2. Editor de preguntas
    3. Redactar la descripción de la prueba
    4. Ingresar información específica del código

    5. Guardar tu pregunta
    6. Pruebas de programación independientes del lenguaje
  3. Preguntas frecuentes
  4. Próximos pasos

¿Qué es una pregunta de programación?

Las pruebas y preguntas de programación se utilizan para evaluar la capacidad de un candidato para crear o depurar código en un lenguaje específico dentro de un límite de tiempo determinado. Para la mayoría de los lenguajes de programación, desarrollamos pruebas en las siguientes categorías:

  • Pensamiento algorítmico (por ejemplo, búsqueda, ordenación, recursión, iteración)
  • Conceptos específicos de la lengua (por ejemplo, estructuras de datos, programación orientada a objetos)
  • Depuración

La diferencia clave entre una prueba de programación y una pregunta de programación es que una prueba contiene un banco de preguntas de programación, y nuestra plataforma pasará por ellas. Una pregunta de programación se presenta sola, como parte de la sección preguntas personalizadas.

 

¿Quién puede crear una pregunta de programación?

Cualquier usuario con el puesto de Propietario, Administrador o Agente de selección de personal puede crear una prueba o pregunta personalizada. Debido a la naturaleza altamente técnica de las pruebas de programación, se requiere que un especialista en el lenguaje de programación requerido cree estas preguntas para ti.

Nota: TestGorilla no puede ayudarte con el contenido de las pruebas personalizadas. Las pruebas que crees tú mismo deben ser una creación original.

 

Lenguajes de programación disponibles

Actualmente tenemos 20 lenguajes de programación disponibles, que pueden ser utilizados tanto en las pruebas como en las preguntas:

  • C: 10.2.0
  • C# : 6.12.0
  • C++ : 10.2.0
  • Go:  1.16.2
  • Java: 15.0.2
  • JavaScript: 18.15.0
  • Kotlin: 1.8.20
  • PHP:  8.2.3
  • Python:  3.10.0
  • R: 4.1.1
  • Ruby:  3.0.1
  • Scala: 3.2.2
  • SQL: SQLite 3.31.1
  • Swift: 5.3.3
  • Typescript:  5.0.3

En nuestras pruebas de codificación agnóstica de idiomas, puede utilizar todos los idiomas anteriores, así como los siguientes:

  • Dart: 2.19.6
  • Elixir: 1.11.3
  • Erlang: 23.0.0
  • Julia: 1.8.5
  • Perl: 5.36.0
  • Rust: 1.68.2

Nota: Solo puede usarse un lenguaje por prueba o pregunta.

 

Cómo crear una pregunta de programación

Las preguntas de programación pueden utilizarse de dos maneras:

El proceso de creación de tu pregunta de programación es el mismo, independientemente del método que sigas. Cada una de las guías enlazadas brinda más detalles sobre cómo llegar a la etapa requerida. Esta guía te mostrará el proceso de uso del editor de preguntas para crear tu pregunta de programación.

 

Seleccionar tu lenguaje

La primera pantalla que se te presenta después de iniciar el editor de preguntas te permite elegir tu lenguaje de programación. Hay 15 lenguajes para elegir; elige uno de la cuadrícula para pasar a la siguiente pantalla.

Nota: Si estás creando una prueba de Mi empresa, el lenguaje debe ser el mismo para todas las preguntas de programación de la prueba.

Si estás usando preguntas personalizadas, puedes elegir un idioma diferente para cada pregunta.

 

Editor de preguntas

El editor de preguntas se encuentra en la siguiente pantalla. El cuadro de texto en la parte izquierda de la página es donde escribirás la descripción de la prueba. Esto proporcionará los detalles que tu candidato necesita para poder completar el ejercicio. Puedes darle formato al texto utilizando la barra de herramientas situada en la parte superior del cuadro de texto. Esto te permitirá resaltar los pasajes clave del texto.

 

Redactar la descripción de la prueba

Recomendamos dividir la descripción de la prueba en cinco pasos:

blue-1

Dar un poco de contexto y el objetivo general de la tarea de programación. Esto da vida a la pregunta y es necesario para que el candidato entienda la intención de la tarea de programación. Este es un buen ejemplo de cómo debe ser:

 

Imagina que formas parte de una banda de atracadores de bancos y que uno de ellos se ha hecho con la llave de la cámara acorazada de la sucursal bancaria local. Como medida de seguridad, la llave sólo puede introducirse en la cerradura en determinados momentos.
Sabes que la llave tiene que pasar por una serie de pasadores que pueden obstruir la entrada de la llave. Esos pasadores están alineados unos detrás de otros y pueden moverse de su posición para abrir su parte de la ranura de la llave. Si la llave golpea uno de los pines, salta la alarma, por lo que sólo podrás entrar en la llave cuando todos los pines estén extraídos.
Tú eres el hacker de la tripulación y tu tarea consiste en determinar el momento preciso en el que se debe introducir la llave. En el momento T=0 , la llave se mantiene inicialmente justo delante de la cerradura ( posición 0 ) y debe entrar hasta el fondo ( posición X ).
Tu compañero está midiendo X, y todavía está trabajando en ello.
La matriz A, formada por N enteros, representa los pines que se extraen para permitir la entrada de la llave.
A[T] representa la posición del pin extraído en el tiempo T (en segundos). El objetivo es encontrar el primer instante T en el que todos los pines hasta la posición X son hasta la posición X.
No hay ninguna chincheta en la posición X.

blue-2

 

Articular en términos claros lo que el candidato tiene que hacer. Para este ejemplo, digamos que el candidato necesita escribir una función. Deberás

  1. Especificar la salida: ¿qué debe devolver la función?
  2. Especificar los argumentos de la función (las entradas)

Trabajando con nuestro escenario anterior, aquí hay un ejemplo:

Escribe una función

mceclip0.png

que, dada una matriz no vacía A formada por N enteros y un entero T , devuelva el mínimo de tiempo en que se podrá introducir la clave en la ranura.
- N y X son números enteros dentro del intervalo [1-100].
- cada elemento de la matriz A es un entero dentro del intervalo [1. .X].

blue-3

 

Ofrecer un ejemplo de entrada y salida que satisfaga los requisitos. Esto podría ser algo así:

Por ejemplo, dado X = 6 y matriz A de modo que:
A[0] = 3
A[1] = 2
A[2] = 2
A[3] = 4
A[4] = 1
A[5] = 5
A[6] = 3
A[7] = 4
la función debería devolver 6, puesto que todos los enteros 1-5 están cubiertos en T=6.

blue-4

 

Agregar detalles relevantes. En nuestro ejemplo de la caja fuerte, esto sería:

Si la llave no puede introducirse nunca, la función debería devolver -1.

blue-5

Opcional: Agregar cualquier sugerencia potencial u otras consideraciones. Esto no es necesario en la mayoría de los casos, pero puede ser algo que quieras agregar.

 

Ingresar información específica del código

El lado derecho de la página es para que ingreses información específica del código. Hay 4 pestañas para completar:

Firma de la función

Aquí puedes establecer el tipo de variable que devuelve la función, su nombre y el parámetro o parámetros de entrada. Puedes elegir entre los siguientes tipos de parámetros:

  • String
  • Entero
  • Booleano
  • Flotador
  • Matriz (introducida como valores separados por comas como 1,2,3,4,5)

Nota: No se admiten objetos como parámetro de la función.

 

Código inicial

El código inicial es el punto de partida de los candidatos. Muestra la firma de la función. Puedes agregar algún código como punto de partida si tu tarea lo requiere. Indica dónde se espera que los candidatos inserten su propio código.

Nota: Esto no es necesario si estás desarrollando una tarea de depuración.

 

Casos de prueba

Los casos de prueba son combinaciones de parámetros de entrada y salida que satisfacen los requisitos que has especificado en la pregunta. En esta pestaña encontrarás dos encabezados:

  • Casos de prueba que se utilizarán durante la prueba. Son los casos de prueba a los que el candidato tiene acceso durante la prueba. Ayudan a guiar al candidato a completar la tarea de programación con éxito, ya que los candidatos pueden probar su código respecto de estos casos de prueba durante el ejercicio.

    Si el candidato hace clic en ejecutar durante el ejercicio de programación, el código que ha escrito se ejecuta con los parámetros de entrada especificados en cada uno de estos casos de prueba.

    Si su código devuelve un resultado que coincide con los resultados especificados, el caso de prueba se aprueba, y el candidato será informado de ello. Si su código falla, también se le informará de ello; esto les permite buscar errores y hacer modificaciones antes de la presentación final.

    Estos casos de prueba deben ser claros. El mínimo es 4.
  • Casos de prueba que se utilizarán para la validación. Se trata de casos de prueba que se utilizarán para obtener el puntaje final de la prueba. No se utilizan durante la evaluación, por lo que los candidatos no pueden comprobar su código con estos casos de prueba.

    Estos casos de prueba deben cubrir todos los requisitos establecidos en tu escenario, incluyendo excepciones, casos límite, etc. Recomendamos crear de 6 a 10 dependiendo de la complejidad de la pregunta.

El Puntaje de corrección será el porcentaje de casos de prueba de validación aprobados.

También puedes agregar casos de prueba para medir la eficiencia del código. Estos casos de prueba producen el Puntaje de rendimiento, que muestra el % de pruebas de rendimiento aprobadas.

El rendimiento se define por el tiempo de ejecución necesario para ejecutar el caso de prueba, en milisegundos. El código del candidato pasa el caso de prueba de rendimiento si el tiempo de ejecución del código se ejecuta completamente dentro del límite de tiempo que hayas establecido.

Un caso de prueba de rendimiento es relevante para las pruebas de programación en las que la escalabilidad es importante. Puedes ver cuánto tiempo ha tardado en ejecutar un caso de prueba de rendimiento cuando ejecutes tu código de verificación (ver más abajo):

 

Código de verificación

El código de verificación es básicamente la respuesta del modelo. Tienes que codificarlo y ejecutarlo para asegurarte de que todos los casos de prueba que ingresaste se han aprobado. Solo entonces podrás guardar la pregunta.

Una vez que el candidato haya completado la prueba, habrá un informe de programación que muestra el código del candidato y el resultado de los casos de prueba de validación que determinan el puntaje. Puedes leer más sobre el informe de la prueba de programación aquí.

Pruebas SQL

Las pruebas SQL son un poco diferentes, dado el componente adicional de la base de datos en la prueba. Aquí puedes ver el propósito de las diferentes pestañas al escribir una prueba SQL:

  • Estructura de la base de datos. Aquí puedes elegir si le pides al candidato que escriba una consulta, utilizado SELECCIONAR, o una actualización de base de datos, utilizando INSERTAR, ACTUALIZAR O ELIMINAR.
    En esta pestaña también escribirás la base de datos inicial creando las tablas e insertando los valores apropiados. En la mayoría de los casos, deberás copiar la estructura inicial de la base de datos como un bloque de código en la descripción de la prueba. De lo contrario, los candidatos no sabrán cómo está estructurada la base de datos ni lo que contiene.
  • Código inicial. Aquí puedes incluir algunas primeras líneas de código si tu tarea lo requiere.
  • Casos de prueba. Como en el caso anterior, los casos de prueba se dividen entre los casos de prueba que están a disposición del candidato, Casos de prueba que se utilizarán durante la prueba, y los casos de prueba que se utilizan para determinar el Puntaje de corrección, Casos de prueba que se utilizarán para la validación.

    La mayor diferencia en la redacción de preguntas SQL está en la estructura de los casos de prueba. Al escribir los casos de prueba, podrás insertar valores adicionales en la base de datos en la Configuración del caso de prueba. Esta configuración es un script que se ejecutará inmediatamente después de la creación de la estructura de la base de datos, pero antes del código candidato. El código de verificación funciona de la misma manera que en otras preguntas de programación: es la respuesta modelo y debe ser limpia y eficiente.

Al escribir un caso de prueba SQL, es bueno tener en cuenta los siguientes flujos.

En caso de que pidas al candidato que cree una consulta, define el resultado esperado de la consulta dada la estructura de la base de datos y la configuración del caso de prueba, según la imagen 1 siguiente.

Imagen 1: Secuencia de scripts SQL que se ejecutan al pedir al candidato que escriba una consulta (usando SELECCIONAR).

En el caso de que le pidas al candidato que escriba una actualización de la base de datos, también deberás escribir una consulta de verificación. Esta consulta se ejecutará después del código de la persona que realiza la prueba.

En el Resultado especificas lo que debe devolver la consulta de verificación. Consulta la imagen 2.

Imagen 2: Secuencia de scripts SQL que se ejecutan cuando se pide a un candidato que escriba una actualización de la base de datos (usando INSETAR, ACTUALIZAR o ELIMINAR).

Nota: Cada caso de prueba recrea la base de datos. Por lo tanto, los casos de prueba están aislados unos de otros.

 

Guardar tu pregunta

La parte más fácil del proceso. Cuando hayas terminado de introducir todos los detalles, haz clic en el botón Guardar en la esquina superior derecha de la pantalla.

Nuestra plataforma ejecutará primero todo tu código para asegurarse de que no haya errores. Recibirás un mensaje de error si se detecta alguno; tendrás que volver a revisar todo para corregir el error.

Si se guarda correctamente, la ventana del editor de preguntas se cerrará y volverá a la pantalla anterior.

 

Pruebas de programación independientes del lenguaje

Esto está disponible en los planes Starter y Pro.

Con nuestras pruebas de programación independientes del lenguaje, puedes configurar qué lenguajes de programación estarán disponibles para que tus candidatos elijan y puede incluir tantos lenguajes como desees de los 20 disponibles actualmente.

De esta manera, podrás evaluar la capacidad del candidato en un lenguaje de programación de su elección.

 

Para ver nuestra lista de pruebas de programación independientes del lenguaje, clic aquí.

 

Simplemente añádele una prueba de programación independiente del lenguaje a tu evaluación, tras lo cual se te presentará una pantalla que te permitirá elegir los lenguajes de programación entre los que podrán elegir los candidatos. Hay 20 lenguajes para elegir, y puedes seleccionar cualquier número de ellos.

Step 2.gif

Puedes editar los lenguajes de programación disponibles en una prueba de programación independiente del lenguaje haciendo clic en el botón de editar situado al lado de la prueba añadida.

Nota: Los candidatos pueden decidir el lenguaje utilizado durante la prueba y se les proporcionan preguntas de práctica, así como también información sobre las herramientas de inicio.

Los candidatos también pueden utilizar nuestro IDE (entorno de desarrollo integrado) configurable para personalizar la paleta de colores, el tamaño de la ventana, el tamaño de la pantalla y el tamaño de la fuente según sus necesidades.

 

Preguntas frecuentes

¿Por qué tengo que crear varias preguntas de programación para mi prueba?

Esto permite que nuestra plataforma presente una pregunta diferente cada vez que se utiliza tu prueba. Si tienes candidatos que han hecho tu prueba antes, tendrán una ventaja sobre los demás examinados, ya que conocerán el contenido de la prueba de antemano. Tener varias preguntas reduce el riesgo de que esto ocurra.

¿Debo utilizar una prueba de programación o una pregunta de programación personalizada?

Esto dependerá de tus propias necesidades. Si seleccionas con frecuencia candidatos para el mismo puesto de desarrollador, tomarte el tiempo de hacer una prueba completa para la empresa podría ser mejor, para no tener que volver a hacer el proceso pronto. Sin embargo, si solo necesitas una o dos preguntas, y tienes el espacio dentro de las preguntas personalizadas asignadas a tu plan, podría ser más fácil.

¿Hay algún límite en el número de pruebas o preguntas de programación que puedo utilizar en mi evaluación?

Tu evaluación puede incluir hasta 5 pruebas y, según tu plan, hasta 20 preguntas personalizadas. En teoría, podrías tener 5 pruebas de programación y 20 preguntas de programación personalizadas en tu evaluación. Sin embargo, ten en cuenta la duración total de tu evaluación; es poco probable que un candidato realice tu evaluación si tiene que pasar 12 horas en ella.

 

Próximos pasos

Aunque no están incluidos en esta serie, tenemos otros artículos que son útiles para hacer tu propia prueba y que vale la pena consultar. Estos son:

 

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 9 de 11

Artículos en esta sección