Ir al contenido principal

Tarea 1. Ingeniería de Pruebas

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.
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.

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.
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

Comentarios

Entradas más populares de este blog

Conclusiones: Soporte de Software, Mantenimiento de Software y Soporte Técnico

  Conclusiones El software es parte indispensable de nuestra vida cotidiana, ya que lo utilizamos en todas partes y es indispensable para todos. Empresas y Organizaciones suelen utilizar software para poder automatizar y mejorar la producción. En la actualidad es habitual que el software de soporte avanzado permita a los técnicos la motorización continua de todos los dispositivos de la organización, la verificación remota del correcto funcionamiento, la obtención de parámetros de funcionamiento que permiten adelantarse a posibles errores así como la posibilidad de tomar el control remoto de ordenadores y servidores sin la necesidad de desplazarse para solucionar el problema. Otro aspecto a tomar en cuenta es el servicio de mantenimiento de software, que es el proceso de mejorar y optimizar el software desplegado, así como también remediar los defectos. Y por ultimo el soporte técnico es un rango de servicios por medio del cual se proporciona asistencia a los usuarios al tener ...

RMI

  Introducción RMI ("Remote Method Invocation") es un mecanismo para invocar/ejecutar procedimientos remotos en computadoras o servidores distribuidos. La gran mayoría de los sistemas empresariales hoy en día requieren de esta funcionalidad , esto se debe tanto a distancias geográficas como a requerimientos de computo, ya que seria iluso pensar que las necesidades de computo de TODA una empresa fueran satisfechas por una sola computadora y/o servidor. A continuacion hablaremos mas a detalle sobre lo que ofrece RMI. . Desarrollo ¿Qué es RMI? RMI ("Remote Method Invocation") es el mecanismo ofrecido en Java que permite a un procedimiento poder ser invocado remotamente. Una de las ventajas al diseñar un procedimiento con RMI es interoperabilidad , ya que RMI forma parte de todo JDK , por ende, cualquier plataforma que tenga acceso a un JDK también tendrá acceso a estos procedimientos. RMI se caracteriza por la facilidad de su uso en la programación por estar...

Seguridad: Kerberos

Seguridad web y aplicaciones Introducción La seguridad e integridad de sistemas dentro de una red puede ser complicada. Puede ocupar el tiempo de varios administradores de sistemas sólo para mantener la pista de cuáles servicios se estan ejecutando en una red y la manera en que estos servicios son usados. Más aún, la autenticación de los usuarios a los servicios de red puede mostrarse peligrosa cuando el método utilizado por el protocolo es inseguro, como se evidencia por la transferencia de contraseñas sin encriptar sobre la red bajo los protocolos FTP y Telnet. Kerberos es una forma eliminar la necesidad deaquellos protocolos que permiten métodos de autenticación inseguros, y de esta forma mejorar la seguridad general de la red. . Desarrollo ¿Qué es Kerberos? El servicio Kerberos es una arquitectura cliente-servidor que proporciona seguridad a las transacciones en las redes. El servicio ofrece una sólida autenticación de usuario y también integridad y privacidad. La auten...