Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 Ingeniería del Software 4k1-4k2 UNIDAD 3: Aseguramiento de calidad de proceso y de producto 3.1 Conceptos de calidad – La tendencia de la calidad 3.2 Calidad del software – Modelos de calidad existentes (CMMI – ISO) 3.3 Revisiones del software – Revisiones técnicas formales 3.4 Fiabilidad del software - El plan de SQA. 3.5 Diseño del plan de pruebas: pruebas unitarias y de integración 3.6 Pruebas del Sistema. Bibliografía para consultar y abarca los siguientes temas de la unidad 3: 3.1 Conceptos de calidad – La tendencia de la calidad 3.5 Diseño del plan de pruebas: pruebas unitarias y de integración [1] Sommerville Ian. Ingeniería del Software. 9 na Edición Capítulo 8: “Pruebas de Software” [2] Pressman Roger. Ingeniería del Software. 7ma Edición Capítulo 15: Concepto de calidad Capítulo 18:” Prueba de aplicaciones convencionales” Repaso de los conceptos sobre pruebas del software • Pregunta participativa (realizada durante la clase) Antes de iniciar el tema respondan la siguiente pregunta: dada la siguiente clase Cliente, decir o explicar ¿Cómo realizarían la prueba de la clase Cliente? 1. public class Cliente_cuenta_corriente { 2. public static final String EL_MONTO_A_PAGAR_EXCEDE_LA_DEUDA = "el monto a pagar excede la deuda"; 3. private static int DEUDA_MAXIMA = 100; 4. private String nombre; 5. private String apellido; 6. public double deuda = 0; 7. public Cliente_cuenta_corriente (String nombre, String apellido) { 8. this.nombre = nombre; 9. this.apellido = apellido; 10. } 11. public boolean esMorosx() { 12. return deuda > 0; 13. } 14. public void pagar(double monto) { 15. if (deuda < monto) {throw new RuntimeException (EL_MONTO_A_PAGAR_EXCEDE_LA_DEUDA); 16. } 17. deuda = deuda - monto; 18. } 2 • Respuestas obtenidas: Tener una instancia de la clase Cliente Ingreso un dato sobre la deuda Hay dos métodos para probar: pagar, esMorosx Ejecuto el método esMorosox Valido (o compruebo) que el resultado obtenido coincide con el resultado esperado según el dato que ingrese para deuda Considerando las respuestas, el método seleccionado para realizar la prueba a la clase Cliente es el método de caja negra. Es así, porque no se ha tenido en cuenta las estructuras de control del código fuente, específicamente de los dos métodos (esMorosx() y pagar()) y se ha centrado la atención en el dominio de la información o los datos que se usan en los métodos, para el ejemplo en el método esMorosx(). Otro método para realizar las pruebas se denomina prueba de caja blanca. En este enfoque se usa el conocimiento de la estructura del código fuente del programa y sus componentes para diseñar pruebas de defecto. El acceso al código fuente es esencial para las pruebas de caja blanca porque se deben revisar todas las decisiones lógicas en sus dos lados verdadero y falso, se revisan todas las estructuras de datos internas para garantizar su validez y se garantiza que se ejecuten toda la ruta lógica al menos una vez. ¿Cómo voy a realizar la prueba? Usando métodos para realizar las pruebas Los métodos de caja negra y caja blanca para realizar las pruebas son las formas en que se realizan las pruebas aplicando un conjunto de técnicas o estrategias. La siguiente tabla muestra algunos ejemplos de técnicas o estrategias a aplicar: Vistas de las pruebas Los métodos y sus técnicas Bibliografía Vista externa • Pruebas de caja negra o Pressman Roger. Ingeniería del Software. 7ma Edición. Sección 18.6 Prueba partición o Pressman Roger. Ingeniería del Software. 7ma Edición. Sección 18.6.2 o Sommerville Ian. Ingeniería del Software. Sección 8.1.2 Análisis de los valores límites o Pressman Roger. Ingeniería del Software. 7ma Edición. Sección 18.6.3 o Sommerville Ian. Ingeniería del Software. Sección 8.1.2 Vista interna • Pruebas de caja blanca o Pressman Roger. Ingeniería del Software. 7ma Edición. Sección 18.3 Prueba de trayectoria básica o Pressman Roger. Ingeniería del Software. 7ma Edición. Sección 18.4 Prueba de bucles o Pressman Roger. Ingeniería del Software. 7ma Edición. Sección 18.5.3 3 Las pruebas del programa, donde el sistema se ejecuta a través de datos de prueba simulados y/o reales, son la principal técnica de validación y verificación. Los errores en los componentes del programa pueden salir a la luz durante las pruebas. En consecuencia, el proceso de pruebas es iterativo. Entonces ahora nos surge otra pregunta: ¿Cuándo realizo las pruebas? Para responder esta pregunta, vamos a vincular el proceso de pruebas con las etapas del ciclo de desarrollo usando el modelo conocido como modelo en V (V&V). Podemos ver el modelo en V en la siguiente figura: Sommervile Ian. Ingeniería del Software. 9na Edición. Figura: 2.7 Tal como podemos observar en el modelo en V, las pruebas se realizan en varias etapas de desarrollo. También se conocen como niveles de las pruebas o estrategias de las pruebas. Etapas del ciclo de vida Nivel Breve descripción y bibliografía Codificación • Prueba de unidad • Se prueban unidades individuales de un software. El propósito es validar que cada unidad del software funcione según lo diseñado. o Sommerville Ian. Ingeniería del Software. Sección 8.1.1. o Pressman Roger. Ingeniería del Software. Sección 17.3.1. Diseño detallado y Diseño del sistema • Prueba de integración • Las unidades individuales se combinan y prueban como un grupo. El propósito de este nivel de prueba es exponer fallas en la interacción entre unidades integradas. o Sommerville Ian. Ingeniería del Software. Sección 8.1.3. o Pressman Roger. Ingeniería del Software. Sección 17.3.1. Diseño de sistema y Especificación de sistema • Pruebas del sistema • Se prueba un sistema completo e integrado. El propósito de esta prueba es evaluar el cumplimiento del sistema con los requisitos especificados. 4 o Sommerville Ian. Ingeniería del Software. Sección 8.1.4 Especificación de requerimientos • Pruebas de aceptación • Se prueba la aceptabilidad de un sistema. El propósito de esta prueba es evaluar el cumplimiento del sistema con los requisitos comerciales y evaluar si es aceptable para la entrega. o Sommerville Ian. Ingeniería del Software. Sección 8.4. Pressman Roger. Ingeniería del Software. Figura 17.2. ¿Qué otras características voy a probar? Las pruebas que se enfocan en las características específicas del sistema de software Pruebas de versión Pruebas de requerimiento Pruebas de escenario Pruebas de rendimiento Pruebas del usuario Pruebas alfa Pruebas beta Pruebas de aceptación Pruebas de seguridad Pruebas de usabilidad Concepto de calidad ¿Cómo se define la calidad del software? En un sentido general, la calidad del software se define como: Proceso eficaz de software que se aplica de manera que crea un producto útil que proporciona valor medible a quienes lo producen y a quienes lo utilizan. Pressman Roger. Ingeniería del Software. Sección 14.2.
Compartir