Pruebas ágiles

Contenido

  1. Historia del Manifiesto Ágil
  2. Modelos Ágiles
  3. Scrum
  4. Manifiesto de Pruebas Ágiles
  5. Principios de Pruebas Ágiles
  6. Niveles de Pruebas
  7. Técnicas de Pruebas Ágiles
  8. Pirámide de Pruebas
  9. Cuadrantes de Pruebas Ágiles
  10. Automatización de Pruebas

Ciclo de Vida

Title Text

Title Text

Modelos Ágiles

  • Kanban
  • XP
  • Scrum

Kanban

Kanban es una palabra japonesa que significa “tarjetas visuales” (kan significa visual, y ban tarjeta).


Kanban no es una técnica específica del desarrollo software, su objetivo es gestionar de manera general como se van completando tareas.

Reglas del Kanban

  • Visualizar el trabajo y las fases del ciclo de producción o ciclo de trabajo
  • Determinar el límite de trabajo en curso (Work in Progress)
  • Medir el tiempo en completar una tarea (Lead Time)

XP

El enfoque de XP es la satisfacción del cliente, los equipos XP logran la satisfacción del cliente mediante el desarrollo de características cuando el cliente los necesita.

Prácticas XP

  • Estándar de codificación
  • Propiedad colectiva
  • Integración continua
  • Desarrollo Basado en Pruebas (TDD)
  • Pruebas de los clientes
  • Refactorización
  • Programación en parejas

Scrum

Define un marco para la gestión de proyectos. Está especialmente indicada para proyectos con un rápido cambio de requisitos.

Scrum es:

  • Ligero
  • Fácil de entender
  • Extremadamente difícil de llegar a dominar

Scrum emplea un enfoque iterativo e incremental para optimizar la predictibilidad y el control del riesgo.

Pilares del Scrum

Roles

  • Product Owner
  • Scrum Team
  • Scrum Master

Artefactos

  • Product Backlog
  • Sprint Backlog
  • Incremento

Eventos

  • Planificación del Sprint

  • Scrum Diario

  • Revisión del Sprint

  • Retrospectiva del Sprint

Roles

Responsabilidades

  • Maximizar el valor del producto

  • Retorno de Inversión (ROI)

  • Priorización de los ítems del Product Backlog

  • Actualización de los ítems del Product Backlog

  • Contabiliza el avance del proyecto

  • Acepta el incremento entregado al final de cada sprint

Lleva adelante

  • Product Backlog

  • Plan de Release

  • Visión del Producto

  • Reunión de revisión de incremento

  • Actualización de Product Backlog

  • Presupuesto

  • Incremento del producto

Product Owner

Responsabilidades

  • Asegurar que Scrum es entendido y adoptado por parte de todo el equipo

  • Guiar hacia las buenas prácticas

  • Hacer que se cumpla y comprendan los beneficios del manifiesto ágil

  • Encontrar técnicas para un mejor manejo del Product Backlog

  • Comunicar claramente la visión y objetivos al equipo

Lleva adelante

  • El proceso de Scrum

Scrum Master

  • Remover los impedimentos que surjan

  • Facilitar las reuniones del equipo

  • Enseñar al equipo las reglas de Scrum
  • Asegurar la productividad y mejora del equipo

Responsabilidades

  • Creación del incremento en conjunto

  • Llevar el registro de todo el proceso

  • Responsables de las estimaciones

  • Contabilizar el trabajo faltante a diario

Lleva adelante

  • Sprint Backlog

  • Scrum Diario

Scrum Team

Artefactos

  • Lista priorizada y secuencia de historias de usuario

  • Responsabilidad del Product Owner divide el proyecto en historias que son las que componen el Product Backlog

Product Backlog

  • Lista prevista para desarrollar o ejecutar en un Sprint

  • Primeros ítems del Product Backlog con estimación acorde en el Sprint

  • Desagregado de los ítems del Product Backlog en tareas específicas y asignadas en el Scrum Team

Sprint Backlog

  • Una HU describe una funcionalidad que será de valor para un usuario o cliente.

  • Se utiliza como medio para recoger los requerimientos del producto.

Historias de Usuario

Las HU deben definirse con las siguientes características:

 

  • Independiente

  • Negociable

  • Valiosa

  • Estimable

  • Pequeña(Small)

  • Testeable

Una HU debe tener como mínimo las siguientes partes:

 

  • Título <nombre de la historia de usuario>

  • Cómo <usuario, persona o rol>

  • Quiero <tomar esta acción/actividad>

  • Para <conseguir este beneficio/valor de negocio>

Todos los miembros del equipo comparten y entienden el significado de “terminado” para cada ítem del Product Backlog de manera transparente.

 

El propósito de cada Sprint es entregar incrementos de funcionalidad que potencialmente se puedan poner en producción y que se ajustan a la definición de “Terminado” actual del Equipo Scrum.

Definición de Terminado

Eventos

  • 1-4 semanas

  • Cajas de tiempo que tiene un inicio y finales fijos

  • Misma duración

  • Cada nuevo Sprint comienza inmediatamente después de la finalización del Sprint previo

Sprint

  • 8 horas

  • Reunión de revisión de Product Backlog para llegar acuerdos

  • Selección de común acuerdo de X cantidad de ítems del Product Backlog al Sprint Backlog

  • Estimación de ítems (generalmente en horas)

Planificación del Sprint 

  • Duración 15 min

  • Cada día a la misma hora y en el mismo lugar

  • Revisión, inspección y adaptación

  • Se da respuesta a:

    • ¿Qué hice ayer que ayudó al Equipo de Desarrollo a lograr el Objetivo del Sprint?

    • ¿Qué haré hoy para ayudar al Equipo de Desarrollo a lograr el Objetivo del Sprint?​

    • ¿Veo algún impedimento que evite que el Equipo de Desarrollo o yo logremos el Objetivo del Sprint?

Scrum Diario

  • Duración 4 horas

  • Se realiza al finalizar el Sprint

  • Revisión de tareas terminadas

  • Información bidireccional de avance y ajuste de la dirección e importancia del Product Backlog restante

  • Todos tienen visibilidad de lo que está ocurriendo y del estado del proyecto

Revisión del Sprint

  • 3 horas

  • Se realiza al finalizar la reunión de "Revisión del Sprint" y antes de la siguiente reunión de "Planificación del Sprint"

  • Inspeccionar y adaptar al proceso

  • Reunión interna del Equipo Scrum para revisar cuán colaborativo y productivo es el equipo

  • Identificar obstáculos y comprometerse con acciones concretas de mejora

Retrospectiva del Sprint

 

Tiene 3 objetivos principales:

 

  • Inspeccionar cómo vivió el equipo el Sprint que acaba de terminar, en términos de: interacciones, relaciones, procesos, herramientas.

  • Identificar y ordenar los principales puntos positivos y potenciales mejoras

  • Crear un plan de acción con mejoras

Un Sprint se cancelaría si el Objetivo del Sprint llega a quedar obsoleto. Esto podría ocurrir si la compañía cambia la dirección o si las condiciones del mercado o de la tecnología cambian.

 

  • Se revisa lo que esté en Done y el Product Owner determina si lo terminado se acepta o no

  • Los elementos no finalizados deben ser replanificados y vuelven al Product Backlog

  • Se determina el compromiso de valor entregado sumando las HU entregadas y completas

  • Las tareas NO se cuentan como valor agregado

Cancelación del Sprint

Pruebas Ágiles

¿Qué son pruebas ágiles?

  • Es una práctica de pruebas de software que sigue los principios del desarrollo ágil de software.

  • Las metodologías ágiles no ven las pruebas de software como una fase separada, sino como parte integral del desarrollo de software al igual que la programación.

Principios de Pruebas Ágiles

  • El testing no es una fase

  • El testing hace avanzar el proyecto

  • Todo el equipo realiza pruebas

  • Reducir el tiempo para recibir retroalimentación

  • Código limpio

  • Reducir la documentación de pruebas

  • Guiado por pruebas

Niveles de Pruebas

Prueba Objetivo Ambiente Método
Unitario Detectar errores en los datos, lógica, algoritmos Desarrollo Caja Blanca
Integración Detectar errores de interfaces y relaciones entre componentes Desarrollo Caja Blanca
Funcional Detectar errores en la implementación de requerimientos Desarrollo Funcional
Sistema Detectar fallas en la implementación de los requerimientos Desarrollo Funcional
Aceptación Detectar fallas en la implementación del sistema Producción Funcional

Técnicas de Pruebas Ágiles

  • TDD (Test Driven Development)
  • ATDD (Acceptance Test Driven Development) 
  • BDD (Behauvior Driven Development)
  • Testing exploratorio
  • Automatización de pruebas de regresión
  • Automatización de pruebas unitarias

Pirámides de Pruebas

Cuadrantes de Pruebas Ágiles

Automatización

de Pruebas

Todas las metodologías ágiles implican constantes iteraciones, en las cuales el código de programa se modifica constantemente.


En cada iteración, además de expandir las funcionalidades del sistema, podemos realizar refactorizaciones para optimizar funcionalidad que ya se ha desarrollado.

Herramientas para la gestión de calidad de software

Gestión de pruebas de software

  1. Testlink

  2. Redmine

  3. Zephyr/Jira

  4. Gemini

  5. Hewlett Packard Quality Center (HP QC)

  6. IBM Rational Quality Manager

Automatización

1. Selenium

2. Cucumber

 

Seguimiento de incidencias

1. Mantis

2. Bugzilla

Referencias

 

  • Ciclo de Vida del Software https://repository.icesi.edu.co/biblioteca_digital/bitstream/item/4083/1/Presentacion_ciclo_vida_software.pdf

  • Manifesto for Agile Software Development http://agilemanifesto.org/iso/es/manifesto.html

  • Kanban http://www.javiergarzas.com/2011/11/kanban.html

  • XP (eXtreme Programming)  https://iie.fing.edu.uy/~josej/docs/XP%20-%20Jose%20Joskowicz.pdf

  • La Guía de Scrum http://www.scrumguides.org/docs/scrumguide/v1/Scrum-Guide-ES.pdf

  • Agile Testing   http://www.pmoinformatica.com/2015/03/que-es-el-agile-testing.html

  • Cuadrantes Agile Testing http://www.pmoinformatica.com/2015/04/pruebas-software-agile-cuadrantes-1.html

  • Herramientas de Calidad de Software http://www.pmoinformatica.com/2015/04/herramientas-gestion-calidad-software.html

Agile Testing

By Lizet Jaramillo

Agile Testing

Agile Testing es una práctica de pruebas de software que sigue los principios del desarrollo ágil de software.

  • 2,354