Logo Studenta

QA E19- Metodologías II

¡Este material tiene más páginas!

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

Continuar navegando