Ingeniería de Pruebas
Introducción
En un proyecto o programa es de vital importancia hacer una búsqueda de errores o vulnerabilidades. Los errores son muy comunes a la hora de programar y aunque sean pequeños, pueden comprometer la calidad del programa, pues hacen que se presenten fallos en él. Una de las formas más eficaces de encontrar errores es utilizando un proceso de depuración.
Desarrollo
Depuración
El concepto depuración en informática se refiere al proceso de limpieza que se realiza en un programa para identificar y corregir errores o problemas de programación. Del inglés debugging que viene a ser la traducción literal de eliminación de bichos (bugs), nombre con el que se conoce coloquialmente a los errores de programación.
La depuración es la corrección de errores que sólo afectan a la programación, porque no provienen de errores previos en el análisis o en el diseño. A veces la depuración se hace luego de la entrega del sistema al cliente y es parte del mantenimiento.
La depuración es la corrección de errores que sólo afectan a la programación, porque no provienen de errores previos en el análisis o en el diseño. A veces la depuración se hace luego de la entrega del sistema al cliente y es parte del mantenimiento.
Proceso de depuración
El proceso de depuración consta de los siguientes pasos, los cuales se repiten cíclicamente:
1. Resultados
Estos se derivan a través de la ejecución del programa. Es la respuesta que da el programa a partir de una entrada y se buscan los errores generados.
2. Causas identificadas
Se identifican y plantean las causas del error del programa.
3. Correcciones
Se modifica el código fuente, erradicando los errores que se identificaron.
4. Pruebas de regresión
Se realiza cuando el software o su entorno han sido modificados. Son pruebas de un programa previamente probado que ha sufrido modificaciones, para asegurarse que no se han introducido o descubierto defectos en áreas del software que no han sido modificadas como resultado de los cambios realizados.
5. Casos de prueba
Es el conjunto de condiciones o variables bajo las cuáles un analista determinará si un programa o proyecto, o una característica de éstos es parcial o completamente satisfactoria.
Hay muchos formatos para hacer un caso de prueba, pero en realidad no existe un formato único para diseñarlos, dado que dependiendo la situación será necesario personalizar los datos para ajustarlo a lo que se requiere probar, sin embargo hay campos mínimos que se deben contemplar en todos los casos y estos son:
-Identificador: identifica el caso de prueba, puede ser numérico o alfanumérico, la idea es que un caso de prueba se diferencie de otro caso a través de este indicador.
-Nombre del Caso de Prueba: es un nombre descriptivo del caso de prueba, en algunos procesos de calidad se hace necesario cumplir una nomenclatura clara y definida.
-Precondición: hace referencia a lo que se debe tener listo para la ejecución del caso de prueba, pueden ser la ejecución de otros casos de pruebas, un archivo, la creación de un dato, entre otros.
-Pasos: Define las acciones de usuario expresadas en términos de negocio y del aplicativo para la ejecución del caso de prueba, como por ejemplo ingresar el nombre en el campo “Nombre usuario” o hacer clic en el botón “Enviar”.
-Resultado esperado: Este apartado es muy importante, porque es el que determina si la ejecución del caso va siendo exitosa por cada paso, en algunos pasos de prueba no es necesario tener siempre un resultado esperado, se recomienda que se utilice en los pasos de mayor importancia para el negocio, como lo puede ser al momento de crear un usuario y se genera una ventana de confirmación, en ese caso si es válido tener un resultado esperado como “Se genera la ventana confirmación de xyz” y se puede apoyar también en una imagen que haga referencia al resultado deseado.
-Dato de Prueba: los pasos de pruebas se apoyan en datos, es por esto que por cada paso de prueba se puede hacer necesario especificar cuál es el dato a usar. Como lo puede ser un nombre de usuario, un password, etc.
-Resultado Real: como se busca que los casos de pruebas sean reproducibles las veces que sean necesarios, esta opción permite al analista estar registrando los sucesos de cada paso (Donde sea necesario, no implica uno a uno de los pasos).
Hay muchos formatos para hacer un caso de prueba, pero en realidad no existe un formato único para diseñarlos, dado que dependiendo la situación será necesario personalizar los datos para ajustarlo a lo que se requiere probar, sin embargo hay campos mínimos que se deben contemplar en todos los casos y estos son:
-Identificador: identifica el caso de prueba, puede ser numérico o alfanumérico, la idea es que un caso de prueba se diferencie de otro caso a través de este indicador.
-Nombre del Caso de Prueba: es un nombre descriptivo del caso de prueba, en algunos procesos de calidad se hace necesario cumplir una nomenclatura clara y definida.
-Precondición: hace referencia a lo que se debe tener listo para la ejecución del caso de prueba, pueden ser la ejecución de otros casos de pruebas, un archivo, la creación de un dato, entre otros.
-Pasos: Define las acciones de usuario expresadas en términos de negocio y del aplicativo para la ejecución del caso de prueba, como por ejemplo ingresar el nombre en el campo “Nombre usuario” o hacer clic en el botón “Enviar”.
-Resultado esperado: Este apartado es muy importante, porque es el que determina si la ejecución del caso va siendo exitosa por cada paso, en algunos pasos de prueba no es necesario tener siempre un resultado esperado, se recomienda que se utilice en los pasos de mayor importancia para el negocio, como lo puede ser al momento de crear un usuario y se genera una ventana de confirmación, en ese caso si es válido tener un resultado esperado como “Se genera la ventana confirmación de xyz” y se puede apoyar también en una imagen que haga referencia al resultado deseado.
-Dato de Prueba: los pasos de pruebas se apoyan en datos, es por esto que por cada paso de prueba se puede hacer necesario especificar cuál es el dato a usar. Como lo puede ser un nombre de usuario, un password, etc.
-Resultado Real: como se busca que los casos de pruebas sean reproducibles las veces que sean necesarios, esta opción permite al analista estar registrando los sucesos de cada paso (Donde sea necesario, no implica uno a uno de los pasos).
6. Ejecución de casos
Se llevan a cabo los casos de prueba y de allí se generan los resultados.
Conclusión
La verificación o depuración es de vital importancia en el desarrollo de un proyecto. Este proceso nos ayuda no solo a encontrar los errores que se encuentran dentro del programa sino que tiene una metodología que puede facilitar la forma en la que se pueden evaluar los errores, para así poder identificarlos y corregirlos. Gracias a la depuración se pueden identificar los errores y así se resuelven los problemas más rápidamente y eficientemente. Dejar de lado el proceso de depuración podría comprometer la calidad del producto que se está desarrollando, pues, el principal objetivo de este es la búsqueda de errores para así poder corregirlos. Si no se sigue este proceso, es muy probable que el código del proyecto o de la aplicación que se esté desarrollando contenga errores, los cuales pueden producir fallos y graves problemas. Se dice que en la industria de software, por lo general, hay 15 errores por cada 1000 lineas de programa. Aunque esto se considere como poco, puede significar un gran problema, ya que puede ser mas propenso a fallar. Por otro lado la baja calidad de software va de la mano con los errores que existen dentro de un programa. Los errores y fallos pueden llegar a ser más caros que hacer un proceso de depuración, ya que pueden legar a ocasionar daños, acciones legales, entre otro tipo de cosas. Ademas, el mantenimiento de un programa también es muy caro y quita mucho tiempo. Por lo tanto, el proceso de depuración nos ayuda en el desarrollo de un programa, pues nos ayuda a resolver los errores en tiempo y forma para que después no tengamos que hacerlo. También ayuda a mejorar la calidad del producto debido a la corrección de errores, lo que hace que nuestro programa sea más eficiente y seguro.
Referencias bibliográficas:
1. Rodrígez, E. (Octubre 24, 2012). Estrategias y técnicas de prueba del software. Septiembre 7, 2017, de Cinvestav. Sitio web: http://www.tamps.cinvestav.mx/~ertello/swe/sesion15.pdf
2. Sánchez, A. (Marzo 12, 2008). Depuración y Optimización de Programas. Septiembre 7, 2017, de Universidad de Barcelona. Sitio web: http://www.ub.edu/stat/docencia/Cursos-R/Radvanced/materials/DepuracionYOptimizacion.pdf
2. Sánchez, A. (Marzo 12, 2008). Depuración y Optimización de Programas. Septiembre 7, 2017, de Universidad de Barcelona. Sitio web: http://www.ub.edu/stat/docencia/Cursos-R/Radvanced/materials/DepuracionYOptimizacion.pdf
Comentarios
Publicar un comentario