Buscar en Gazafatonario IT

Mostrando las entradas con la etiqueta BDD. Mostrar todas las entradas
Mostrando las entradas con la etiqueta BDD. Mostrar todas las entradas

lunes, enero 16, 2023

Historias de usuario basadas en el comportamiento

 

 Foto de Icons8 Team en Unsplash

Ya sabemos que el así llamado Desarrollo Conducido por Comportamiento (BDD por las siglas en inglés de Behavior-driven development) es un proceso de desarrollo de software que se enfoca en el comportamiento de una aplicación. BDD acentúa la comunicación y la colaboración entre los desarrolladores, y aquí estoy usando “desarrolladores” en el sentido amplio de Scrum, es decir, las personas que elaboran software, sean especialistas en áreas como desarrollo o aseguramiento de la calidad, o en el sentido preferido de los practicantes ágiles, personal más especialista-generalista o simplemente más multifuncionales. Pero BDD no solo resalta la comunicación entre ellos, sino también entre estos desarrolladores y las personas no técnicas dentro y fuera de los equipos, como un Product Owner, usuarios o interesados.

En general, BDD implica la creación de casos de prueba que describen el comportamiento del sistema desde la perspectiva del usuario final. Estos casos de prueba, llamados "características" (“features”), se escriben en una sintaxis de lenguaje natural llamada "Gherkin", lo que posibilita que todos los miembros del equipo puedan leer y, mejor aún, entender las funciones de la aplicación, independientemente de su experiencia técnica.

Por ejemplo, si el sistema que se está desarrollando es un sitio web o una aplicación para un servicio de emisión o transmisión en directo por suscripción que les permita a usuarios ver series y películas en un dispositivo con conexión a internet, puedo tener la posibilidad de adicionar películas a una lista de películas favoritas:

Característica: Lista de Favoritas

Como usuario, Quiero agregar películas a mi lista de favoritas y conservarlas allí para poder verlas posteriormente

Luego, puedo agregar uno o más bloques de "escenario" que describen comportamientos o acciones específicas que el sistema debería poder realizar.

Escenario: Agregar película a la lista de favoritas

Dado que estoy en la página principal

Cuando busque por “películas de Ciencia Ficción”

Y haga clic en el botón “Adicionar a la lista” del primer resultado

Entonces la película debe ser adicionada a mi lista de favoritas

Y se repite la adición de escenarios para cada comportamiento que se quiera probar de la aplicación. Como siempre, es importante tener en cuenta que el comportamiento y sus escenarios solo deben se definen desde la perspectiva del usuario final. No debe contener detalles de implementación ni jerga técnica.

Ejemplos de historias de usuario tipo Gherkin

Y es aquí donde entran las historias de usuario. Podemos usar este “lenguaje natural” tipo “Gherkin” para representarlas. Sigamos con el ejemplo de la aplicación de transmisión que llamaremos RedTV.

Dado: un usuario tiene una cuenta con la plataforma RedTV

Cuando: el usuario intenta iniciar sesión

Entonces: El usuario se autentica y puede acceder al servicio de streaming

 

Dado: un usuario está buscando una película o una serie

Cuando: el usuario ingresa el título que quiere

Entonces: al usuario se le presentan las opciones de transmisión disponibles

 

Dado: un usuario está transmitiendo contenido

Cuando: el usuario detiene la transmisión

Entonces: el contenido se detiene y se puede reanudar más tarde

 

A estas historias de usuario podemos agregar algunos criterios de aceptación:

1.    El usuario puede iniciar y cerrar sesión en la plataforma de transmisión con las credenciales de su cuenta.

2.    El usuario puede buscar cualquier título, ya sea una película o serie, y ver las opciones de transmisión disponibles.

3.    El usuario puede poner en pausa el contenido de transmisión y reanudarlo más tarde.

4.    El contenido no debe interrumpirse ni detenerse mientras el usuario está transmitiendo.

5.    La calidad de la transmisión debe ser constante durante toda la duración de la transmisión.

6.    La plataforma de transmisión debe ser accesible tanto en dispositivos móviles como en computadoras de escritorio.

Advertencia: no todos estos criterios son para todas las historias de usuario anteriormente descritas. Dejo al lector para que use su habilidad de discernir sobre cuáles criterios serían de qué historias.

Ahora sí, veamos algunos ejemplos de historias de usuario con sus respectivos criterios de aceptación:

Dado: un usuario está navegando por el servicio de transmisión

Cuando: al usuario se le presentan recomendaciones basadas en su historial de visualización

Entonces: El usuario recibe recomendaciones de contenido personalizadas.

Criterios de aceptación:

1.    El usuario debe recibir recomendaciones personalizadas basadas en su historial de visualización y preferencias.

2.    El algoritmo de recomendación de contenidos debe ser eficaz y preciso.

3.    El usuario debe poder filtrar las recomendaciones por género, clasificación por edad y otros parámetros.

4.    El usuario debe recibir las recomendaciones más actualizadas.

 

Dado: un usuario está navegando por el servicio de transmisión

Cuando: el usuario intenta ver una película o un programa de televisión

Entonces: al usuario se le presentan todas las opciones de transmisión disponibles

Criterios de aceptación:

1.    Al usuario se le deben presentar todas las opciones de transmisión disponibles para una película o programa de televisión.

2.    Las opciones de transmisión deben incluir opciones premium y opciones gratuitas.

3.    El usuario debe poder filtrar las opciones de transmisión por precio, calidad y otros parámetros.

4.    El usuario debe tener la información más actualizada sobre las opciones de transmisión.

 

Dado: un usuario está transmitiendo contenido

Cuando: el usuario intenta cambiar la calidad de la transmisión

Entonces: Al usuario se le presenta una gama de opciones de calidad.

Criterios de aceptación:

1.    Al usuario se le debe presentar una variedad de opciones de calidad para elegir.

2.    La calidad de transmisión no debe degradarse al cambiar la configuración de calidad.

3.    El usuario debe poder cambiar entre configuraciones de calidad con una interrupción mínima.

4.    La configuración de calidad debe ser uniforme en todos los dispositivos.

 

Dado: un usuario está navegando por el servicio de transmisión

Cuando: el usuario intenta comprar una película o una serie

Entonces: Al usuario se le presentan opciones de pago

Criterios de aceptación:

1.    Al usuario se le debe presentar una variedad de opciones de pago.

2.    El proceso de pago debe ser seguro y fácil de usar.

3.    El usuario debe tener la opción de comprar contenido por tiempo limitado o de forma permanente.

4.    El proceso de pago debe explicarse claramente al usuario.

Ahora sí, una brevísima explicación de esta forma BDD "dado-cuando-entonces" de historias de usuario

El formato Gherkin-BDD "dado-cuándo-entonces" es una forma de representar historias de usuario que se centra en el punto de vista del usuario. La forma se divide en tres partes: Dado, Cuándo y Entonces. La parte "Dado" de la historia de usuario establece el contexto y describe la situación actual. La parte "Cuando" describe la acción que está realizando el usuario. La parte "Entonces" describe el resultado esperado de la acción. Esta forma permite que las historias de usuario se expresen desde la perspectiva del usuario, asegurando que se consideren las necesidades y expectativas del usuario.

Podemos usar diferentes estilos para relatar o representar historias de usuario. Veamos un ejemplo de una historia de usuario primero en el estilo clásico "Como - Quiero - Para " y luego, la misma historia en la forma “Dado - Cuando - Entonces”.

Como usuario,

Quiero modificar la información de mi perfil

Para poder mantenerla actualizada.

Ahora en “Gherkin”:

Dado: Un usuario tiene una cuenta

Cuando: el usuario intenta modificar la información de su perfil

Entonces: el usuario puede actualizar correctamente la información de su perfil

Y algunos criterios de aceptación:

1.    El usuario puede ver la información de su perfil.

2.    El usuario puede modificar la información de su perfil.

3.    El usuario puede guardar los cambios que realiza en la información de su perfil.

4.    El usuario puede eliminar la información de su perfil si así lo decide.

5.    Las modificaciones a la información del perfil deben ser seguras y privadas.

Algunas recomendaciones para narrar mejores historias de usuario con la forma BDD

Usa mi modelo de las 5 C:

1.    Céntrate en la perspectiva del usuario: representar historias de usuario desde el punto de vista del usuario es clave para asegurarse de que se cumplan sus necesidades y expectativas. Esto no es exclusivo para esta forma de representación, pero siempre es bueno recordarlo, las historias son “de usuario”, no de desarrollador, de interesado ni de gerencia.

2.    Concretiza: Sé específico. Asegúrate de incluir tantos detalles como sea posible, ya que esto facilitará que quienes implementen las características del producto comprendan el resultado deseado. Esto no tienes que hacerlo solo “escribiendo” historias de usuario. Recuerda que la parte más importante de estas es la conversación que tengas alrededor de la misma. Esto no cambia con una modificación en la forma de representarlas.

3.    Colabora: invita a los interesados y los desarrolladores a colaborar al describir historias de usuario, ya que esto ayuda a garantizar que estas sean claras y brinden la mayor cantidad de detalles posible. Las historias de usuario son un protocolo de colaboración, es una forma de realizar el trabajo en torno a un objetivo deseado.

4.    Considera casos extremos: asegúrate de incluir cualquier caso extremo al contar historias de usuario, ya que esto ayudará a garantizar que se contemplen todos los resultados posibles. Pero no te estreses con tratar de adjuntar todos los casos: primero los más críticos u obligatorios, luego los importantes y por último, si hay tiempo y presupuesto, los buenos, bonitos y baratos.

5.    Cata: Prueba y perfecciona. Después de crear historias de usuario, evalúalas para asegurarte de que sean claras y precisas, y perfecciona según corresponda. La calidad del producto comienza con la calidad de las conversaciones que tengas sobre cada historia de usuario de este.

Conclusión

Esta apenas es una forma más de representar historias de usuario que puedes incluir en tu caja de herramientas y enseñarla a tus equipos lo más pronto posible. Los beneficios de usar una forma u otra vienen dados por el contexto y por los resultados que quieras obtener. No te voy a decir que una forma es mejor que otra, porque no es cierto.

Anexo # 1: historias de usuario de la aplicación RedTV en la forma BDD, cada una con sus respectivos criterios de aceptación.

 

Dado: un usuario está buscando películas o series para ver

Cuando: al usuario se le presenta una variedad de opciones de género

Entonces: El usuario puede filtrar las recomendaciones por género

Criterios de aceptación:

1.    Al usuario se le debe presentar una lista de opciones de género para elegir.

2.    La lista de opciones de género debe ser completa y estar actualizada.

3.    El usuario puede filtrar el contenido recomendado en función de su selección de géneros.

 

Dado: un usuario ha comenzado a ver una película o serie

Cuando: el usuario desea saltar a una escena o sección específica

Entonces: el usuario puede buscar escenas específicas dentro del contenido

Criterios de aceptación:

1.    El usuario puede buscar escenas específicas dentro del contenido que está viendo.

2.    La búsqueda debe ser efectiva y precisa.

3.    El usuario puede saltar fácilmente a la escena que está buscando.

 

Dado: un usuario está transmitiendo contenido

Cuando: el usuario intenta ajustar la configuración de audio

Entonces: el usuario puede ajustar la configuración de audio

Criterios de aceptación:

1.    El usuario puede ajustar la configuración de audio del contenido que está transmitiendo.

2.    El usuario puede ajustar el volumen, el balance y otras configuraciones de audio.

3.    La configuración de audio debe ser uniforme en todos los dispositivos y plataformas.

 

Dado: un usuario está transmitiendo contenido

Cuando: el usuario intenta compartir el contenido con amigos

Entonces: el usuario puede compartir el contenido en las redes sociales y otras plataformas

Criterios de aceptación:

1.    El usuario puede compartir el contenido con amigos en las redes sociales y otras plataformas.

2.    El proceso de compartir debe ser fácil y seguro.

3.    Los usuarios deben poder compartir contenido desde su dispositivo, así como desde la plataforma de transmisión.

 

Dado: un usuario está buscando películas y series

Cuando: al usuario se le presentan opciones de control parental

Entonces: el usuario puede restringir el contenido según las clasificaciones de edad

Criterios de aceptación:

1.    Al usuario se le deben presentar opciones de control parental cuando busca películas y programas de televisión.

2.    El usuario debe poder restringir el contenido según las clasificaciones de edad.

3.    Las clasificaciones de edad deben ser consistentes y estar actualizadas.

4.    Las opciones de control parental deben ser seguras y fáciles de usar.

Anexo # 2: historias de usuario de una Billetera Digital en la forma BDD

Como usuario de la Billetera Digital,

Quiero agregar mi tarjeta de crédito a mi billetera digital

para hacer pagos usando mi teléfono.

Dado que estoy conectado a mi cuenta

Cuando hago clic en el botón "Agregar tarjeta"

E ingreso los datos de mi tarjeta de crédito

Entonces mi tarjeta de crédito debe agregarse a mi billetera digital

 

Como usuario,

Quiero poder realizar pagos con mi monedero digital

para no tener que llevar mi tarjeta física conmigo.

Dado que tengo una tarjeta de crédito agregada a mi billetera digital

Cuando elijo la tarjeta en un punto de venta

E ingreso mi número de teléfono o escaneo un código QR

Luego, el pago debe procesarse utilizando mi billetera digital.

 

Como usuario,

Quiero ver mi historial de transacciones

para hacer un seguimiento efectivo de mis pagos.

Dado que estoy conectado a mi cuenta

Cuando hago clic en la pestaña "Historial de transacciones"

Entonces debería ver una lista de todas mis transacciones anteriores

Criterios de aceptación:

1.    El usuario debe poder ver una lista de todas sus transacciones anteriores

2.    El historial de transacciones debe incluir la fecha, el monto y el comerciante de cada transacción

3.    El usuario debe poder filtrar y ordenar el historial de transacciones por varios criterios (por ejemplo, fecha, monto, comerciante)

 

Como cliente,

Quiero seguir el estado de mis transacciones actuales o en curso

para conocer el momento exacto en que mis transacciones se hagan efectivas

Dado que estoy conectado a mi cuenta

Y estoy en la página "Mis transacciones"

Cuando hago clic en el botón "Rastrear transacción" para una transacción actual

Entonces debería ver el estado actual de la transacción seleccionada (por ejemplo, "Procesando", "Enviada", etcétera.)

 

Como usuario,

Quiero agregar varias tarjetas de crédito a mi billetera digital

para que pueda elegir qué tarjeta usar para cada pago.

Dado que estoy conectado a mi cuenta

Cuando hago clic en el botón "Agregar tarjeta"

E ingreso los datos de mi tarjeta de crédito

Entonces mi tarjeta de crédito debe agregarse a mi billetera digital

 

Como usuario,

Quiero ver y administrar todas mis tarjetas de crédito en mi billetera digital

para seleccionar fácilmente la tarjeta que quiero usar para cada pago.

Dado que tengo varias tarjetas de crédito agregadas a mi billetera digital

Cuando hago clic en la pestaña "Tarjetas"

Entonces debería ver una lista de todas mis tarjetas de crédito.

Y debería poder seleccionar una tarjeta para hacer un pago.

 

Como usuario,

Quiero eliminar tarjetas de crédito de mi monedero digital

para retirar las tarjetas que ya no uso y controlar mejor la seguridad de mis datos financieros

Dado que tengo varias tarjetas de crédito agregadas a mi billetera digital

Cuando hago clic en el botón "Eliminar" para una tarjeta específica

Entonces, la tarjeta seleccionada debe eliminarse de mi billetera digital

 

Como usuario,

Quiero poder realizar pagos con mi monedero digital

para no tener que llevar mi tarjeta física conmigo.

Dado que tengo una tarjeta de crédito agregada a mi billetera digital

Cuando elijo la tarjeta en un punto de venta

E ingreso mi número de teléfono o escaneo un código QR

Entonces, el pago debe procesarse utilizando mi billetera digital.

Criterios de aceptación:

1.    El usuario puede seleccionar una tarjeta de crédito de su billetera digital para realizar un pago

2.    El usuario puede ingresar su número de teléfono o escanear un código QR para completar el pago

3.    El pago debe ser procesado con éxito y el usuario debe recibir una confirmación del pago

 

Como usuario,

Quiero poder realizar pagos con mi billetera digital en cualquier lugar que acepte tarjetas de crédito

para que pueda hacer pagos donde quiera que esté.

Dado que tengo una tarjeta de crédito agregada a mi billetera digital

Cuando elijo la tarjeta en un punto de venta

E ingreso mi número de teléfono o escaneo un código QR

Luego, el pago debe procesarse utilizando mi billetera digital.

Criterios de aceptación:

1.   El usuario debe poder realizar pagos en cualquier lugar que acepte tarjetas de crédito (por ejemplo, en la tienda, en línea)

2.   El usuario debe poder seleccionar una tarjeta de crédito de su billetera digital para realizar un pago

3.   El pago debe ser procesado con éxito y el usuario debe recibir una confirmación del pago