Tarea #2 Pruebas "Proceso de depuración"
Preoceso de depuracion
ISLAS OBED
Introduccion
Como norma general, al programar se debería intentar escribir el código correcto, limpio y eficiente desde la primera versión de un programa.
Sin embargo a pesar de todo el código puede contener errores o estar realizado de forma ineficiente
Conceptos:
Proceso de depuración: Proceso que localiza y corrige los errores descubiertos durante la verificación y validación.
Verificación: Se comprueba que el software cumple los requisitos funcionales y no funcionales de su especificación.(¿Estamos construyendo el producto correctamente? )
Validación: Comprueba que el software cumple las expectativas que el cliente espera (¿Estamos construyendo el producto correcto?)
Conceptos:
Proceso de depuración: Proceso que localiza y corrige los errores descubiertos durante la verificación y validación.
Verificación: Se comprueba que el software cumple los requisitos funcionales y no funcionales de su especificación.(¿Estamos construyendo el producto correctamente? )
Validación: Comprueba que el software cumple las expectativas que el cliente espera (¿Estamos construyendo el producto correcto?)
Desarrollo
Si un programa contiene errores no es que no sea eficiente, es que no funciona,o lo que es peor, no hace lo que se espera de él.
La detección y eliminación de los errores en un programa recibe el nombre genérico de depuración. La depuración de un programa suele realizarse en dos pasos: Primero localizar donde se ha detectado el error para despues, desde este punto retroceder hasta encontrar lo que ha producido el problema.
Cuando se depura un programa se hace un seguimiento del funcionamiento de dicho programa y se van estudiando los valores de las distintas variables, así como los resultados obtenidos en las operaciones.
No existe un proceso sencillo para la depuración de programas. Los mejores depuradores buscan patrones en los resultados de las pruebas donde el defecto se detecta, y para localizar el defecto utilizan el conocimiento que tienen sobre el tipo de defecto, el patrón de salida, así como del lenguaje y proceso de programación.
El conocimiento del proceso es importante. Los depuradores conocen los errores de los programadores comunes y los comparan contra los patrones observados.
Localizar los fallos es un proceso complejo porque los fallos no necesariamente se localizan cerca del punto en que se detectan. Para localizar un fallo de un programa el programador responsable de la depuración tiene que diseñar programas de prueba adicionales que repitan el fallo original y que ayudan a descubrir el origen del fallo.
En estos casos las herramientas de depuración que permiten rastrear el programa y visualizar los resultados intermedios es de una gran ayuda.
Las herramientas de depuración son habitualmente parte de las herramientas de apoyo al lenguaje y que sirven de base al compilador. Proporcionan un entorno especial de ejecución que permiten acceder a las tablas de símbolos del compilador, a través de ella a los valores de las variables del programa. Habitualmente, permiten controlar la ejecución paso a paso sobre el código del programa.
Después de que se descubre el origen del fallo en el programa, este debe corregirse y entonces reevaluar el sistema. Esto implica repetir de nuevo las pruebas anteriores (pruebas de regresión). Estas pruebas se hacen para comprobar que los cambios introducidos resuelven definitivamente el fallo y no introducen nuevos fallos. La estadística muestra que la reparación de un fallo frecuentemente es incompleta y además introduce nuevos fallos.
Llevar a cabo pruebas sistemáticas de los programas requiere que se desarrollen, ejecuten y examinen diferentes pruebas. Este proceso es muy largo y caro. Cada ejecución de una prueba suele descubrir, en el mejor de los casos, un único fallo, ya que la caída del sistema o la corrupción de los datos que puede implicar hace que sea difícil encontrar el siguiente. Por el contrario la inspección del software no requiere que el programa se ejecute cono lo que se puede utilizar como técnica de verificación antes de que el sistema esté totalmente implementado. Durante una inspección, se examina el código fuente del sistema y se compara con la especificación del mismo que se dispone. Se ha comprobado estadísticamente que la inspección es una técnica mucho mas eficiente para la detección de errores que la verificación basada en pruebas. Es mas barato encontrar errores a través de la inspección que con pruebas, y además se considera que el 60% de los errores se detectan mediante una inspección rutinaria, y hasta un 90% de los errores se detectan mediante una inspección sistemática.
La detección y eliminación de los errores en un programa recibe el nombre genérico de depuración. La depuración de un programa suele realizarse en dos pasos: Primero localizar donde se ha detectado el error para despues, desde este punto retroceder hasta encontrar lo que ha producido el problema.
Cuando se depura un programa se hace un seguimiento del funcionamiento de dicho programa y se van estudiando los valores de las distintas variables, así como los resultados obtenidos en las operaciones.
No existe un proceso sencillo para la depuración de programas. Los mejores depuradores buscan patrones en los resultados de las pruebas donde el defecto se detecta, y para localizar el defecto utilizan el conocimiento que tienen sobre el tipo de defecto, el patrón de salida, así como del lenguaje y proceso de programación.
El conocimiento del proceso es importante. Los depuradores conocen los errores de los programadores comunes y los comparan contra los patrones observados.
Localizar los fallos es un proceso complejo porque los fallos no necesariamente se localizan cerca del punto en que se detectan. Para localizar un fallo de un programa el programador responsable de la depuración tiene que diseñar programas de prueba adicionales que repitan el fallo original y que ayudan a descubrir el origen del fallo.
En estos casos las herramientas de depuración que permiten rastrear el programa y visualizar los resultados intermedios es de una gran ayuda.
Las herramientas de depuración son habitualmente parte de las herramientas de apoyo al lenguaje y que sirven de base al compilador. Proporcionan un entorno especial de ejecución que permiten acceder a las tablas de símbolos del compilador, a través de ella a los valores de las variables del programa. Habitualmente, permiten controlar la ejecución paso a paso sobre el código del programa.
Después de que se descubre el origen del fallo en el programa, este debe corregirse y entonces reevaluar el sistema. Esto implica repetir de nuevo las pruebas anteriores (pruebas de regresión). Estas pruebas se hacen para comprobar que los cambios introducidos resuelven definitivamente el fallo y no introducen nuevos fallos. La estadística muestra que la reparación de un fallo frecuentemente es incompleta y además introduce nuevos fallos.
Llevar a cabo pruebas sistemáticas de los programas requiere que se desarrollen, ejecuten y examinen diferentes pruebas. Este proceso es muy largo y caro. Cada ejecución de una prueba suele descubrir, en el mejor de los casos, un único fallo, ya que la caída del sistema o la corrupción de los datos que puede implicar hace que sea difícil encontrar el siguiente. Por el contrario la inspección del software no requiere que el programa se ejecute cono lo que se puede utilizar como técnica de verificación antes de que el sistema esté totalmente implementado. Durante una inspección, se examina el código fuente del sistema y se compara con la especificación del mismo que se dispone. Se ha comprobado estadísticamente que la inspección es una técnica mucho mas eficiente para la detección de errores que la verificación basada en pruebas. Es mas barato encontrar errores a través de la inspección que con pruebas, y además se considera que el 60% de los errores se detectan mediante una inspección rutinaria, y hasta un 90% de los errores se detectan mediante una inspección sistemática.
Conclusión
Al desarrollar proyectos de software es necesario verificar y validar, para ello utilizamos las pruebas. Como se explicó, el proceso de depuracion saca a la luz un listado de errores, para despues corregirlos.
Concluimos que el proceso de depuracion consiste en cuatro pasos, primero la identificación de errores(esto mediante el uso de pruebas),seguido del diseño de la reparacion de los errores, posteriormente se lleva acabo la reparación de los errores y por ultimo se realizan nuevamente pruebas para verificar que los errores(o al menos la mayoría)se hayan reuelto.
En cada repetición salen a la luz como mínimo un error, seguramente se tiene que repetir varias veces hasta tener el minimo numero de errores, pero también, al aplicar el proceso de depuración pueden resultar un gran numero de nuevos errores. Por ello es necesario realizar el proceso de depuración con tiempo de anticipación para poder corregir todos los errores posibles para entregar en tiempo y forma el producto al cliente.
Concluimos que el proceso de depuracion consiste en cuatro pasos, primero la identificación de errores(esto mediante el uso de pruebas),seguido del diseño de la reparacion de los errores, posteriormente se lleva acabo la reparación de los errores y por ultimo se realizan nuevamente pruebas para verificar que los errores(o al menos la mayoría)se hayan reuelto.
En cada repetición salen a la luz como mínimo un error, seguramente se tiene que repetir varias veces hasta tener el minimo numero de errores, pero también, al aplicar el proceso de depuración pueden resultar un gran numero de nuevos errores. Por ello es necesario realizar el proceso de depuración con tiempo de anticipación para poder corregir todos los errores posibles para entregar en tiempo y forma el producto al cliente.
Fuentes
- Stallings W(2004).FUNDAMENTOS DE SEGURIDAD EN REDES. APLICACIONES Y ESTÁNDARES. Madrid, España: Pearson Educación.
- Drake José M. & López Patricia (2011) Ingeniería Software Validación y verificación https://www.ctr.unican.es/asignaturas/Ingenieria_Software_4_F/Doc/M7_09_VerificacionValidacion-2011.pdf
Comentarios
Publicar un comentario