Sunteți pe pagina 1din 6

Tipos de errores en el desarrollo de programas

Tipos de Errores

¿Qué tipos de errores existen en programación?

En un programa, pueden existir tres tipos de errores:

De sintaxis (sintácticos).

De ejecución.

De lógica (lógicos).

Error de sintaxis

Un error de sintaxis se produce al escribir, incorrectamente, alguna parte del código


fuente de un programa. De forma que, dicho error impedirá, tanto al compilador como al
intérprete, traducir dicha instrucción, ya que, ninguno de los dos entenderá qué le está
diciendo el programador.

Se producen cuando la estructura de una de las instrucciones infringe una o varias reglas
sintácticas definidas en ese lenguaje de programación.

Un error de sintaxis se produce al escribir, incorrectamente, alguna parte del código


fuente de un programa. De forma que, dicho error impedirá, tanto al compilador como al
intérprete, traducir dicha instrucción, ya que, ninguno de los dos entenderá qué le está
diciendo el programador.

Errores de ejecución

Un error de ejecución se produce cuando el ordenador no puede ejecutar alguna


instrucción de forma correcta. Por ejemplo, en lenguaje C, la instrucción:

c = 5 / 0;

Es correcta sintácticamente y será traducida a código binario. Sin embargo, cuando la


computadora intente realizar la división:

5/0

Se producirá un error de ejecución, ya que, matemáticamente, no se puede dividir entre


cero.
Errores de lógica

En cuanto a los errores de lógica son los más difíciles de detectar. Cuando un programa
no tiene errores de sintaxis ni de ejecución, pero, aún así, no funciona bien, esto es
debido a la existencia de algún error lógico. De manera que, un error de lógica se produce
cuando los resultados obtenidos no son los esperados. Por ejemplo, en lenguaje C, si en
vez de la instrucción:

c = a + b;

Un programador hubiera escrito:

c = a * b;

Hasta que no se mostrase por pantalla el resultado de la operación, el programador no


podría darse cuenta del error, siempre que ya supiese de antemano el resultado de la
suma. En este caso, el programador podría percatarse del error fácilmente, pero, cuando
las operaciones son más complejas, los errores de lógica pueden ser muy difíciles de
detectar.

Defectos de diseño de programas

Diseños con colores inapropiados para las personas que padecen daltonismo

Diseños que usan textos con tipografías de difícil lectura por su tamaño o diseño

Diseños que fuerzan el uso del ratón sin dejar alternativas de teclado para personas con
disfunciones motrices

Diseños con implicaciones culturales, por ejemplo usando partes del cuerpo que en una
determinada cultura sean objeto de vergüenza o burla o símbolos con características de
identidad cultural o religiosa

Estimar que el equipo donde se instalará tiene determinadas características (como la


resolución de la pantalla, la velocidad del procesador, la cantidad de memoria o
conectividad a Internet) propias de un equipo de gama alta, en vez de diseñar el software
para su ejecución en equipos normales

Errores de programación comunes

Punto y coma ( ; )

División por cero

Ciclo infinito

Problemas aritméticos como desbordamientos (overflow) o subdesbordamientos


(underflow).
Exceder el tamaño del array

Utilizar una variable no inicializada

Errores tipográficos varios, por ejemplo confundir el dígito "0" con la vocal "0", confundir el
dígito "1" con la letras "I" o "l", o escribir "," en lugar de "." como parte de nombres de
variables en lenguajes donde no es necesario delcarar las variables antes de usarlas. Por
ejemplo, en Fortran IV los espacios no cuentan, por lo que cambiar una coma por un
punto en un bucle DO 100 I=1. 10 equivale a la asignación DO100I = 1.10 que por ser una
instrucción válida no la reporta el compilador.

Usar constantes mágicas, es decir que en lugar de definir una variable o macro para
definir un parámetro que puede cambiar, poner el valor en el código. Por ejemplo, declarar
un arreglo float X[10] y usarla en bucles for i=0 to 10 en varias partes del programa en
lugar de definir una constate XSize=10; float X[XSize]; y usar for i=0 to XSize, con lo que
se evitan omisiones cuando se cambie la dimensión de X, ya que basta con con cambiar
XSize=20 en lugar de buscar en todo el código las constantes mágicas 10 para
cambiarlas por 20.

Acceder a memoria no permitida (Violación de acceso)

Pérdida de memoria (memory leak)

Desbordamiento o subdesbordamiento de la pila (estructura de datos)

Desbordamiento de búfer (buffer overflow)

Bloqueo mutuo (deadlock)

Indizado inadecuado de tablas en bases de datos.

Corrupción de las bases de datos relacionales por no estar normalizadas.

Desbordamiento de la pila de recursión, cuando se dejan demasiadas llamadas en


espera.

Programar por ensayo y error, en lugar de desarrollar los programas sistemáticamente.

No atender los mensajes de advertencia al momento de compilar un programa.

Errores que resultan del uso indiscriminado de variables de alcance global.

Errores por no declarar el tipo de las variables.

Errores que emergen porque el programador no toma en cuenta la semántica del lenguaje
de programación. Por ejemplo, desconocer si el alcance es léxico o dinámico.

No documentar correctamente el programa, provoca el no entender qué hace, lo que


acarrea errores por no tener claro lo que hace.
Códigos de errores de lenguajes de programación

La mayor parte de los lenguajes de programación presentan al menos dos tipos de


errores que permiten a los programadores manejar las fallas de los programas de una
manera eficiente y que no resulte agresiva con el usuario final. Dichos errores son
de compilación y errores en tiempo de ejecución.

Defectos de instalación o programación

 Eliminación o sustitución de bibliotecas comunes a más de un programa o del


sistema (DLL Hell).
 Reiniciar arbitrariamente la sesión de un usuario para que la instalación tenga
efecto.
 Suponer que el usuario tiene una conexión permanente a internet.
 Utilizar como fuente enlaces simbólicos a ficheros que pueden cambiar de
ubicación.

S-ar putea să vă placă și