====== Realizar Test Funcionales ====== {{:mda:qs:mda-pr-1.0-qs-realizar_test_funcionales.png|}} ====== Objetivos ====== El objetivo de este proceso es el de **definir y realizar las pruebas necesarias** para garantizar que la aplicación funciona correctamente, antes de mostrársela al usuario. Los pasos a seguir serán: * Crear el plan de pruebas (documento donde se definen las pruebas, indicando los datos a rellenar y los resultados esperados) * Estudiar si se puede automatizar algún punto del plan de pruebas y automatizarlo en caso posible * Ejecutar las pruebas (automática o manualmente) y publicar los resultados. ====== Roles ====== Los siguientes son los roles participantes en este proceso: ^ Rol ^ Tareas que interviene ^ |**Tester** | | | |MDA-TR-1.0-QS-Diseñar Casos de Prueba | | |MDA-TR-1.0-QS-Automatizar Casos de Prueba | | |MDA-TR-1.0-QS-Ejecutar Casos de Prueba | ====== Tareas ====== ===== MDA-TR-1.0-QS-Diseñar Casos de Prueba ===== Un caso de prueba será una prueba de la aplicación para obtener un objetivo concreto. No sólo probaremos el caso de éxito, si no que deberemos de atender a entradas de datos de la aplicación que provoquen errores para demostrar el correcto tratamiento de errores del aplicativo. Un caso de prueba siempre estará relacionado con algún requisito (Caso de Uso o Historia), en el que se encuentre involucrado. Por lo tanto tendremos como mínimo por cada Caso de Uso o Historia, un Caso de Prueba de definido que lo cubra. El documento de Casos de Prueba recogerá todos los casos de prueba creados para garantizar el correcto funcionamiento de la aplicación. Pasamos a explicar los pasos para crear el documento de casos de prueba. ==== 1. Crea las tareas en Jira ==== Para esta tarea se deben de dar de alta un **JIRA** con los siguientes datos ^ Tipo ^ Descripción ^ Disciplina ^ Proceso ^Label ^ Version Fijada ^^^ | //Tarea// | //Diseñar Casos de Prueba// | //Calidad del Software//|//QS-Realizar Test Funcionales// | // DCP // |//[Versión del proyecto]//| ==== 2. Crear documento de Casos de Prueba==== **2.1.** Iniciar la creación de un nuevo **Documento de Casos de Prueba**. ^ Plantilla ^ SIGLAS ^ Nomenclatura ^ Ubicación ^^^ |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/5.Calidad/CasosPrueba.odm|CasosPrueba]]| QCP | XXX-QCP-1.2.3-CasosPrueba | ///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| Este es un documento maestro. ^**NOTA:** Para más información, puedes visitar la página sobre [[mda:documentos_maestros|documentos maestros]].^ **2.2.** Escribir la sección del documento: * "//2.2.1 Introducción//", en la que se debe describir de manera resumida el alcance del documento de prueba. **2.3.** Por cada requisito del documento de requisitos del analisis: * "2.3.1 Iniciar la creación de un nuevo //**Documento de Casos de Prueba de Requisito**//. Poner en el titulo: 2.N y el código del //requisito// asociado ^ Plantilla ^ SIGLAS ^ Nomenclatura ^ Ubicación ^^^ |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/5.Calidad/CasoPruebaRequisito.ott|CasoPruebaRequisito]]| QCPR | XXX-QCPR-1.2.3-CasosPruebaRequisito | ///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| * "//2.3.2 // Por cada caso de prueba que se quiera realizar escribir apartado //2.N.N Caso de prueba CP-XXX//.Apartado en el que aparecerán especificados los Casos de Prueba en profundidad. Para mayor claridad, se puede numerar con pares de dos dígitos. El primer par "numero de caso de uso". El segundo "numero de prueba" dentro de ese caso de uso. * "//2.3.3 // Añadir al documento maestro [[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/5.Calidad/CasosPrueba.odm|CasosPrueba]] el documento hijo [[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iutturna/Proyecto/Fuentes/Documentacion/5.Calidad/CasoPruebaRequisito.ott|CasoPruebaRequisito]] **2.4.** Escribir el apartado // 3. Trazabilidad de Casos de Prueba – Requisitos//, en el que aparecerá la relación entre requisitos y casos de prueba. * "//2.4.1.// Incrustar mediante Insertar objeto -> Objeto OLE una hoja de cálculo similar a: ^ Plantilla ^ SIGLAS ^ Nomenclatura ^ Ubicación ^^^ |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/5.Calidad/MatrizTrazabilidad.ots|MatrizTrazabilidad]]| QMT | XXX-QMT-1.2.3-MatrizTrazabilidad | ///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| Eliminar el objeto que viene por defecto. **2.5.** Escribir el apartado //4. Anexos// , que contendrá la información adicional que se ha creido conveniente para las pruebas. ===== MDA-TR-1.0-QS-Automatizar Casos de Prueba ===== Para no tener que repetir las pruebas se podrán automatizar ciertos casos de prueba, obteniendo de este modo una bateria de pruebas que se ejecutarán al pulsar un botón. De todas formas no todos los tests serán automatizables (porque tenga mucha funcionalidad javascript o las condiciones de respuesta sean difícil de obtener). Habrá que hacer una evaluación inicial para verlo. En el siguiente [[https://svn.um.es/svn/MNCS/NuevaMNCS/Formacion/Cursos/Material/2010/calidadSW/Taller7-Testing_con_Selenium_IDE.ppt|manual de Selenium]] explica cómo automatizar los tests. Por lo tanto los pasos ejecutar en este proceso serán: **1. Crea las tareas en Jira** Para esta tarea se deben de dar de alta un **JIRA** con los siguientes datos ^ Tipo ^ Descripción ^ Disciplina ^ Proceso ^ Label^ Version Fijada ^^^ | //Tarea// | //Automatizar Casos de Prueba// | //Calidad del Software//|//QS-Realizar Test Funcionales// | // ACP//|//[Versión del proyecto]// | **2. Por cada caso de prueba en el documento de Casos de Prueba anterior:** *2.1 Estudiar si se pueda automatizar. *2.2 En caso positivo guardar el documento de ejecución de Selenium en 5.Calidad/5.2 TestFuncionales. ^ Plantilla ^ SIGLAS ^ Nomenclatura ^ Ubicación ^^^ |Caso de Prueba Automatizado| QCPA | XXX-QCPA-1.2.3-CP-YYYY | ///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| En [[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Ejemplos/Calidad/TestFuncionales/XXX-QCPA-CP-YYYY.xml|Ejemplo caso de ejecución]] puedes ver cómo es el documento. ===== MDA-TR-1.0-QS-Ejecutar Casos de Prueba ===== Lo casos de pruebas serán ejecutados como mínimo una vez, al finalizar cada sprint. Se podrán ejecutar más veces, sobre todo teniendo en cuenta que en el caso de que falle alguno, habrá que volver a comprobar que está correctamente arreglado. ==== 1. Crea las tareas en Jira ==== Para esta tarea se deben de dar de alta un **JIRA** con los siguientes datos ^ Tipo ^ Descripción ^ Disciplina ^ Proceso ^ Label ^ Version Fijada ^^^ | //Tarea// | //Ejecutar Casos de Prueba// | //Calidad del Software//|//QS-Realizar Test funcionales// | //ECP// | //[Versión del proyecto]// | ==== 2. Ejecutar los Casos de Prueba==== **2.1.** Iniciar la creación de un nuevo **Documento de Ejecución de Casos de Prueba** en caso de que no exista. ^ Plantilla ^ SIGLAS ^ Nomenclatura ^ Ubicación ^^^ |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/5.Calidad/ResultadosCasosPrueba.ots|ResultadosCasosPrueba]]| QRCP | XXX-QRCP-1.2.3-ResultadosCasosPrueba | ///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| **2.2.** Por cada Caso de Prueba del documento de Casos de Prueba. Hacer: * "//2.2.1.// Escribir el código de caso de prueba en la columna //Código de Caso de Prueba y la breve descripción//. En caso de que no sea la primera prueba estas columnas deben de estar rellenas. * "//2.2.2.// Escribir las cabeceras OBLIGATORIAS con el número de Sprint (en caso de que sea nuevo, si no agregarlo al correspondiente) y la fecha de ejecución. * "//2.2.3.// Escribir las distintas cabeceras OPCIONALES, de distintas modalidades de prueba (cambio sistema operativo, rol, etc). Para aplicaciones Web serán obligatorias los NAVEGADORES. * "//2.2.4.// Ejecutar las pruebas correspondientes, en caso de que estén automatizadas con Selenium pasarlas con esta herramienta. * "//2.2.5.// En caso de resultado satisfactorio escribir OK, con letra verde, en caso contrario escribir FALLO, con letra roja * "//2.2.6.// Tanto en caso de éxito como de fallo, si se quieren hacer notas aclaratorias, realizarlas en la propia hoja a través de la opción // "insertar nota" // del menú contextual. * "//2.2.7.// Una vez acabadas las pruebas se puede "ocultar" las pruebas que no resulten interesantes, seleccionando la cabecera del sprint o la fecha según interese y pulsando la tecla F12. ====== Artefactos ====== ===== De entrada ===== ^ Plantilla del Artefacto ^ SIGLAS ^ Nomenclatura ^ Ubicación ^^^ |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/2.Requisitos/DocumentoRequisitos.odm|DocumentoDeRequisitos]]| REQ | XXX-REQ-1.2.3-Documento de Requisitos | ///Proyecto/Documentacion/2.Requisitos //|| ===== De salida ===== ^ Plantilla del Artefacto ^ SIGLAS ^ Nomenclatura ^ Ubicación ^^^ |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/5.Calidad/CasosPrueba.odm|CasosPrueba]] | QCP | XXX-QCP-1.2.3-CasosPrueba |///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/5.Calidad/ResultadosCasosPrueba.ots|ResultadosCasosPrueba]]| QRCP | XXX-QRCP-1.2.3-ResultadosCasosPrueba | ///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/5.Calidad/CasoPruebaRequisito.ott|CasoPruebaRequisito]]| QCPR | XXX-QCPR-1.2.3-CasosPruebaRequisito | ///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| |[[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/5.Calidad/MatrizTrazabilidad.ots|MatrizTrazabilidad]]| QMT | XXX-QMT-1.2.3-MatrizTrazabilidad | ///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| |Caso de Prueba Automatizado | QCPA | XXX-QCPA-1.2.3-CP-YYYY | ///Proyecto/Documentacion/5.Calidad/5.2 TestFuncionales//|| * **NOTAS**: * XXX: Código del proyecto. * 1.2.3: Número de version del documento. ====== Herramientas ====== ^ Herramienta ^ Version ^ Utilizada en ^ Descarga ^^^ |Selenium IDE (plugin for FireFox)| 1.08 min | Automatizar Casos de Prueba | [[http://seleniumhq.org/download/|Pagina Selenium ]] | |OpenOffice Writer | 3.3 | Diseñar Casos de Prueba | Novell | |OpenOffice Calc | 3.3 | Ejecutar Casos de Prueba | Novell | ====== Métricas ====== Las métricas del proyecto se guardarán dentro de la carpeta del proyecto en //Proyecto/Documentacion/1.Gestionproyecto/1.4.Metricas//. Las métricas de este proceso en concreto se almacenan en la Hoja //QS//. ===== Tiempo dedicado al proceso ===== - Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto. * project = //ClaveDelProyecto// * Disciplina-Proceso = //Calidad del Software-QS-Realizar Test Funcionales// Pulsa el botón //Search// Usa la [[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/1.GestionProyecto/PlantillaSeguimiento.ots|Plantilla de Seguimiento]] tal y como se indica en el apartado [[mda:Calcular_Tiempos|Calcular tiempos con Jira]]. ===== Número de Casos de Prueba ===== Numero de Casos de Prueba escritos para el proyecto. ===== Tiempo dedicado a la tarea Diseñar Casos de Prueba===== - Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto. * project = //ClaveDelProyecto// * Disciplina-Proceso = //Requisitos//-//QS-Diseñar Casos de Prueba// * label = //DCB// Pulsa el botón //Search// Usa la [[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/1.GestionProyecto/PlantillaSeguimiento.ots|Plantilla de Seguimiento]] tal y como se indica en el apartado [[mda:Calcular_Tiempos|Calcular tiempos con Jira]]. ===== Número de Casos de Prueba Automatizados ===== Número de Casos de Automatizados ===== Tiempo dedicado a la tarea Automatiza Casos de Prueba===== - Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto. * project = //ClaveDelProyecto// * Disciplina-Proceso = //Requisitos//-//QS-Automatizar Casos de Prueba// * label= //ACB// Pulsa el botón //Search// Usa la [[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/1.GestionProyecto/PlantillaSeguimiento.ots|Plantilla de Seguimiento]] tal y como se indica en el apartado [[mda:Calcular_Tiempos|Calcular tiempos con Jira]]. ===== Número de Casos de Prueba Ejecutados ===== Número de Casos de Prueba Ejecutados ===== Número de Casos de Prueba Ejecutados con resultado Erroneo ===== Número de Casos de Prueba Ejecutados con resultado Erroneo ===== Número de Casos de Prueba Ejecutados con resultado Correctos ===== Número de Casos de Prueba Ejecutados con resultado Correctos ===== Tiempo dedicado a la tarea Ejecutar Casos de Prueba===== - Entra en Jira en el navegador de incidencias. Realiza una query simple y selecciona todas las tareas del proyecto. * project = //ClaveDelProyecto// * Disciplina-Proceso = //Requisitos//-//QS-Realiar test funcionales// * label = // ECB// Pulsa el botón //Search// Usa la [[https://svn.um.es/svn/MNCS/NuevaMNCS/MEDEA/web_iuturna/Proyecto/Fuentes/Documentacion/1.GestionProyecto/PlantillaSeguimiento.ots|Plantilla de Seguimiento]] tal y como se indica en el apartado [[mda:Calcular_Tiempos|Calcular tiempos con Jira]]