Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Módulo 5 Encuentro 19/20 Metodologías II OBJETIVOS DEL MÓDULO 5 ¿Qué habilidades desarrollarás? ● Aprendizaje cooperativo entre pares ● Cultura de metodologías ágiles ¿Qué herramientas técnicas aprenderás? ● Estrategias de testing ágil ● Herramientas para gestión de pruebas ● Ejecución de pruebas y generación de reportes *No es necesario solicitar permiso de edición del documento, si deseas puedes crear una copia �Archivo > Crear una copia]* ¡Te damos la bienvenida al encuentro de trabajo N°19! Continuamos profundizando en el módulo Metodologías ágiles. A lo largo de este encuentro analizaremos el proceso de testing mediante estas metodologías y algunas herramientas que te permitirán aplicarlas de manera óptima. Este es el último encuentro en el que trabajarán de la manera en que ya conocen. Les dejamos unas últimas preguntas de reflexión para analizar junto a su equipo, luego de presentarse. ¿Cuáles fueron los contenidos que representaron cierta complejidad para ustedes? ¿Cuáles son los próximos desafíos en sus carreras? MATERIAL DE LECTURA Estrategias de testing ágil En el marco de desarrollo de software es bueno definir una estrategia de trabajo. Esto es útil para planificar procesos y adaptarse al crecimiento de miembros o modificación en los integrantes. Una estrategia validada y documentada permite que la información y el know how no se pierda, aun cuando algunos miembros hayan cambiado de proyecto. Existen diferentes tipos de estrategias para abordar las tareas de testing. Desde un punto de vista generalista podrían ser: Analítica Basada en el análisis sistemático de requerimientos y/ o en el análisis de los riesgos asociados. Basada en modelos Analiza el comportamiento del sistema. �Por ejemplo UML, tablas de decisión, diagramas de transición de estados) Metódica Basadas en sets de pruebas estándar, como un checklist de pruebas que siempre deben llevarse a cabo. Basada en standards Es decir siguiendo los lineamientos de algún estándar externo o ISO. 2 Reactiva Es una estrategia de testing que reacciona a los desarrollos que llegan listos para testearse. Se analiza y testea cuando el sistema ya está desarrollado. Consultiva Estrategia basada en el consejo de expertos por fuera del equipo de testing. Secreto de la industria 1� Puede que algunas empresas utilicen un mix de estas estrategias sin tener una definida. En ocasiones alguna empresa o grupos de trabajo tienen estrategias bien consolidadas que se aplican a conciencia. De hecho, el equipo podría decidir modificar el tipo de estrategia elegida dependiendo del tipo de proyecto en el que esté trabajando. Una estrategia de testing es concretamente la definición de cómo deben llevarse a cabo las tareas de testing y aquellas relacionadas a las pruebas de software; ¿Qué tareas se llevan a cabo? ¿cómo se abordan? ¿en qué orden? ¿por quién? ¿Qué táctica usar para el testing ágil? En el mejor de los casos un mix de los modelos que mencionamos anteriormente. ¿NECESITAS UN EJEMPLO? En en la etapa estática se podría: ● Analizar requerimientos y modelos disponibles, para darle forma a las pruebas y cubrir requerimientos, flujos y transiciones de estado, siempre contemplando la variable riesgo para asignar prioridad. ● Revisar si hay sets de pruebas comunes que apliquen para el objeto bajo test. De ser así, agregarlo al plan. Por ejemplo: si el sistema tiene formularios es posible que se puedan aplicar pruebas que son comunes y requeridas para formularios ● Revisar si el sistema bajo test aplica para ser testeado bajo algún estándar. Por ejemplo: si el sistema debe cumplir con reglas de accesibilidad entonces deberían agregarse las pruebas correspondientes al plan de pruebas. 3 ● Consultar con expertos en la materia para asegurarse de que se están cubriendo todos los aspectos claves del sistema y en caso de que se nos hubiera pasado algún caso de uso, agregarlo. Quizás el sistema en desarrollo está relacionado a un área que no resulta familiar. Siempre es útil consultarla con un experto o SME – subject matter expert. ● Reportar los defectos que se hayan encontrado en la documentación, aclarar las dudas con las personas correspondientes, terminar de armar el plan de pruebas. Una vez armado el plan de pruebas preparar el ambiente para ejecutar las pruebas cuando el sistema esté listo. Si se avanza con el análisis en la etapa estática, es decir, antes de que el sistema esté listo para testearse lo único que queda, es ejecutar las pruebas. Hecho así, la etapa de ejecución puede ser una tarea bastante simple. Incluso puede delegarse o distribuirse entre varias personas. En el marco del desarrollo ágil podría pasar que tenemos nuestro análisis incompleto o recién iniciado y el producto ya está listo para testearse. En ese caso sería válido usar una estrategia reactiva: hacer el trabajo inverso, probar el sistema, explorarlo y tomar nota de los hallazgos. Otra manera es probar el sistema a la par de la revisión de la documentación de requerimientos o historias de usuario o de cualquier otra documentación que tengamos a disposición. Secreto de la industria 2� En el marco del desarrollo ágil es valioso ser ordenado, responsable y metódico. Es útil adelantar todo el trabajo posible para maximizar la eficiencia y la eficacia (en nuestro rol de identificar defectos). También es clave tener la flexibilidad para adaptarse y decidir cómo seguir cuando un plan cambia, En resumen: Es recomendable anticipar las tareas de análisis, diseño de plan y preparación de ambiente para las pruebas. 4 En caso de suspender el diseño de nuestro plan de pruebas y necesitar comenzar la ejecución de pruebas directamente, es bueno contar con al menos un borrador de las pruebas más críticas. SUPER TIP A la hora del diseño del plan de pruebas, es recomendable empezar por una lista de pruebas que consistan en: Id, título y una descripción. Una vez que se generó el borrador con todas las descripciones de casos de prueba trabajar en los detalles de cada prueba. Ten en cuenta que el título y la descripción deberían ser suficientes para entender exactamente qué debe es lo que debe probar la prueba. De esta manera tendremos una lista con una descripción de todo lo que debemos probar en su totalidad. ¡MANOS A LA OBRA Ejercicio #1 Ingresen al siguiente sitio web y analicen su funcionalidad, experiencia y todo aquello que consideren. Generen: A. 1 plan de pruebas simplificado (solo id, título y descripción de cada pruebas) para probar el sitio. B. Pongan en marcha la metodología de evaluación Peer too Peer. Intercambien planes de pruebas simplificados para su revisión y reflexionen: ¿Consideran que ese plan de pruebas recibido puede llevarse a cabo correctamente? ¿Cuál es el resultado esperado de cada prueba? C. Escriban sus comentarios para cada caso y, de ser necesario, soliciten el ajuste de alguno. D. Vuelvan a encontrarse con el plan diseñado por ustedes y amplíen su plan de pruebas detallado (en su versión completa con todas las marcas de trazabilidad y atributos vistos) 5 https://petstore.octoperf.com/ MATERIAL DE LECTURA Herramientas para gestión de pruebas ¿Qué es una herramienta de gestión de pruebas? Es un software que permite llevar a cabo al menos una actividad relacionada a las pruebas (planificación, control, diseño, armado de datos, ejecución y análisis), ofreciendo eficiencia al proceso de testing. Las herramientas de testing son generalmente, una inversión a largo plazo y requieren mantenimiento para ofrecer beneficios en el tiempo. Al momento de adoptarlas, diseñarlas, construirlas y configurarlas puede percibirse una sensación de trabajo costoso su diseño. Sin embargo, su valor final es altamente superior sobre la ejecución manual de las actividades de testing. Algunos beneficios en su uso son: ● El ahorro de tiempo en actividades repetitivas ● La oportunidad de mejora en la trazabilidad ● Ordenamiento de la información y el acceso a ella. ● La posibilidad de diseñar y manejar procesos y flujos de trabajo.Los objetivos que cumplen las herramientas de gestión de pruebas son: ● De manejo de pruebas ● De manejo de defecto ● De manejo de requerimientos ● De integración contínua ● De soporte para pruebas estáticas (de revisión) ● De soporte para diseño de casos de prueba e implementación ● De preparación de datos para pruebas ● De soporte para ejecución de pruebas ● De captura y grabación de pantalla 6 Antes de comprar o utilizar una herramienta, vale la pena evaluar múltiples aspectos. Veamos algunos aspectos a considerar ● ¿La herramienta cumple con los requerimientos del equipo y del proyecto? ● ¿Necesita integrarse con otro sistema para entregarme la funcionalidad que busco? ● ¿Hay alguien en el equipo con el conocimiento técnico para generar esa integración? ¿O para configurar y mantener la herramienta? ● ¿Hay alguna política de la empresa o de seguridad que podría impedir la implementación de esta herramienta? ● ¿Hay presupuesto y recursos para implementar y mantener esta herramienta? ● ¿Necesito trabajar en alguna estrategia de adopción para que otros miembros del equipo sepan cómo utilizarla de la manera que se espera? ● Si es una herramienta que va a correr en algún ambiente de testing ¿Sabemos si será compatible con ese tipo de ambiente? ¿Y con el lenguaje usado para construir el sistema? ¿Con el modo en el que el código está escrito? ¿NECESITAS UN EJEMPLO? Para la selección de una herramienta de ejecución de tests automatizados, analiza qué prestaciones tiene la herramienta y si cumple con lo que tu proyecto requiere. ¿La herramienta sólo puede correr pruebas sin salir de la página? ¿puede visitar diversos sitios a lo largo del mismo test? ¿Los casos de prueba que vas a automatizarse, requieren del acceso a más de un sitio a lo largo de un mismo test? Podrías analizar con el equipo de desarrollo si el sistema en desarrollo será compatible con la herramienta de ejecución de tests. Además se podrían evaluar los requerimientos que tiene la herramienta para que los desarrolladores los tengan en cuenta. De esa manera la herramienta elegida ofrecería las prestaciones esperadas. 7 ¿NECESITAS UN EJEMPLO? ¿Es necesario que el código CSS siga alguna lógica particular para luego poder encontrar los elementos para automatizar pruebas? Estos son solo algunos ejemplos para ilustrar la lista de aspectos a tener en cuenta a la hora de seleccionar una herramienta para la gestión de pruebas. ¿Quieres saber más sobre las herramientas para la gestión de pruebas? Par empezar a utilizar alguna herramienta de automatización, puedes ver la siguiente serie de videos: https://testautomationu.applitools.com/setting-a-foundation-for-successful-t est-automation/ (verlos todos te llevará aproximadamente minutos. Y recuerda, que si prefieres, puedes añadirle los subtítulos en español). MATERIAL DE LECTURA JIRA Jira es un software de gestión de proyectos y su uso está muy extendido en el mundo del desarrollo ágil. El foco principal de esta herramienta es la gestión de proyectos. Sin embargo, tiene cierto grado de configurabilidad y permite la integración a otras herramientas que amplían sus prestaciones, pudiendo abarcar varios aspectos relacionados a la gestión de prueba tales como: manejo de pruebas, defectos, requerimientos e integración continua. Jira integrado a Zephyr soporta el diseño de casos de prueba, la preparación de datos para pruebas e implementación y la ejecución de las mismas. A su vez, Zephyr puede integrarse a herramientas de automatización como Cucumber, TestNG, PyTest u otras1 1 (https://smartbear.com/blog/level-up-test-automation-with-zephyr-scale/?utm_source=be amer&utm_medium=standalone&utm_campaign=Level-Up-Test-Automation-With-Zephyr-S cale&utm_content=ctalink) 8 https://testautomationu.applitools.com/setting-a-foundation-for-successful-test-automation/ https://testautomationu.applitools.com/setting-a-foundation-for-successful-test-automation/ https://www.atlassian.com/es/agile/software-development/continuous-integration https://support.smartbear.com/zephyr-scale-cloud/docs/test-automation/index.html https://smartbear.com/blog/level-up-test-automation-with-zephyr-scale/?utm_source=beamer&utm_medium=standalone&utm_campaign=Level-Up-Test-Automation-With-Zephyr-Scale&utm_content=ctalink https://smartbear.com/blog/level-up-test-automation-with-zephyr-scale/?utm_source=beamer&utm_medium=standalone&utm_campaign=Level-Up-Test-Automation-With-Zephyr-Scale&utm_content=ctalink https://smartbear.com/blog/level-up-test-automation-with-zephyr-scale/?utm_source=beamer&utm_medium=standalone&utm_campaign=Level-Up-Test-Automation-With-Zephyr-Scale&utm_content=ctalink Hay que tener en cuenta que para que esta herramienta nos ayude a cerrar el ciclo de acciones relacionadas a la gestión de pruebas, requiere que la configuración refleje los procesos reales del trabajo del equipo. ¿NECESITAS UN EJEMPLO? ¿El equipo usa Épicas, historias de usuario, subtareas e incidencias para gestionar sus proyectos y reportes de defectos? ¿Usa otra terminología o clasificaciones? ¿Qué clasificaciones de severidad utiliza? ¿Cuántos niveles de prioridad hay? ¿Qué pasos o estados puede atravesar un caso de desarrollo (o historia de usuario)? ¿Qué pasos o estados puede atravesar un caso para una incidencia o defecto? ¿Cómo es el proceso de reporte de defectos? A continuación les mostramos cómo se visualiza en un tablero tipo Kanban, dentro de Jira, los diferentes estados del trabajo en curso y terminados Cada columna representa un estado. Cada registro de caso de desarrollo, incidencia o de los tipos de proyecto que se usen, se ubican bajo la columna que representa el estado actual del proyecto. Estados: ● Por hacer ● En progreso ● En desarrollo ● Listo para testear ● Testeando ● Listo para UAT ● Terminado 9 Para actualizar el estado de un proyecto simplemente se selecciona la opción correspondiente del listado. Esto es solo un ejemplo muy básico y tu equipo podría manejar otros estados u otra terminología para referirse a las diferentes fases por las que atraviesa cada proyecto. Los tipos de proyecto también se pueden configurar. Por defecto podrás encontrar: Así se observa el panel de detalles de un proyecto que está siendo testeado: 10 Tal como se observa, es posible asignar: ● Responsable al proyecto ● Nombre de quien creo o informó el proyecto ● Etiquetas ● Estimación y tracking real de horas dedicadas ● Story points si se estima en story points ● Sprint ● Rama de desarrollo Ten en cuenta que se puede configurar los campos que se deben mostrar y su orden. Jira permite filtrar la información para visualizarla en listas. Los usuarios con permisos para crear y guardar sus listas o reportes, pueden generar marcadores. Esto es útil para visualizar el trabajo pendiente rápidamente. 11 ¿NECESITAS UN EJEMPLO? Filtrar información y generar tus propios reportes y listas, anclarlos a un menú de acceso rápido es verdaderamente importante para ayudarte a: ● Visualizar rápidamente los proyectos que tienen en proceso ● Tener visibilidad sobre proyectos o tareas prioritarias ● Encontrar la información de forma fácil y rápida ● Compartir información o reportes con otras personas Secreto de la industria 3� Existen otras herramientas de gestión de prueba, pero te presentamos Jira y Zephyr Scale porque son las más populares y utilizadas. Además, pueden configurarse para cubrir todo el ciclo de desarrollo y testing de productos de software. Son intuitivas. ¡Tu próximo desafío es usarlas! 12 ¡MANOS A LA OBRA Ejercicio #3 configura un jira para gestionar proyectos Extra Credits 1. ¿Qué es integración continua? https://www.atlassian.com/es/agile/software-development/continuous-i ntegration 2. Herramientas populares de automatización: a. En exploradores web: Selenium, Cucumber, Puppeteer, Playwright, Testcafe, Cypress. b. En mobile: Appium, Detox, Calabash. ¿Quieres saber más sobre cómo prepararte para incorporar automatización a las pruebas? https://testautomationu.applitools.com/setting-a-foundation-for-successful-test-automation/ MATERIAL DE LECTURA Ejecución de pruebas Llegando casi al final del módulo y con Jira y Zephyr listos, es hora de trabajar poniendo en práctica todo lo que aprendimos hasta acá. ¡Se viene la ejecución de pruebas! ¿Listos? 13 https://www.atlassian.com/es/agile/software-development/continuous-integration https://www.atlassian.com/es/agile/software-development/continuous-integration https://testautomationu.applitools.com/setting-a-foundation-for-successful-test-automation/ https://testautomationu.applitools.com/setting-a-foundation-for-successful-test-automation/ ¡MANOS A LA OBRA Ejercicio #4 A continuación, te dejamos una lista de aplicaciones y sitios web. Están ordenados de menor a mayor complejidad. Diseñen el plan de pruebas que consideren adecuado para cada una de estas. A. Login: http://the-internet.herokuapp.com/login B. App triangulo: https://testpages.herokuapp.com/styled/apps/triangle/triangle001.html C. Formulario: https://testpages.herokuapp.com/styled/validation/input-validation.html D. Computer database: http://computer-database.gatling.io/computers E. Calculadora: https://testsheepnz.github.io/BasicCalculator.html F. E-commerce: https://www.demoblaze.com/ G. E-commerce2� https://demo.testim.io/ Evalúa tus recursos al momento de preparar cada uno de los planes de prueba, datos a incluir y nivel de detalle que alcanzarás. Recuerda ordenar los casos de prueba por orden de prioridad y agrega la estimación por puntos o tiempos a cada uno! Ejercicio #5 Ejecuta tus planes de prueba y comprueba qué tan acertada fue la estimación sobre el tiempo de ejecución. Haz los ajustes necesarios en tu plan de pruebas: ● Podrías necesitar corregir la estimación de tiempo al darte cuenta de que faltaron (o sobraron) pasos. ● Si se les ocurrieron nuevas pruebas relevantes que no deberían quedar fuera del plan… es momento de agregarlas. Este es el momento de hacer ajustes. Para aportar dinamismo a la tarea, comiencen a trascribir para cada aplicación o sitio web de la siguiente manera: Ejercicio 1A (armado del plan) > ejercicio 2 (ejecución del plan), 14 http://the-internet.herokuapp.com/login https://testpages.herokuapp.com/styled/apps/triangle/triangle001.html https://testpages.herokuapp.com/styled/validation/input-validation.html http://computer-database.gatling.io/computers https://testsheepnz.github.io/BasicCalculator.html https://www.demoblaze.com/ https://demo.testim.io/ Ejercicio 1B (armado del plan) > ejercicio 2 (ejecución del plan), Ejercicio 1C (armado del plan) > ejercicio 2 (ejecución del plan), … ¡MANOS A LA OBRA Generación de reportes En la sección Métricas y reportes del módulo análisis planificación y ejecución de pruebas, hablamos sobre reportes, métricas y KPIs. Es momento de poner en práctica mediante una simulación de un caso real. Ejercicio #6 ● Toma al menos uno de los casos de prueba que ejecutaste y arma un dashboard en Zephyr Scale. ● Luego genera los reportes de progreso para tu plan de pruebas. Ejercicio #7 Genera Filtros en Jira que consideres que te serían útiles para llevar el tracking diario de tu trabajo en un proyecto de desarrollo ágil. ¡Hora de cerrar! Felicitaciones por el esfuerzo, por los logros alcanzados, por la perseverancia y constancia. No olvides repasar cada una de las guías, profundizar y consultar con los menores las dudas que tienes. ¡Este viaje ha sido increíble! Nos alegra haberlo compartido contigo. ¡Llegó el momento de los pulsos. ¿A quién te gustaría darselos? ¡Seguramente mereces recibir también! 15 Recuerda que la cooperación potencia el aprendizaje. 16
Compartir