Hacia una Propuesta de Pruebas Tempranas del Sistema Javier J. Gutiérrez, María J. Escalona, Arturo H. Torres, Manuel Mejías y Jesús Torres escuela técnica superior de ingeniería informática Introducción Prueba del sistema: Verifican si el comportamiento del sistema coincide con sus requisitos. Prueba del sistema: Funcionales, de navegación, usabilidad, rendimiento, escalabilidad, seguridad, carga, etc. Un proceso de prueba. Objetivos de prueba Objetivos de prueba Diseño de casos de Diseño de casos de prueba prueba Codif. de casos de Codif. de casos de prueba prueba Ejecución Ejecución Análisis de resultados Análisis de resultados Nuestro objetivo Nuestro objetivo Introducción – No existe la propuesta completa. – La documentación es escasa y los trabajos son aislados. – Falta de sistematización y de automatización. – Falta de herramientas que soporten las propuestas. – Falta de estudios empíricos. 23 propuestas en total. 12 análisis comparativo. Introducción a la generación de pruebas Punto de partida. Use case UC-01 UC-01 UC-03 UC-03 UC-03 UC-03 UC-04 Variable Nam e Type Dom ain System configuration C In (SR-01) Use Variable Nam e Array Type Combination to Cd Out case discover UC-01 System configuration In System configuration C InC (SR-01) UC-01 Combination to Out Combination to Cd InCd Array discover discover Use Variable UC-03 System configuration C In User combination Cj Inner Array case UC-03 Cd In User tries Combination Ni SystemInner Integer UC-01 to configuration discover System configuration Out UC-01 C Combination to(SR-01) UC-03 User combinationdiscoverCj Inner UC-03 User tries Inner UC-03 System Ni configuration UC-04 System configuration C UC-03 Combination to Out discover UC-03 User combination UC-03 User tries UC-04 System configuration Domain (SR-01) Array Nam e (SR-01) CArray Cd Array CInteger (SR-01) Cd Cj Ni C Type Dom ain In Out (SR-01) Array In In (SR-01) Array Inner Inner Out Array Integer (SR-01) Punto de llegada. Un proceso de generación de pruebas Nombre Precondición Secuencia principal Requisitos Error / Secuencias alternativas Post-condición Notas Use case UC-01 UC-01 UC-03 UC-03 UC-03 UC-03 UC-04 Variable Nam e Type UC-01. Añadir nuevo enlace. No 1 El visitante solicita añadir un nuevo enlace. 2 El sistema solicita la información del enlace (SR-02). 3 El visitante introduce la información del nuevo enlace. 4 El sistema almacena el nuevo enlace. 3.1.i El visitante cancela la operación y este caso de uso termina. 3.2.i Si el visitante desea cambiar la categoría, se ejecuta el caso de uso “Cambiar categoría” y este caso de uso continua.. 4.1.p Si el nombre del enlace o su URL están vacíos, el sistema muestra un mensaje de error y solicita de nuevo la información del enlace. Nuevo enlace añadido al sistema. Por defecto, el sistema selecciona la categoría “Top” para el nuevo enlace. Dom ain System configuration C In (SR-01) Use Variable Nam e Array Type Combination to Cd Out case discover UC-01 System configuration In System configuration C InC (SR-01) UC-01 Combination to Out Combination to Cd InCd Array discover discover Use Variable UC-03 System configuration C In User combination Cj Inner Array case UC-03 Cd In User tries Combination Ni SystemInner Integer UC-01 to configuration discover System configuration Out UC-01 C Combination to(SR-01) UC-03 User combinationdiscoverCj Inner UC-03 User tries Inner UC-03 System Ni configuration UC-04 System configuration C UC-03 Combination to Out discover UC-03 User combination UC-03 User tries UC-04 System configuration Domain (SR-01) Array Nam e (SR-01) CArray Cd Array CInteger (SR-01) Cd Cj Ni C Type Dom ain In Out (SR-01) Array In In (SR-01) Array Inner Inner Out Array Integer (SR-01) •Nuestro punto de partida son requisitos escritos en lenguaje informal. •Es difícil manipularlos de manera automática. … el primer paso será transformar los requisitos en modelos manipulables automáticamente. Un proceso de generación de pruebas •A partir de dichos modelos obtenemos los objetivos de prueba. •Un objetivo de prueba es algo que tenemos que probar. Id Objetivo de prueba 1 01, 02, 03, 04, 04.1 2 01, 02, 03, 04, 04.2 3 01, 02, 03 Sabemos qué tenemos que probar. ¿Cómo escribimos pruebas para probarlo? Un proceso de generación de pruebas Interfaz abstracta del sistema. Prueba abstracta. GUI Component GUI Screen GUI Object -title GUIErrorScreen Descripción ClickOn(component) Representa una pulsación con el botón izquierdo sobre el componente indicado SetField(field, value) Asigna al campo el valor indicado. -name 1 -errorMsg : string Instrucción * Field -value Text Table ActionObject -text * * 1 1 Header insertar : Action 1 name Body cancelar : Action categoria : Action name name 1 1 nombreField : Field name value 1 1 1 1 URLField : Field 1 1 1 nombreLabel : Text linkScreen : GUI1Screen name title 1 1 text 11 URLLabel : Text name value 1 name text 1 descriptionField : Field 1 descripcionLabel : Text name value name text Id Objetivo de prueba 1 01, 02, 03, 04, 04.1 2 01, 02, 03, 04, 04.2 3 01, 02, 03 Implementación de las pruebas Herramienta de prueba. (JWebTest, Canoo WebTest, Selenium, etc.) Casos de prueba. Estado actual y futuros trabajos Estado actual: ObjectGen Futuros trabajos: Todo lo demás Datos de contacto Pruebas Javier Gutiérrez javierj@us.es www.lsi.us.es/~javierj/ Requisitos María José Escalona mjescalona@us.es www.lsi.us.es/~escalona/