INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L MATRIZ DE DETECCIÓN DE ERRORES. Grupo Geoportales y Geoservicios Infraestructura Colombiana de Datos Espaciales - ICDE Centro de Investigación y Desarrollo en Información Geográfica - Oficina CIAF Instituto Geográfico Agustín Codazzi - IGAC 2008 B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 1 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L INFORMACIÓN DEL DOCUMENTO Titulo. Matriz de Detección de Errores. Autor. Fabián Acevedo, Fecha de emisión. Tema. Editor. Descripción. Participaron. Formato. Doc Público. No. de identificación. ICDE-GS-DOC-por definir Idioma. Español Vigencia. 2008 Versión Fecha Modificado por Comentarios 1.0 2008 Fabián Acevedo. Primera Versión B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 2 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Matriz de Cambios Año________ Numerales en los cuales la información es modificada de un modo significativo de lo que fue elaborado en la versión inmediatamente anterior. Numeral modificado Tipo de cambios B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 3 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L TABLA DE CONTENIDO MATRIZ DE DETECCIÓN DE ERRORES. ........................................................................................................................... 1 INFORMACIÓN DEL DOCUMENTO ................................................................................................................................ 2 TITULO. MATRIZ DE DETECCIÓN DE ERRORES. .............................................................................................................. 2 TABLA DE CONTENIDO ................................................................................................................................................. 4 1 ERRORES DE CÓDIGO ........................................................................................................................................... 8 1.1 1.2 1.3 1.4 1.5 1.6 2 ERRORES EN LOS LÍMITES............................................................................................................................................ 8 ERRORES EN LOS CÁLCULOS ........................................................................................................................................ 9 ERRORES EN LOS ESTADOS INÍCIALES Y FINALES ............................................................................................................. 10 ERRORES EN EL FLUJO DE CONTROL ............................................................................................................................ 11 ERRORES EN EL MANEJO E INTERPRETACIÓN DE LOS DATOS.............................................................................................. 12 ERRORES EN LAS CONDICIONES DE COMPETICIÓN .......................................................................................................... 12 ERRORES DE INTERFAZ DE USUARIO .................................................................................................................. 13 2.1 FUNCIONALIDAD .................................................................................................................................................... 13 2.2 COMUNICACIÓN ..................................................................................................................................................... 14 2.2.1 La información no está disponible en la pantalla. ......................................................................................... 14 2.2.2 La información es incorrecta, confusa o engañosa. ...................................................................................... 14 2.2.3 Ayuda y mensajes de error ............................................................................................................................ 14 2.2.4 Visualización de la pantalla ........................................................................................................................... 15 2.2.5 Distribución de la pantalla ............................................................................................................................ 15 2.3 ESTRUCTURA Y ENTRADA DE COMANDOS ..................................................................................................................... 15 2.3.1 Inconsistencia ................................................................................................................................................ 15 2.3.2 Pérdida de tiempo ......................................................................................................................................... 15 2.3.3 Menús............................................................................................................................................................ 15 2.3.4 Líneas de comandos ...................................................................................................................................... 16 2.3.5 Uso inapropiado del teclado ......................................................................................................................... 16 2.4 COMANDOS AUSENTES ............................................................................................................................................ 16 2.4.1 Transición de estados .................................................................................................................................... 16 2.4.2 Prevención de desastres ................................................................................................................................ 16 2.4.3 Manejo de errores por el usuario .................................................................................................................. 16 2.4.4 Otros fallos .................................................................................................................................................... 17 2.5 RIGIDEZ DEL PROGRAMA .......................................................................................................................................... 17 2.5.1 Adaptación a la medida del usuario .............................................................................................................. 17 2.5.2 Control sobre el usuario ................................................................................................................................ 17 2.6 RENDIMIENTO ....................................................................................................................................................... 17 2.7 SALIDA ................................................................................................................................................................. 18 3 ERRORES DE SOBRECARGA ................................................................................................................................. 19 4 ERRORES EN EL HARDWARE ............................................................................................................................... 20 B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 4 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L 5 ERRORES EN LOS FUENTES, VERSIONES Y EN EL ID DE CONTROL ........................................................................ 22 6 ERRORES EN LA PRUEBA ..................................................................................................................................... 23 6.1 6.2 6.3 6.4 7 ERRORES QUE NO SE DETECTAN ................................................................................................................................. 23 ERRORES QUE NO ESTÁN EN EL PROGRAMA .................................................................................................................. 23 BAJA CALIDAD DE LOS INFORMES ............................................................................................................................... 24 BAJA CALIDAD DE LAS TRAZAS Y DEL SEGUIMIENTO DE LOS ERRORES ENCONTRADOS ............................................................. 24 ERRORES EN EL MANEJO DE ERRORES ................................................................................................................ 24 7.1 7.2 7.3 PREVENCIÓN DE ERRORES......................................................................................................................................... 24 DETECCIÓN DE ERRORES........................................................................................................................................... 25 RECUPERACIÓN DE ERRORES ..................................................................................................................................... 25 B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 5 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Tabla 1. Instituto Geográfico Agustín Codazzi. Matriz de detección de errores. Metodología de Desarrollo de Software. Nombre de proyecto o programa Versión Hallazgo Corrección Tipología de errores Descripción Gravedad de error Fecha de reporte: DD/MM/AAAA Numero de informe: Diligencio Personal asignado para corrección Observaciones Medidas correctivas Estado Fecha de corrección: DD/MM/AAAA Errores en los límites Errores en los cálculos Errores en los estado iníciales y finales Errores de código Errores en el flujo de control Errores en el manejo e interpretación de los datos Errores en las condiciones de competición Otros Funcionalidad Interfaz de usuario Comunicación Estructura y Entrada de Comandos B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 6 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Comandos Ausentes Rigidez del programa Rendimiento Salida Errores de sobrecarga Errores en el Hardware Errores en las fuentes, versiones y en el ID de control Errores que no se detectan Errores que no están en el programa Errores en la prueba Baja calidad de los informes Baja calidad de las trazas y del seguimiento de los errores encontrados. Prevención de errores Error en el manejo de errores Detección de errores Recuperación de errores B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 7 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L La presente matiz de detección de errores busca otorgar a desarrolladores y actores que tienen a su cargo el desarrollo de pruebas, dar una herramienta funcional para el registro de las mismas. La documentación consultada para el presente documento es del Grupo de Ingeniería del Software y del Conocimiento de la Universidad de las Palmas de Gran Canaria. http://serdis.dis.ulpgc.es/~a013775/asignaturas/it-pms/Apuntes 1 Errores de Código 1.1 Errores en los límites Un programa debe comportarse de la misma forma para cualquier valor que esté dentro del límite y de forma diferente para cualquier valor que esté fuera del mismo. Existen tres tipos de errores: errores causados por no contemplar los casos límites, errores al no ser correctos los límites y errores por no contemplar los casos que están fuera de los límites. Cuando los límites son numéricos hay que tener en cuenta si son arbitrarios, esto es, entre 20 y 40 caracteres, o si representan límites naturales, 3 caracteres. Cuando los elementos de una lista son iguales la igualdad constituye un límite, hay que tener en cuenta qué cosas no se pueden hacer y cómo responder ante la demanda de las mismas. Cuando existen límites en la cardinalidad, si se pueden introducir hasta 5 dígitos ¿qué ocurre si se introducen 6, y 4, ninguno o 1. Cuando se establecen límites espaciales, si dibujamos un gráfico y lo rodeamos con un recuadro ¿qué ocurre si se quiere sacar un punto del gráfico fuera del recuadro?. En los límites temporales, ¿qué ocurre si introducimos un dato antes de que el programa nos de tiempo para introducirlo? ¿y si lo introducimos justo en el instante de tiempo que concluye el plazo que tenemos para introducirlo?. Los límites en los bucles pueden ser inferiores, superiores o ambos. Los límites de la memoria, cantidad de memoria más grande y más pequeña que puede ocupar un programa. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 8 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Los límites dentro de las estructuras de datos esto es, cuando el programa no puede leer de disco el primer registro ni el último, cuando no se marca correctamente el final de un fichero ni el comienzo del siguiente, cuando hay dos campos del registro –identificadores repetidos. Los límites relacionados con el hardware: qué ocurre cuando un disco está lleno, cuando se alcanza el límite de ficheros en un directorio. Cuando los límites son invisibles, ¿qué ocurre cuando se alcanza un límite que no es visible y del que nunca podríamos darnos cuenta?. 1.2 Errores en los cálculos Si un programa realiza un cálculo y obtiene un resultado incorrecto las razones pueden ser que la lógica no es correcta, que la aritmética es incorrecta o que el cálculo es impreciso. El uso de constantes que no estén actualizadas en el código. Errores de cálculo al confundir el signo de la operación a realizar o el orden de los operadores. Fallos al usar el paréntesis de forma incorrecta. Cuando el programa evalúa una expresión en un orden que no es el que esperaba el programador. Fallos al interpretar una función. Fallos debidos a posibles desbordamientos y defectos. Errores de cálculo que se producen cuando el programa trunca o redondea un número (se introduce 5,19 y el programa como sólo puede guardar dos dígitos 5,1 lo trunca en lugar de hacer un redondeo a 5,2). Confundirse en el formato de representación de los datos (qué ocurre si una vez se usa un formato y otra vez se usa otro). Error en la conversión de formatos. Fallos debidos a fórmulas excesivamente complejas. Fallos debidos al uso en el programa de fórmulas y procedimientos que no sean correctos. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 9 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L 1.3 Errores en los estados iníciales y finales Antes de usar una función el programa tiene que inicializarla. Los pasos típicos de inicialización son: identificar las variables de la función, definir sus tipos, localizar espacio de memoria para las mismas y ponerla a algún valor por defecto (p.ej. 0). El programa leerá un fichero de disco que contiene los valores por defecto y otra información de configuración, pero ¿qué ocurre si el fichero no está?. Los pasos de inicialización deben hacerse cuando se carga el programa, cuando arranca, cuando se llama por primera vez a una función o cada vez que se llame a una función. Fallo al suponer que un elemento de dato se pondrá a cero en todos los casos de forma automática, ya que en muchos compiladores en muchos lenguajes es así mientras no se diga lo contrario. Fallo al no inicializar la variable de control de un bucle. La variable de control indica el número de veces que debe ejecutarse el conjunto de instrucciones que están dentro del bucle; cuando se alcanza ese valor se deja de iterar debiéndose resetear si se desea que se vuelva a entrar en dicho bucle. Fallo al no inicializar o reinicializar un puntero. Una variable de tipo puntero almacena una dirección, tal como la localización en memoria donde comienza una “string”. El valor del puntero puede cambiar y si el programador olvida resetear el puntero después de cambiarlo éste apuntará a un lugar incorrecto. Si se visualizan fragmentos de una “string” o elementos de un “array” que no son los que se deberían visualizar esto se deberá a errores en los punteros. Fallo al borrar una “string”. Una variable de tipo “string” almacena un conjunto de caracteres. Antes de usarse estará vacía (con ceros) y cuando contiene algún valor se sustituyen los ceros por los elementos correspondientes. Si cuando cambia el valor de la variable no se ponen a cero los elementos que antes contenían algún valor y que ahora no tienen ningún valor se producirá un error. Fallo al inicializar o reinicializar los registros. Los registros son áreas especiales de memoria en la CPU. Los datos se pueden manipular de forma más rápida si están almacenados en registros que están almacenados en memoria normal. Los programas usan estos registros como almacenamientos temporales dada la rapidez que permiten. Se copian los valores de las variables a estos registros, se trabaja con ellos y se devuelven los nuevos valores. Es fácil olvidarse de cargar los últimos datos en uno de estos registros. Fallo al desactivar un “flag”. Son variables que indican condiciones especiales. Puede estar activado o desactivado. Lo normal es que estén desactivados. El “flag” debe estar siempre actualizado. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 10 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Fallo al suponer que los datos se inicializaban en otra parte. Una función puede no tener que inicializar todos sus datos. Variables compartidas por diferentes funciones deben ser inicializadas conjuntamente. Fallo al reinicializar. Un programador puede olvidarse de que las variables de una función no tengan los valores correctos la segunda vez que se ejecute. Si la primera vez no se tiene que especificar el valor porque es cero, la segunda vez, el programador puede dar por hecho que tampoco tendrá que hacerlo. Fallo al suponer que los datos no estaban reinicializados. Los programas inicializan las variable repetidamente; esto produce pérdida de tiempo. Confusión entre almacenamientos estáticos y dinámicos. Una variable local es dinámica cuando cada vez que se llama a la función hay que redefinir la variable, disponer de memoria y asignarle un valor inicial. Las variables estáticas se mantienen en memoria y mantienen su valor durante todas las llamadas a la función. En algunos lenguajes todas las variables locales son estáticas, en otros son dinámicas y en otros se puede elegir entre estáticas y dinámicas; esto último puede provocar errores si no se tienen en cuenta las precisiones anteriores. Cuando se modifican los datos por efectos laterales. Cuando la inicialización no es correcta. Cuando existe dependencia de herramientas de las que el usuario no dispone o dependencia de cosas que el usuario no comprende. 1.4 Errores en el flujo de control El flujo de control de un programa describe lo que éste debe hacer bajo determinadas circunstancias. Los errores en el flujo de control se producen cuando lo próximo que hace el programa no es correcto. Si programa hace disparates, como mostrar basura en la pantalla, guardar basura en disco, imprimir sin parar o ir a donde no tiene que ir. Cuando el programa se para sin tener que hacerlo ya que no está diseñado para que se detenga en ese momento. Errores en los bucles al no existir la condición de terminación de bucle, cuando el valor de comienzo para la variable de control no es el correcto, cuando se cambia accidentalmente el valor de la variable de control dentro del bucle, cuando el criterio de final de bucle no es correcto, si se dan anidamientos de bucles que no son correctos. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 11 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Errores en las cláusulas “Si”, “entonces”, “sino”: cuando la desigualdad es incorrecta “> en lugar de >= “, las comparaciones producen resultados incorrectos, se confunde el “or” exclusivo con el “or” inclusivo, no se introducen los comandos dentro de las cláusulas correspondientes o al introducir un comando dentro de una cláusula cuando no debe estar dentro de ninguna para que se pueda ejecutar siempre. En los casos múltiples “case”, “select”, que no se pueden cubrir con la cláusula “if” puede ser que se olvide algún caso, que algún caso sea imposible, o que haya solapamiento. 1.5 Errores en el manejo e interpretación de los datos Son errores que se producen en el paso de datos entre módulos o porque se corrompen los datos o se interpretan de forma incorrecta produciendo errores más graves. Fallos en los datos que se pasan entre procedimientos debido a que los tipos no son correctos, a que se olvida algún parámetro o a que se pasan desordenados, también cuando no se comprenden los valores de los datos que se pasan, las copias de datos no están puntualmente actualizadas, la información de error no es adecuada, usar variables locales como si fueran globales. El programa usa direcciones incorrectas de comienzo y finalización de un conjunto de datos. El programa leer fuera de los límites de un “buffer” de mensaje debido que la dirección o la longitud del “buffer” que se obtiene es incorrecta. Problemas en el paso de mensajes entre procesos. Los procesos pueden corromper almacenamiento de datos al poner valores erróneos en los mismos. 1.6 Errores en las condiciones de competición Son errores que se producen cuando dos eventos que se espera se produzcan en un orden determinado lo hacen en un orden diferente que no era el previsto. También cuando se esperan respuestas en intervalos de tiempo que no son los adecuados. Dos procesos que actualizan un dato que está en disco; uno tiene que esperar a que el otro haya terminado de efectuar completamente la actualización para poder llevar a cabo su actualización correctamente y no espera. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 12 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Suponer que un evento o tarea ha finalizado antes de que otra comience. Suponer que no se va a producir una entrada durante un intervalo de procesamiento pequeño. No considerar que los recursos compartidos puedan no estar disponibles. Suponer que una persona, dispositivo o proceso responderá rápidamente. Opciones fuera de sincronización durante un cambio de visualización. Una tarea comienza antes de que sus prerrequisitos se hayan alcanzado. Mensajes que se cruzan o que no llegan en el orden enviado. 2 Errores de Interfaz de Usuario 2.1 Funcionalidad Son errores que se producen en el programa cuando éste no hace lo que debe hacer o lo hace pero de forma incompleta, confusa o compleja. La funcionalidad implementada es excesiva debido a la presencia de características que no se usan casi nunca, y que complican el uso de las funciones básicas del programa. La documentación que se distribuye al usuario no se corresponde con la funcionalidad realmente implementada. La funcionalidad no ayuda al usuario en la realización de su trabajo debido a que el programa es lento, muy restrictivo o no está completo. Una función que estaba en la especificación de requisitos no está implementada y además era obvio que debía estarlo. La función debería hacer lo que está especificado y hace algo más que no debería. El usuario tiene que crear la funcionalidad que espera del sistema integrando las utilidades o capacidades que proporciona el programa. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 13 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L La función no tiene el comportamiento esperado. 2.2 Comunicación Son errores relacionados con el uso del programa, con la información disponible desde el mismo, con la cantidad de información, con la legibilidad de la misma y con la forma de expresarla. Se refieren a la utilidad y precisión de la información que se presenta cuando se comete un fallo o se requiere ayuda, si está bien presentada y si está completa. 2.2.1 La información no está disponible en la pantalla. No se muestran instrucciones de uso en la pantalla, tener que depender de la documentación impresa, existen características y comandos que no están documentados, hay estados de los que parece imposible salir, no hay cursor, el programa falla al reconocer una entrada, no mostrar que una actividad está tardando mucho tiempo puede hacer pensar que el sistema se ha bloqueado, no advertir cuando un cambio tiene efecto puede provocar algún error, fallo al comprobar que un mismo documento ha sido abierto más de una vez. 2.2.2 La información es incorrecta, confusa o engañosa. Errores motivados por no actualizar la información que se muestra en pantalla cuando se modifica el programa, errores de escritura, uso de simplificaciones imprecisas, uso de metáforas que no son válidas, uso de nombres de características confusos, usar más de un nombre para la misma característica, sobrecargar de información al usuario con información técnica innecesaria, no saber cuándo se graban los datos, la modularidad que se aprecia desde el exterior es muy pobre. 2.2.3 Ayuda y mensajes de error Los niveles de lectura no son apropiados, mensajes largos y complejos, uso de un tono inapropiado, la información sobre cómo actuar ante un error no es la correcta, errores de contexto, fallo al identificar el origen de un error, se prohibe el uso de un recurso sin dar explicaciones, informar de cosas que no son errores puede hacer que se ignoren los mensajes de error. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 14 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L 2.2.4 Visualización de la pantalla Aparecen dos cursores en la pantalla, el cursor desaparece de la pantalla, el cursor se visualiza en un lugar de la pantalla que no es correcto, el cursor se mueve fuera del área de entrada de datos, los datos no se visualizan en la posición correcta, la pantalla no se borra completamente, fallos al tratar de resaltar parte de la pantalla y cuando se desean eliminar dichos resaltes, la visualización es incorrecta o sólo parcial, los mensajes se visualizan durante muy poco tiempo o durante demasiado tiempo. 2.2.5 Distribución de la pantalla Falta de estética, errores en la distribución de los menús, errores en la visualización de las cajas de diálogo, instrucciones escondidas, abuso de los destellos, abuso del color, fuerte dependencia de los colores, inconsistencia con el estilo del entorno, dificultad para deshacerse de la información que está en la pantalla. 2.3 Estructura y entrada de comandos Son errores que hacen que el usuario se pierda fácilmente en el programa. 2.3.1 Inconsistencia Como consecuencia de las “optimizaciones” realizadas por los programadores se pueden presentar inconsistencias en la sintaxis de los comandos, en el estilo de entrada de los comandos, en las abreviaturas de comandos, en las reglas de terminación, al usar nombres similares para comandos diferentes, al escribir en mayúscula la primera letra de sólo algunos comandos, al no mantener el mismo comando en la misma posición cuando se encuentra en diferentes menús, al darle usos diferentes a una misma tecla de función en el mismo programa, al no poder predecir el comportamiento de los manejadores de errores, en las reglas de edición, en las reglas para grabar datos. 2.3.2 Pérdida de tiempo Conducir al usuario a través de caminos de selección sin éxito, al incluir opciones de menú que no están implementadas, al preguntar en exceso y en casos que no son necesarios si estamos realmente seguros de hacer algo antes de que el programa lo haga, cuando los nombres de los comandos no son lo suficientemente informativos y hay que estar consultando de forma continuada el manual de usuario. 2.3.3 Menús B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 15 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Jerarquía de menú muy compleja, cuando la navegación a través de las opciones del menú no es adecuada, cuando hay diferentes caminos que llevan al mismo sitio (un comando se repite en varios menús), cuando se impide el uso de un conjunto de comandos una vez se ha tomado un camino diferente teniendo que reiniciar el sistema, comandos relacionados que se relegan a menús que no están relacionados. 2.3.4 Líneas de comandos Distinguir entre mayúsculas y minúsculas, parámetros invertidos, cuando no se permiten los nombres de los comandos completos, cuando no se permiten las abreviaturas de los nombres de los comandos, cuando la especificación del comando es muy compleja y debe hacerse en una línea, no permitir entradas en serie, cuando los comandos no se pueden editar. 2.3.5 Uso inapropiado del teclado Al usar las teclas de función, de edición y el cursor se producen fallos, cuando no se hace un uso estándar de las teclas de edición, del cursor y de las teclas de función, fallos al filtrar las teclas que no son válidas, fallos al indicar los cambios de estado del teclado, al examinar las teclas de función y de control y no reconocerlas correctamente) 2.4 Comandos ausentes Son errores causados por la ausencia de determinados comandos y utilidades en el programa. 2.4.1 Transición de estados No poder decirle al programa que lo que se le ordenó fue un error y que vuelva al estado anterior, no poder salir a la mitad del programa sin afectar a los datos que estaban almacenados antes de comenzar, no poder parar el programa mientras se está ejecutando un comando, no poder hacer una pausa. 2.4.2 Prevención de desastres No disponer de copias de seguridad, no permitir deshacer algo que se ha hecho, no preguntar si estamos seguros de querer hacer algo, no permitir que se guarde el trabajo en intervalos regulares de tiempo. 2.4.3 Manejo de errores por el usuario B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 16 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L El usuario no puede especificar los tipos de datos que deben ser aceptados por el programa y los que deben ser rechazados cuando se diseñan los formularios de entrada de datos, cuando se corrige un error se obliga al usuario a salir del programa y volver a entrar para poder volver al lugar donde cometió el error, no poder introducir comentarios o notas para referencias posteriores cuando se diseñan formularios para la entrada de datos, cuando no se visualizan las relaciones que existen entre variables que son dependientes entre sí. 2.4.4 Otros fallos Cuando la privacidad de los datos o la seguridad del programa no es la adecuada no pudiendo bloquear ficheros para impedir el acceso a los mismos, una obsesiva seguridad cuando no es necesario, no poder ocultar los menús para hacer un mejor uso del espacio de pantalla, no dar soporte a las características de un sistema operativo estándar (si los ficheros se estructuran en subdirectorios no poder hacer referencia a ficheros en otros subdirectorios), no permitir nombres largos de ficheros y de variables. 2.5 Rigidez del programa Algunos programas son muy flexibles pudiéndose cambiar fácilmente aspecto de su funcionamiento y hacer las tareas en el orden deseado. No obstante la rigidez puede tener sus ventajas; cuantas menos opciones tenga el programa y cuanto más estructurado esté más fácil será de aprender. 2.5.1 Adaptación a la medida del usuario No poder apagar los sonidos que se producen cuando se usa el programa y que pueden ser molestos para el usuario, no poder desactivar la distinción entre mayúsculas y minúsculas, no poder adaptarlo al hardware disponible, no poder cambiar la inicialización de un dispositivo y tener que hacerlo directamente en el hardware, no poder desactivar la grabación automática, no poder efectuar desplazamientos hacia abajo lentamente en la pantalla, no poder hacer lo que se hizo por último, no poder averiguar lo que se hizo por última vez, fallo al ejecutar comandos que se hayan personalizado, fallo al guardar comandos personalizados, efectos laterales cuando se producen cambios de las características del programa, fallos al permitir que la personalización sea infinita. 2.5.2 Control sobre el usuario Cuando se imponen estilos conceptuales al usuario organizando su trabajo de una forma determinada, cuando el programa es amigable para los usuario inexpertos y hostil para los ya experimentados, preguntar por información redundante o superflua, obligar a repetir pasos innecesariamente, imponer límites innecesarios. 2.6 Rendimiento B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 17 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L El rendimiento es uno de los aspectos de uso más importantes de un programa. La velocidad es esencial en un software interactivo. El programa es muy lento debido a que hace cosas innecesarias, repite trabajo o comprende decisiones de diseño que hacen que vaya más lento. El programa no muestra en la pantalla las entradas que se van tecleando de forma simultánea, permitiendo que se introduzcan muchos errores. El programa puede reducir el rendimiento del usuario al tardar mucho tiempo en realizar sus tareas con el programa. La capacidad de reacción del programa es baja obligando al usuario a esperar sin que éste pueda introducir el próximo comando. El programa no permite que se teclee mientras esté ocupado. El programa no avisa cuando una operación le va a llevar mucho tiempo. No se informa del progreso, del trabajo realizado y de lo que queda por hacer. Los tiempos muertos pueden ser demasiado largos y también demasiado cortos lo cual puede provocar fallos en el programa. El programa puede agobiar al usuario con llamadas de atención, preguntas y recordatorios innecesarios que pueden ser muy molestos. Los programas deberían proporcionar ayudas y gráficos que se pudieran obtener de forma rápida sin causar irritación al usuario cuando éste disponga de recursos lentos. 2.7 Salida Las salidas deberán ser tan completas como se deseen y legibles por el usuario o programa que deba leerlas. Deben incluir lo que se quiera y en el formato deseado. Deben ir al dispositivo que se quiera. Error al no salir ciertos datos. El programa no permite redireccionar la salida, enviar primero algo que se quiere imprimir a un fichero para luego, una vez editado, imprimirlo. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 18 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Un programa guarda datos en un formato que dice ser reconocible por otro programa y al final el formato es incompatible. No se pueden modificar los informes para presentar sólo la información que se necesita. No se puede controlar el formato de la salida. No se hacen redondeos en los datos de salida y se imprimen con un nivel de precisión absurdo. No se puede controlar desde el programa el etiquetado de tablas o figuras. No se puede controlar desde el programa el escalado de los gráficos. 3 Errores de sobrecarga Los programas no se comportan correctamente cuando hay condiciones de sobrecarga. Todos los programas tienen límites de carga. Son errores debidos a una demanda del programa que no prospera esto es, cuando el programa intenta usar un nuevo dispositivo o almacenar más datos en memoria pero no puede hacerlo. El programa debe informar de que no se dispone de los recursos requeridos, que el disco está lleno, que no se pueden almacenar más datos en memoria, que el dispositivo no existe, que el dispositivo no está disponible, que la impresora está fuera de línea, que la impresora está sin papel, que no hay memoria extendida, que la cola de mensajes está completa, que la cola de impresión está completa, que no está el disco en el dispositivo, que el dispositivo de disco está fuera de servicio o que el directorio de disco está completo. No se retorna un recurso. Los programadores se aseguran de que sus programas obtienen los recursos que necesitan pero no están tan concienciados de la necesidad de devolverlos cuando no los necesitan. Ya que los programas no abortan por estar colgados durante mucho tiempo a un recurso éstos se consideran errores menos urgentes. No indicar mediante el envío de una señal que se ha terminado con un recurso o que falle dicho envío. No borrar viejos ficheros de almacenamientos masivos. No indicar al gestor de memoria que se ha terminado con un segmento de memoria para que sea asignada a otro proceso. Pérdida de tiempo cuando un proceso comprueba eventos que no son posibles o que no son necesarios. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 19 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L No se dispone de grandes áreas de memoria. En el paso de mensajes, en sistemas multiproceso, se reserva una cantidad de memoria para asignarla a los buffers de mensajes para cualquier proceso. Algunos buffers son largos otros sólo unos pocos bytes. Un gran bloque de memoria se podría dividir en varios buffers pequeños; ¿qué ocurre si el programa necesita un bloque de memoria mayor? La profundidad de los “buffers” de entrada y colas no son suficientes. Se pierde mucha información porque no hay espacio suficiente para depositarla. Cuando el proceso no puede procesar la información la deposita en un buffer de entrada o en una cola para cogerlos más tarde, pero a veces éstos no son suficientes. No se borran los elementos de una cola, “buffer” o pila. Se pierden los mensajes. Cuando se llega a los límites de capacidad de la cola de mensajes, qué ocurre. Cuando la carga es muy elevada se dispara el coste de rendimiento. El programa va más lento. Cuando las tareas con baja prioridad no se pueden posponer cuando las condiciones de carga lo requieren. No se puede abreviar cuando las condiciones de carga son altas. Los procesos que generan muchas salidas deberían posponer aquellas que nos sean relevantes. No se reconocen las simplificaciones de los procesos. Cuando las tareas de baja prioridad no se hacen nunca porque siempre se posponen. 4 Errores en el hardware Son errores que se producen al enviar datos incorrectos a los dispositivos, al ignorar los códigos de error que se devuelven o al intentar usar dispositivos que están ocupados o que no están. Cuando el dispositivo es incorrecto; por ejemplo, se imprimen datos en la pantalla en lugar de la impresora. Cuando la dirección del dispositivo es incorrecta. El programa escribe los datos en un dispositivo escribiéndolos en una(s) dirección(es) de memoria, luego la copia física de esta posición de memoria B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 20 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L al dispositivo la hace el hardware. El programa puede escribir los datos en una dirección de memoria incorrecta. Cuando el dispositivo no está disponible. Cuando el dispositivo se retorna a un tipo de “pool” incorrecto. En sistemas multiproceso pueden haber varias impresoras. Un programa puede usar una impresora del tipo A y cuando termina de usarla retorna una señal de fin de uso, si el gestor de recursos marca como disponible una impresora del tipo B se podrá producir un error. Cuando se prohibe el uso de un dispositivo. Un programa que no tiene autorización para usar un dispositivo debe reponerse ante la negativa. Cuando la especificación del nivel de privilegio para un dispositivo es incorrecta. Fallos de transmisión que se produce en el canal de comunicación utilizado para conectar el programa con los dispositivos necesarios (impresora, modem..). Cómo detecta el programa el fallo, qué hace para indicarlo o para corregirlo. Fallos cuando la comunicación se viene abajo. Si dos procesos se están pasando datos a través de un canal y se pierde la conexión. Cómo se reconoce la falta de conexión. Qué es lo que hacen ambos procesos. Fallo cuando el programa envía una señal a un dispositivo y no espera el tiempo suficiente para obtener una respuesta del dispositivo. Cuando no se obtiene respuesta alguna, qué debe hacer el programa. Fallo cuando el dispositivo de almacenamiento está defectuoso. Algunos programas preguntan cuando no encuentran la información esperada en el dispositivo, otros la buscan en otros dispositivos y otros abortan. Fallo al no comprobar el directorio del disco actual ni percatarse de los cambios que se hayan podido producir. Se copia el directorio del disco la primera vez en memoria y no se vuelve a hacer a menos que se indique lo cual provocará que se busque información en el directorio inadecuado. Fallo al no cerrar un fichero con el que se ha estado trabajando antes de salir del sistema. Los ficheros se pueden destruir o corromper cuando se apaga el ordenador. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 21 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L Fallo al encontrarse el programa con un final de fichero inesperado; qué hace si espera encontrarse otro dato. Errores en los sectores del disco y otros errores dependientes de la longitud. Operaciones o códigos de instrucciones incorrectos. Fallos cuando el programa no comprende el estado de un dispositivo ni los códigos de retorno. Errores en el protocolo de comunicación con los dispositivos. Infrautilización de la inteligencia de los dispositivos. Fallos al ignorar los mecanismos de paginación o al no comprenderlos. Fallos al ignorar los límites de rendimiento de los canales de comunicación. Fallo al suponer que un dispositivo está o no está, o debería estar o no debería estar inicializado. Fallo al suponer que las teclas de funciones programables están programadas correctamente. 5 Errores en los fuentes, versiones y en el ID de control Es posible que reaparezcan antiguos problemas si el programador integra una versión vieja de una parte del programa con las últimas versiones del resto de las componentes del programa. Hay que saber cuál es la versión de cada componente del programa que se ha usado o cuál es la versión que se ha instalado al usuario. Se producen reapariciones misteriosas de antiguos errores que se identifican con versiones viejas de algunas componentes del programa. Cuando se repite el código en diferentes módulos del programa se puede producir un fallo al no actualizar los cambios en todas las partes donde se repite el código. Cuando se inicia un programa no hay identificación del programa, no hay título. No hay identificador de la versión. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 22 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L El número de versión que aparece en la pantalla de presentación es incorrecto. Ausencia de mensaje de copyright o mensaje incorrecto. Los fuentes archivados cuando se compilan no se corresponden con el código distribuido. Los discos producidos no funcionan o contienen código o datos erróneos. 6 Errores en la prueba Estos errores no están localizados en el programa son errores cometidos por los técnicos de prueba y están entre los errores más comunes. 6.1 Errores que no se detectan Fallo en la detección del problema (porque no se conoce la respuesta que se debe esperar al ejecutar el caso de prueba, porque no se espera que se produzca el error durante la prueba, porque el técnico está cansado y se despista, porque la prueba es compleja y se pierda atención a la salida). Fallo en la lectura de la pantalla. Fallo al no informar del problema encontrado. Fallo al ejecutar el plan de prueba; porque es demasiado complejo, aburrido o está mal organizado. Fallo al no usar el más prometedor de los casos de prueba. Fallo por ignorar las sugerencias del programador. 6.2 Errores que no están en el programa Errores en los programas que se utilizan para probar automáticamente el software. Errores al usar ficheros de datos que estén corruptos. Fallo al interpretar incorrectamente las especificaciones o la documentación. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 23 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L 6.3 Baja calidad de los informes Los informes son ilegibles. No se reproduce el problema paso a paso. No se dice claramente que un problema no se puede reproducir. No se comprueban los informes una vez realizados. Se intenta simplificar varias pruebas en un único caso de prueba y cuando se encuentra un error se pierde mucho tiempo separando las pruebas para poder reproducir exactamente el error. Se siembra el pánico al exagerar un error. Se hace uso de un lenguaje abusivo. 6.4 Baja calidad de las trazas y del seguimiento de los errores encontrados No se formaliza la tarea de informar a cerca de un error y seguirle la pista a los informes entregados por si se traspapelan. No se informa repetidamente de un error cuando se considera serio y no nos han hecho caso. Confiar en que un error ha sido corregido sin realizar pruebas de regresión. Fallo al no comprobar los errores que no han sido resueltos antes de distribuir el software. 7 Errores en el manejo de errores Los errores en el tratamiento de errores son muy frecuentes. Comprenden errores en la anticipación a posibles errores y en la protección frente a los mismos, fallos al no detectar condiciones de error y fallos al no tratar de forma correcta los errores detectados. 7.1 Prevención de errores B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 24 INSTITUTO GEOGRÁFICO AGUSTÍN CODAZZI S E D E C E N T R A L La comprobación del estado inicial no es la adecuada, la validación las entradas del usuario no es la adecuada, la protección contra datos corruptos es insuficiente, no se realizan pruebas de paso de parámetros entre procedimientos, cuando se instala una nueva versión el código no comprueba que todos los ficheros necesarios estén actualizados a la última versión, protección insuficiente frente a un uso indebido del programa. 7.2 Detección de errores No realizar comprobaciones que detecten: condiciones de desbordamiento, valores imposibles, valores poco convincentes, señalización de errores, fallos en el hardware o en las condiciones de error, y fallos cuando se comparan datos. 7.3 Recuperación de errores Fallo en la corrección automática de errores, fallo al no informar de un error aunque éste se pueda corregir automáticamente, fallo al no señalizar un error cuando se retorna el control a la rutina que hizo la llamada, fallo al no saber a dónde retorna el control cuando se detecta un error, fallo cuando se producen errores que hacen abortar el programa, no es posible la recuperación cuando se producen fallos en el hardware, tener que reiniciar el sistema cuando el programa nos pide un disco que no está disponible. B O G O T Á D . C . Carrera 30 N° 48-51 Conmutador 3694000 -3694100 Fax 3694098 Información al cliente 3683443 – 3694000 Ext. 4674 web: www.igac.gov.co Sistema Gestión de Calidad Certificado 25