Ingeniería de Pruebas
Introducción
Las pruebas son una parte importante en el desarrollo de software. A continuación se explicaran diversos conceptos relacionados a las pruebas.
Desarrollo
Prueba
Se dice que una prueba es la acción de probar a alguien o algo para conocer sus cualidades, verificar su eficacia, saber cómo funciona o reacciona, o qué resultado produce. Básicamente, una prueba consiste en realizar una serie de actividades con el objetivo de encontrar posibles errores y asi medir la calidad o usabilidad de un programa y la manera en la que se comporta.
1. Detectar defectos en el software.
2. Verificar la integración adecuada de los componentes.
3. Verificar que todos los requisitos se han implementado correctamente.
4. Identificar y asegurar que los defectos encontrados se han corregido antes de entregar el software al cliente.
5. Diseñar casos de prueba que sistemáticamente saquen a la luz diferentes clases de errores, haciéndolo con la menor cantidad de tiempo y esfuerzo.
Sin embargo, para que estos objetivos se pueden llevar a cabo, se debe de conocer los principios de pruebas de software.
-La prueba puede ser usada para mostrar la presencia de errores, pero nunca su ausencia.
-La principal dificultad del proceso de prueba es decidir cuándo parar.
-Evitar casos de pruebas no planificados, no reusables y triviales a menos que el programa sea verdaderamente sencillo.
-Una parte necesaria de un caso de prueba es la definición del resultado esperado.
-Los casos de pruebas tienen que ser escritos no solo para condiciones de entrada válidas y esperadas sino también para condiciones no válidas e inesperadas.
-El número de errores sin descubrir es directamente proporcional al número de errores descubiertos.
Objetivos de las pruebas:
Las pruebas son uno de los elementos mas importantes en el mundo de la informática, ya que pueden garantizar el correcto funcionamiento del software. Los objetivos son los siguientes:1. Detectar defectos en el software.
2. Verificar la integración adecuada de los componentes.
3. Verificar que todos los requisitos se han implementado correctamente.
4. Identificar y asegurar que los defectos encontrados se han corregido antes de entregar el software al cliente.
5. Diseñar casos de prueba que sistemáticamente saquen a la luz diferentes clases de errores, haciéndolo con la menor cantidad de tiempo y esfuerzo.
Sin embargo, para que estos objetivos se pueden llevar a cabo, se debe de conocer los principios de pruebas de software.
Principios de las pruebas
Las pruebas están compuestas por una serie de principios, comprenderlos de manera correcta facilitará el posterior uso de los métodos en un efectivo diseño de casos de prueba. Los principios son los siguientes:-La prueba puede ser usada para mostrar la presencia de errores, pero nunca su ausencia.
-La principal dificultad del proceso de prueba es decidir cuándo parar.
-Evitar casos de pruebas no planificados, no reusables y triviales a menos que el programa sea verdaderamente sencillo.
-Una parte necesaria de un caso de prueba es la definición del resultado esperado.
-Los casos de pruebas tienen que ser escritos no solo para condiciones de entrada válidas y esperadas sino también para condiciones no válidas e inesperadas.
-El número de errores sin descubrir es directamente proporcional al número de errores descubiertos.
Fallo
Se define como fallo a la discrepancia visible que se produce al ejecutar un programa con algún defecto, el cual, es incapaz de funcionar correctamente, es decir, no sigue su curso normal.
Defecto
Un defecto se encuentra en un artefacto y puede definirse como una diferencia entre la versión correcta del artefacto y una versión incorrecta. Coincide con la definición de diccionario, imperfección.
Error
Es una equivocación o idea falsa cometida por el desarrollador. Los errores ocurren cuando cualquier aspecto de un producto de software es incompleto, inconsistente o incorrecto. Existen dos tipos de errores, los cuales son:
-Errores de diseño: Se introducen por fallas al traducir los requisitos en estructuras de solución correctas y completas, por inconsistencias tanto dentro de las especificaciones de diseño y como entre las especificaciones de diseño y los requisitos. Un error de requisitos o un error de diseño, que no se descubre sino hasta las pruebas de código fuente, puede ser muy costoso de corregir. De modo que es importante que la calidad de los requisitos y de los documentos del diseño se valoren pronto y con frecuencia.
-Los errores de instrumentación: Son los cometidos al traducir las especificaciones de diseño en código fuente. Estos errores pueden ocurrir en las declaraciones de datos, en las referencias a los datos, en la lógica del flujo de control, en expresiones computacionales, en interfaces entre subprogramas y en operaciones de entrada/salida. La calidad de los productos de trabajo generados durante el análisis y el diseño se puede estimar y mejorar utilizando procedimientos sistemáticos de control de calidad, mediante recorridos e inspecciones y por medio de verificaciones automatizadas para supervisar que sea consistente y que esté completo.
-Errores de diseño: Se introducen por fallas al traducir los requisitos en estructuras de solución correctas y completas, por inconsistencias tanto dentro de las especificaciones de diseño y como entre las especificaciones de diseño y los requisitos. Un error de requisitos o un error de diseño, que no se descubre sino hasta las pruebas de código fuente, puede ser muy costoso de corregir. De modo que es importante que la calidad de los requisitos y de los documentos del diseño se valoren pronto y con frecuencia.
-Los errores de instrumentación: Son los cometidos al traducir las especificaciones de diseño en código fuente. Estos errores pueden ocurrir en las declaraciones de datos, en las referencias a los datos, en la lógica del flujo de control, en expresiones computacionales, en interfaces entre subprogramas y en operaciones de entrada/salida. La calidad de los productos de trabajo generados durante el análisis y el diseño se puede estimar y mejorar utilizando procedimientos sistemáticos de control de calidad, mediante recorridos e inspecciones y por medio de verificaciones automatizadas para supervisar que sea consistente y que esté completo.
Validación
Consiste en comprobar que tanto el algoritmo como el programa cumplen la especificación del problema. También es el peso de comprobar la precisión de los datos; con junto de reglas que se pueden aplicar a un control para especificar el tipo y el intervalo de datos que los usuarios pueden dar. De igual forma podemos decir que la validación: “Es la operación de asegurar que los requerimientos funcionales y no funcionales están implementados de manera correcta y completa en el producto final” En seguridad informática, la validación de datos es una de las áreas más importantes a tener en cuenta, especialmente en el desarrollo de sistemas. Validar datos hace referencia a verificar, controlar o filtrar cada una de las entradas de datos que provienen desde el exterior del sistema.
Verificación
Se le dice verificación a la acción comprobar o examinar la veracidad de algo. También podemos decir que es la operación de establecer las especificaciones y entradas adecuadas a una actividad y la de establecer que las salidas de las actividades son correctas y consistentes con las especificaciones y la entrada.
Técnicas de Verificación
Existen algunas técnicas de Verificación de Software principales que son:
-Verificación Formal de Programas y Modelos.
-Testing.
-Simulación.
-Verificación de Modelos.
-Construcción Formal de Programas.
-Verificación Formal de Programas y Modelos.
-Testing.
-Simulación.
-Verificación de Modelos.
-Construcción Formal de Programas.
Conclusión
En un proyecto de desarrollo de software existe la posibilidad de que existan errores, fallos y defectos que a veces permanecen sin ser descubiertos, lo que compromete que el producto final no cumpla con los requerimientos y no funcione como era esperado. Gracias a las pruebas se pueden llegar a descubrir los errores, fallos y errores de un proyecto y así erradicar cada uno de esos problemas. Las pruebas son una parte tanto importante como costosa en el proceso de desarrollo de software ya que representa entre el 30 y 50% del costo total del desarrollo de software, aunque sea caro vale la pena, pues, los costos en las fallas en un software en uso pueden llegar a ser catastróficos y de costo mucho mayor. Las pruebas en el desarrollo de software tienen un rol muy importante en el aseguramiento de calidad, pues su principal función es la de buscar errores en las etapas que se desarrolla el proyecto. Las pruebas también sirven para determinar la consistencia entre los requerimientos y el producto final, si se está construyendo el producto correctamente. Las pruebas no tienen el objetivo de prevenir errores, sino de encontrarlos, el objetivo de las pruebas es encontrar el mayor numero de errores posible. Las pruebas nos llevan a descubrir errores, que la mayoría de veces está relacionado con la funcionalidad, es decir, las cosas que debería de hacer el sistema, y así poder erradicar cualquier tipo de error que hay en nuestro sistema para aumentar la calidad del sistema, haciéndolo robusto frente a los fallos. Los beneficios de las pruebas de verificación y validación no solo repercuten en el ahorro de costes ni en el desarrollo del proyecto, sino que también aseguran que el cliente esté satisfecho con el producto final. La mejor forma de hacer pruebas es tan pronto como sea posible, ya que pueden evitar que los errores sigan creciendo y no se puedan erradicar. La implementación de pruebas en el desarrollo de un proyecto nos puede brindar el conocimiento de las condiciones en la que se encuentra nuestro programa y puede medir la calidad del mismo, para que los usuarios y el cliente estén satisfechos. También es importante mencionar que cuando se quiera hacer una prueba se debe de dividir por etapas y no acumular las pruebas hasta las ultimas etapas del desarrollo, ya que se puede comprometer la calidad del producto, pues es más difícil identificar en que parte del proyecto se está presentando el inconveniente y también erradicarlo. Todos estos métodos y mecanismos que se llevan en las pruebas nos pueden decir que tan bueno es el sistema que desarrollamos aparte de identificar los errores para poder solucionarlos y así poder hacer que nuestro sistema sea un software de alta calidad.
Referencias bibliográficas:
1. Nieves, D. (mayo 4, 2014). Pruebas de software. agosto 27, 2017, de EcuRed Sitio web: https://www.ecured.cu/Pruebas_de_software
2. García D. (enero 12, 2008). Falla - Error - Defecto. agosto 27, 2017, de Ingeniería Software Sitio web: http://clases3gingsof.wikifoundry.com/page/Falla+-+Error+-+Defecto
2. García D. (enero 12, 2008). Falla - Error - Defecto. agosto 27, 2017, de Ingeniería Software Sitio web: http://clases3gingsof.wikifoundry.com/page/Falla+-+Error+-+Defecto
Comentarios
Publicar un comentario