Sunteți pe pagina 1din 4

Tipos de Errores en Programacin

1. Qu tipos de errores existen en programacin?


En un programa, pueden existir tres tipos de errores:

De sintaxis (sintcticos).
De ejecucin.
De lgica (lgicos).

A continuacin, vamos a estudiarlos con ejemplos escritos en lenguaje C.

1.1

Errores de sintaxis

Cuando en alguna instruccin del cdigo fuente de un programa existe un error de sintaxis, dicho
error impedir, tanto al compilador como al intrprete, traducir dicha instruccin, ya que, ninguno de
los dos entender qu le est diciendo el programador. Por ejemplo, en lenguaje C, si en vez de la
instruccin:
printf( "\n

Introduzca el primer numero (entero): " );

un programador escribe:
prrintf( "\n

Introduzca el primer numero (entero): " );

cuando el compilador o el intrprete lean esta lnea de cdigo, ninguno de los dos entender qu
es "prrintf" y, por tanto, no sabrn traducir esta instruccin a cdigo mquina, por lo que, ambos
pararn la traduccin y avisarn al programador con un mensaje de error.
En resumen, los errores de sintaxis se detectan en el proceso de traduccin del cdigo fuente a
cdigo binario. Al contrario que ocurre con los errores de ejecucin y de lgica, que slo se pueden
detectar cuando el programa se est ejecutando.

1.2

Errores de ejecucin

Un error de ejecucin se produce cuando el ordenador no puede ejecutar alguna instruccin de


forma correcta. Por ejemplo, en lenguaje C, la instruccin:
c = 5 / 0;
es correcta sintcticamente y ser traducida a cdigo binario. Sin embargo, cuando la computadora
intente realizar la divisin:
5 / 0
se producir un error de ejecucin, ya que, matemticamente, no se puede dividir entre cero.

1.3 Errores de lgica


En cuanto a los errores de lgica son los ms difciles de detectar. Cuando un programa no tiene
errores de sintaxis ni de ejecucin, pero, an as, no funciona bien, esto es debido a la existencia
de algn error lgico. De manera que, un error de lgica se produce cuando los resultados
obtenidos no son los esperados. Por ejemplo, en lenguaje C, si en vez de la instruccin:

c = a + b;
un programador hubiera escrito:
c = a * b;
hasta que no se mostrase por pantalla el resultado de la operacin, el programador no podra darse
cuenta del error, siempre que ya supiese de antemano el resultado de la suma. En este caso, el
programdor podra percatarse del error fcilmente, pero, cuando las operaciones son ms
complejas, los errores de lgica pueden ser muy difciles de detectar.

2. ERRORES EN LENGUAJE C Y C++


En el desarrollo de un proyecto de software se pueden cometer errores en las distintas fases:
especificacin, anlisis, diseo, codificacin, pruebas y mantenimiento. En las fases de
codificacin, pruebas de programas y en el desarrollo del programa se comenten
normalmente errores en la escritura del cdigo y en la estructuracin del programa, que se
denominan errores ortogrficos, sintcticos y de estructura ( son errores sintcticos
especiales donde se implican llamadas a procedimientos externos, inclusin de
instrucciones no propias del lenguaje, etc.) . Estos errores normalmente se detectan en la
fase de compilacin y se pueden corregir sin mayor problema.
Sin embargo el compilador no puede detectar los denominados errores lgicos, debidos a
la utilizacin de instrucciones sintcticamente correctas pero dispuestas de forma distinta a
lo especificado en el diseo, cuyo funcionamiento no se ajusta a lo esperado.
El compilador tampoco puede detectar que las peticiones de recursos externos al programa,
cuando ste est en funcionamiento, fallen porque los recursos no estn disponibles o no
son los adecuados. Estos errores se producen en tiempo de ejecucin. De estos conceptos
se llega a clasificar a los errores en tres grupos: los errores crticos, los errores no graves y
los errores irrelevantes.
2.1 Errores irrelevantes:
Son los que no afectan al funcionamiento correcto del programa, aunque son errores y
deban ser corregidos, por ejemplo ventanas de entrada de datos con errores ortogrficos
con un nombre de referencia distinto al que correspondera, afectando ms a la esttica que
la propia operatividad del programa. Por ej: indicar la palabra DNI en lugar de Nmero de
documento porque existen diferentes tipos de documento.
2.2 Errores no graves:
Son aquellos que sera deseable arreglar porque pueden afectar al funcionamiento correcto
del programa, aunque en una sesin normal no ocurra el error.
2.3Errores crticos:
Son aquellos que hacen imposible el funcionamiento correcto del programa mientras no se
corrijan o incluso hacen imposible el propio funcionamiento del programa. Los errores
crticos ms comunes en los lenguajes de programacin, sobre todo de tipo funcional
imperativo son:

1- Errores de divisin por cero por un divisor que vale 0.


2- Errores con punteros: punteros mal asignados no inicializados. Son los ms difciles de
detectar.
3- Errores de salida de un bucle: ejecucin de un bucle infinito debido a la errnea
especificacin de las condiciones de terminacin de variaciones de contadores ndices
de control de iteraciones.
4- Errores de desbordamiento de pila: exceso de llamadas recursivas a una misma funcin.
5- Errores de lmites: intento de acceso fuera de los lmites de un vector.
6- Errores por falta de memoria: en la asignacin dinmica de memoria el operador
funcin de reserva de memoria no devuelve un valor correcto porque no se ha liberado
memoria no usada anteriormente y no se puede asignar la suficiente.
7- Errores de objetos temporales: mal uso de constructores y destructores de objetos.
8- Errores de conversin: prdida de signo de los decimales en las conversiones de datos
definidas por el usuario.
9- Errores de portabilidad: uso de instrucciones recursos recursivos del lenguaje
dependiente del sistema operativo, que no son compatibles con otros sistemas operativos.
10- Errores de disgregacin de decisiones: separacin de las instrucciones de evaluacin de
una condicin y de las instrucciones de accin consecuente si se cumple la condicin.
Por lo tanto para tener una clasificacin de errores producidos en el desarrollo de
programas en el paradigma imperativo se considerar suficiente la siguiente clasificacin
que se especifica en el libro Tutorial on Software Design Techniques editado por I.E.E.E.
(1990), dado que respeta en gran parte los errores mencionados en la introduccin:
TIPO DE ERRORES

Ejemplos

Por referencia de datos

1- Uso de variables sin valor asignado


2- ndices de arreglos fuera de rango
3- ndices de arreglos no enteros
4- Valor de punteros sin direccin vlida
5- Diferente estructura interna usada en la lectura
grabacin con las
estructuras externas
6- La estructura de un dato no es la misma para todos los
mdulos

Por declaracin de datos

1- Variables no declaradas
2- Variables con el mismo nombre
3- Arreglos cadena de caracteres no iniciados
4- Valores iniciales no apropiados
5- Longitudes y tipo de variables no apropiados para
resolver el problema
1- Clculos con variables no numricas
2- Clculos entre variables de diferente tipo
3- Operaciones entre variables de diferentes longitudes
4- Variables con longitud no apropiada al os valores en una

De computacin

De Comparacin

De Control de Proceso

En las interfaces

De Entrada Salida

Otros

expresin
5- Resultados que produzcan overflow
6- Divisiones por cero
7- Valor de ndice fuera de rango
1- Comparaciones entre variables no consistentes por el
concepto que
representan
2- Variables a comparar de diferente tipo de dato
3- Expresiones lgicas incorrectas
4- Mezcla de comparaciones y expresiones lgicas
1- No termina alguna repeticin
2- No termina el programa
3- No se ejecuta por lo menos una vez una repeticin
4- Mal los cierres de las estructuras de control
5- Existen decisiones incompletas en su expresin lgica
1- Nmero no adecuado de argumentos al llamar a una
subrutina
2- Argumentos de diferente tipo tanto en la llamada como
en el encabezamiento del procedimiento
3- No se respeta el orden de los parmetros entre la llamada
y el encabezamiento
1- Atributos incorrectos en los archivos
2- Instrucciones incorrectas de apertura de archivos
3- Especificacin de formato diferentes en las instrucciones
de lectura y
grabacin
4- Variables de diferente tamao con respecto a los valores
de los registros
externos
5- No se consider condicin de fin de archivo
6- Errores en el texto de reportes mensajes
1-Son importantes los mensajes de aviso advertencia en el
caso de producirse
2- Se omiti alguna funcin en la codificacin

Referencias
http://www.carlospes.com/curso_de_ingenieria_del_software/04_04_tipos_de_errores.php

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