Cómo encontrar errores en el código
⚠️ Los ejemplos en este artículo están escritos en JavaScript, pero los principios son los mismos para cualquier lenguaje.
Pruebas
El código en Códica se verifica mediante pruebas automáticas. El principio general de este tipo de prueba implica cargar el programa en la memoria, llamarlo con diversos parámetros y verificar que su comportamiento coincida con lo esperado. Por lo general, están escritas en el mismo idioma que el código en sí.
Cuando el código no pasa las pruebas, generalmente se dice que las pruebas fallaron. En este momento, comienza lo más interesante. Es necesario comprender dónde y por qué ocurrió el error. Y la salida de las pruebas juega un papel clave en este proceso; es el principal asistente y guía.
Los errores en las pruebas se pueden dividir en dos categorías:
- Afirmaciones incorrectas.
- Errores que emite el compilador o intérprete: error sintáctico, error de tipado.
Afirmaciones
La afirmación es una función especial que llama a tu código con parámetros específicos y verifica que devuelva el resultado esperado.
Por ejemplo: assert(isPrime(3));
assert.equal(factorial(3), 6);
❗ Si las pruebas fallan en una afirmación, significa que tu código, como mínimo, se ejecutó, pero su resultado no coincide con el esperado y a menudo sucede que algunas afirmaciones pasan la verificación, es decir, el código devuelve el resultado correcto, y otras no, generalmente en casos límite. En última instancia, la falla de la prueba en una afirmación indica que hay un error lógico en el código.
👇 A continuación, se muestra un ejemplo de la salida de una prueba fallida. La cantidad de detalle en la salida depende del tipo de afirmación y de las capacidades del entorno de prueba.
La salida se puede dividir en dos partes:
La primera parte es una descripción de lo que se esperaba de la función y lo que se obtuvo. En nuestro ejemplo, es la línea AssertionError: 3 == 1
. Se lee como: «se esperaba que la función devolviera 3, pero devolvió 1». Esto ya es bueno, pero también nos gustaría ver con qué parámetros se llamó la función. Y la segunda parte de la salida nos ayudará con eso.
La segunda parte se llama backtrace y contiene una lista de funciones que se llamaron secuencialmente en el código. El orden de la salida, por lo general, es inverso: al principio, lo que se llamó por último. En primer lugar, lo que debes hacer, comenzando desde el final, es encontrar la primera mención de la función del archivo que parece ser de prueba. Por lo general, su nombre contiene la palabra «test». En el ejemplo anterior, es at Object.<anonymous> (test.js:4:8)
. Entre paréntesis se indica la línea en la que se encuentra la llamada de esta afirmación. En este caso, es la línea 4. Todo lo que queda ahora es ir al archivo correspondiente y ver cómo se llamó tu función.
Advertencias del compilador e intérprete
Errores sintácticos
El tipo más simple de errores. Este tipo de error indica que cometiste un error en la sintaxis, es decir, olvidaste una coma, un paréntesis y cosas por el estilo. Estos errores son fáciles de encontrar y corregir. El error sintáctico se acompaña de un texto que puedes buscar en Google para encontrar posibles causas.
Otros errores
Un gran conjunto de errores que pueden ocurrir durante el desarrollo. En la salida del compilador o intérprete, siempre hay un mensaje de error que es muy importante entender. La forma más fácil de hacerlo es buscar el texto del error en Google. 💡 Recomendamos nuestra guía ««Cómo buscar información técnica».
Además, los errores contienen una salida de backtrace, que te permite encontrar el lugar donde se produjo el error y tratar de analizarlo.
Sin Comentarios