1 / 18

Pruebas del software

Laura Patricia Pinto Prieto. Pruebas del software. Diseño de casos de prueba.

Download Presentation

Pruebas del software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Laura Patricia Pinto Prieto Pruebas del software

  2. Diseño de casos de prueba • Prueba de caja negra :Conociendo la función específica para la que fue diseñado el producto, se pueden llevar a cabo pruebas que demuestren que cada función es completamente operativa y, al mismo, tiempo buscando errores en cada función; • Prueba de caja blanca : Conociendo el funcionamiento del producto, se pueden desarrollar pruebas que aseguren que «todas las piezas encajan», o sea, que la operación interna se ajusta a las especificaciones y que todos los componentes internos se han comprobado de forma adecuada.

  3. Diseño de casos de prueba.Enfoques principales (Piattini et al. 96) Pruebas de Software

  4. Diseño de casos de prueba.Comparación de los Enfoques principales a) Enfoque estructural o de caja blanca (transparente): • se centra en la estructura interna del programa para elegir los casos de prueba • la prueba exhaustiva consistiría en probar todos los posibles caminos de ejecución • nº caminos lógicos  ( buscar los más importantes) b) Enfoque funcional o de caja negra: • para derivar los casos, se estudia la especificación de las funciones, la entrada y la salida. • No son excluyentes. Pruebas de Software

  5. Prueba de caja Negra • Las pruebas de caja negra, también denominada prueba de comportamiento, se centran en los requisitos funcionales del software. O sea, la prueba de caja negra permite al ingeniero del software obtener conjuntos de condiciones de entrada que ejerciten completamente todos los requisitos funcionales de un programa. • La prueba de caja negra intenta encontrar errores de las siguientes categorías: (1) funciones incorrectas o ausentes, (2) errores de interfaz, (3) errores en estructuras de datos o en accesos a bases de datos externas, (4) errores de rendimiento y (5) errores de inicialización y de terminación. Pruebas de Software

  6. Preguntas • ¿Cómo se prueba la validez funcional? • ¿Cómo se prueba el rendimiento y el comportamiento del sistema? • ¿Qué clases de entrada compondrán unos buenos casos de prueba? • ¿Es el sistema particularmente sensible a ciertos valores de entrada? • ¿De qué forma están aislados los límites de una clase de datos? • ¿Qué volúmenes y niveles de datos tolerará el sistema? • ¿Qué efectos sobre la operación del sistema tendrán combinaciones específicas de datos?

  7. Métodos de prueba • Métodos de prueba basados en grafos: El primer paso en la prueba de caja negra es entender los objetos que se modelan en el software y las relaciones que conectan a estos objetos. Una vez que se ha llevado a cabo esto, el siguiente paso es definir una serie de pruebas que verifiquen que «todos los objetos tienen entre ellos las relaciones esperadas» [BEI95]. Dicho de otra manera, la prueba del software empieza creando un grafo de objetos importantes y sus relaciones, y después diseñando una serie de pruebas que cubran el grafo de manera que se ejerciten todos los objetos y sus relaciones para descubrir los errores.

  8. Partición equivalente La partición equivalente es un método de prueba de caja negra que divide el campo de entrada de un programa en clases de datos de los que se pueden derivar casos de prueba. Un caso de prueba ideal descubre de forma inmediata una clase de errores (por ejemplo, proceso incorrecto de todos los datos de carácter) que, de otro modo, requerirían la ejecución de muchos casos antes de detectar el error genérico. La partición equivalente se dirige a la definición de casos de prueba que descubran clases de errores, reduciendo así el número total de casos de prueba que hay que desarrollar.

  9. Las clases de equivalencia se pueden definir de acuerdo con las siguientes directrices: 1. Si una condición de entrada especifica un rango, se define una clase de equivalencia válida y dos no válidas. 2. Si una condición de entrada requiere un valor específico, se define una clase de equivalencia válida y dos no válidas. 3. Si una condición de entrada especifica un miembro de un conjunto, se define una clase de equivalencia válida y una no válida. 4. Si una condición de entrada es lógica, se define una clase de equivalencia válida y una no válida.

  10. ejemplo • Como ejemplo, consideremos los datos contenidos en una aplicación de automatización bancaria. El usuario puede «llamar» al banco usando su ordenador personal, dar su contraseña de seis dígitos y continuar con una serie de órdenes tecleadas que desencadenarán varias funciones bancarias. El software proporcionado por la aplicación bancaria acepta datos de la siguiente forma: • Código de área: en blanco o un número de tres dígitos • Prefijo: número de tres dígitos que no comience por O0 1 • Sufijo: número de cuatro dígitos • Contraseña: valor alfanumérico de seis dígitos • Órdenes: «comprobar», «depositar», «pagar factura », etc.

  11. Análisis de valores límite • Por razones que no están del todo claras, los errores tienden a darse más en los límites del campo de entrada que en el «centro». Por ello, se ha desarrollado el análisis de valores límites (AVL) como técnica de prueba. El análisis de valores límite nos lleva a una elección de casos de prueba que ejerciten los valores límite.

  12. Las directrices de AVL 1. Si una condición de entrada especifica un rango delimitado por los valores a y b, se deben diseñar casos de prueba para los valores a y b, y para los valores justo por debajo y justo por encima de a y b, respectivamente. 2. Si una condición de entrada especifica un número de valores, se deben desarrollar casos de prueba que ejerciten los valores máximo y mínimo. También se deben probar los valores justo por encima y justo por debajo del máximo y del mínimo. 3. Aplicar las directrices 1 y 2 a las condiciones de salida. Por ejemplo, supongamos que se requiere una tabla de «temperatura / presión» como salida de un programa de análisis de ingeniería. Se deben diseñar casos de prueba que creen un informe de salida que produzca el máximo (y el mínimo) número permitido de entradas en la tabla. 4. Si las estructuras de datos internas tienen límites preestablecidos (por ejemplo, una matriz que tenga un límite definido de 100 entradas), hay que asegurarse de diseñar un caso de prueba que ejercite la estructura de datos en sus límites.

  13. La mayoría de los ingenieros del software llevan a cabo de forma intuitiva alguna forma de AVL. Aplicando las directrices que se acaban de exponer, la prueba de límites será más completa y, por tanto, tendrá una mayor probabilidad de detectar errores.

  14. Prueba de comparación • Hay situaciones (por ejemplo, aviónica de aeronaves, control de planta nuclear) en las que la fiabilidad del software es algo absolutamente crítico. En ese tipo de aplicaciones, a menudo se utiliza hardware y software redundante para minimizar la posibilidad de error. Cuando se desarrolla software redundante, varios equipos de ingeniería del software separados desarrollan versiones independientes de una aplicación, usando las mismas especificaciones. En esas situaciones, se deben probar todas las versiones con los mismos datos de prueba, para asegurar que todas proporcionan una salida idéntica. Luego, se ejecutan todas las versiones en paralelo y se hace una comparación en tiempo real de los resultados, para garantizar la consistencia.

  15. Pruebas de entornos especializados, arquitecturas y aplicaciones • Prueba de interfaces gráficas de usuario • Prueba de arquitectura cliente/servidor • Prueba de sistemas de tiempo-real • Prueba de la documentación y facilidades de ayuda : • La prueba de la documentación se puede enfocar en dos fases. La primera fase, la revisión e inspección , examina el documento para comprobar la claridad editorial. La segunda fase, la prueba en vivo, utiliza la documentación junto al uso del programa real

  16. BIBLIOGRAFIA • Fairley R. Ingeniería de Software. • Pressman, R.S. Ingeniería del Software. Un enfoque práctico. • Presentación de Juan Antonio López Quesada. Facultado de Informática.

More Related