Identifying and Correcting Errors · Identificación y corrección de errores
| English | Español |
|---|---|
| bug/bʌɡ/ | error (bug) |
| debugging/ˈdiːbʌɡɪŋ/ | depuración |
| syntax error/ˈsɪntæks ˈerə/ | error de sintaxis |
| logic error/ˈlɒdʒɪk ˈerə/ | error lógico |
| runtime error/ˈrʌntaɪm ˈerə/ | error en tiempo de ejecución |
| overflow error/ˌəʊvəˈfləʊ ˈerə/ | error de desbordamiento |
| edge case/edʒ keɪs/ | caso límite |
| expected output/ekˈspektɪd ˈaʊtpʊt/ | salida esperada |
Every program has bugs
- No matter how careful the team is, programs contain mistakes.
- A mistake in a program is a bug 缺陷.
- Finding and fixing bugs is called debugging 调试.
- Skilled debugging is one of the most valuable abilities a programmer can build.
Todo programa tiene errores
- No importa cuán cuidadoso sea el equipo, los programas contienen errores.
- Un error en un programa es un error (bug).
- Encontrar y corregir errores se llama depuración (debugging).
- Una depuración experta es una de las habilidades más valiosas que puede desarrollar un programador.
Which kind of error? · ¿Qué tipo de error?
A syntax error stops the program running; a logic error runs but gives the wrong answer; a runtime error crashes it partway; an overflow error exceeds storage. · Un error de sintaxis impide que el programa se ejecute; un error lógico se ejecuta pero da una respuesta incorrecta; un error en tiempo de ejecución lo detiene a mitad del proceso; un error de desbordamiento supera la capacidad de almacenamiento.
The work of finding and fixing mistakes in a program is called ______. · El trabajo de encontrar y corregir errores en un programa se llama ______.
A mistake is a bug; fixing bugs is debugging. · Un error es un bug; corregir bugs es debugging.
A missing bracket that stops the program from running is a: · Un corchete faltante que impide que el programa se ejecute es un:
Breaking the language's rules is a syntax error. · Romper las reglas del lenguaje es un error de sintaxis.
Why are logic errors often the hardest to find? · ¿Por qué los errores lógicos suelen ser los más difíciles de encontrar?
Nothing obviously breaks, so you must compare output to what you expected. · Nada se rompe visiblemente, por lo que debes comparar la salida con lo que esperabas.
The main kinds of error
- A syntax error 语法错误 breaks the language's rules (a missing bracket) — the program refuses to run.
- A logic error 逻辑错误 runs but gives the wrong result, because the instructions do not match the plan.
- A runtime error 运行时错误 crashes the program while it runs — like dividing by zero.
- An overflow error 溢出错误 happens when a value grows too large for its storage space.
Principales tipos de error
- Un error de sintaxis rompe las reglas del lenguaje (por ejemplo, falta un paréntesis) — el programa se niega a ejecutarse.
- Un error de lógica se ejecuta pero produce un resultado incorrecto, porque las instrucciones no coinciden con el plan.
- Un error de tiempo de ejecución hace que el programa colapse mientras se ejecuta — como dividir por cero.
- Un error de desbordamiento ocurre cuando un valor crece demasiado para su espacio de almacenamiento.
Testing with edge cases (empty input, very large numbers) helps find hidden bugs. · Probar con casos límites (entrada vacía, números muy grandes) ayuda a encontrar errores ocultos.
Bugs often hide at the limits of what a program expects. · Los errores suelen ocultarse en los límites de lo que un programa espera.
To spot a bug in a test, you compare the actual output with the: · Para detectar un error en una prueba, comparas la salida real con la:
A difference between actual and expected output points to a bug. · Una diferencia entre la salida real y la esperada señala un error.
How to find them
- Test with many inputs, including unusual ones — a very large number, empty input, or an edge case 边界情况 at the limit.
- Compare the actual output with the expected output 预期输出; a difference points to a bug.
- Add temporary print statements to see internal values, so you find where it first goes wrong.
- Divide and check: confirm one part is correct, then narrow down the rest.
Cómo encontrarlos
- Prueba con muchas entradas, incluyendo aquellas inusuales — un número muy grande, entrada vacía o un caso límite al borde de la validez.
- Compara la salida real con la salida esperada; cualquier diferencia indica un error.
- Agrega statements de impresión temporales para ver valores internos, así encuentras dónde falla por primera vez.
- Divide y verifica: confirma que una parte es correcta, luego reduce el alcance del resto.
You should re-test the whole program after fixing a bug, since a fix can create a new bug. · Debes volver a probar todo el programa después de corregir un error, ya que una corrección puede crear un nuevo error.
Careful re-testing is what makes software trustworthy. · La cuidadosa re-prueba es lo que hace confiable al software.
Fix, then re-test
- Logic errors are the hardest — nothing obviously "breaks," the answer is just wrong.
- Fixing one bug can create another.
- So after every correction, re-test the whole program.
- Careful, repeated testing turns a rough prototype into software people can trust.
"It ran" is not "it's correct." A logic error runs with no crash and no message — the program looks fine but the answer is wrong. The only way to catch it is to compare the output with what you expected, not just check that it ran.
Corrige, luego vuelve a probar
- Los errores de lógica son los más difíciles — nada parece "romperse" obviamente, simplemente la respuesta es incorrecta.
- Corregir un error puede crear otro.
- Por lo tanto, después de cada corrección, vuelve a probar todo el programa.
- Las pruebas cuidadosas y repetidas convierten un prototipo rough en software en el que la gente puede confiar.
"Se ejecutó" no significa "es correcto". Un error de lógica se ejecuta sin colapsos ni mensajes de error — el programa parece estar bien, pero la respuesta es incorrecta. La única forma de detectarlo es comparar la salida con lo que esperabas, no solo verificar que se haya ejecutado.
A bug is a mistake; fixing bugs is debugging. A syntax error stops the program running, a logic error runs but gives the wrong answer, a runtime error crashes it partway, and an overflow error exceeds storage. Find bugs by testing many inputs (especially edge cases) against the expected output, and always re-test after a fix.
Un error (bug) es un fallo; corregir errores es depurar. Un error de sintaxis impide que el programa se ejecute, un error de lógica se ejecuta pero da la respuesta incorrecta, un error de tiempo de ejecución lo colapsa a mitad del proceso, y un error de desbordamiento excede el almacenamiento disponible. Encuentra errores probando muchas entradas (especialmente casos límite) contra la salida esperada, y siempre vuelve a probar tras cada corrección.