Formación en Gherkin
Noviembre 2019
Contenido
01 OBJETIVO DEL CURSO
02 TDD, BDD y ATDD
03 HISTORIA DE USUARIO
04 GHERKIN
05 EJERCICIOS
© 2019 Everis
OBJETIVO DEL CURSO
© 2019 Everis
01
OBJETIVO DEL CURSO
Los Objetivos de la sesión son:
• Determinar conceptos de Historia de Usuario.
• Establecer GHERKIN como sintaxis para escribir nuestros casos de prueba basado en historias de usuario.
© 2019 Everis
TDD, BDD y ATDD
© 2019 Everis
02
TDD, BDD Y ATDD
TDD - Desarrollo Guiado por pruebas:
- Enfocado a pruebas unitarias.
Escribe una prueba que falla
RED
(Fail)
CICLO
TDD
Mejora el código sin cambiar Haga el código suficiente
el comportamiento para pasar la prueba
REFACT GREEN
OR (Pass)
© 2019 Everis
02
TDD, BDD Y ATDD
BDD - Desarrollo Guiado por Comportamiento:
- Enfocado a pruebas funcionales y/o aceptación.
Inicio de Fase Sprint e Implementación
Historia de Generación de Ejecución de
Usuario Scripts Scripts
PO QA QA
Criterios de Crear Arquitectura
Aceptación de Solución Código/
Refactorización
PO QA
Archivos Definición de Resultado de
Escenario y Prueba
Feature
Feature
QA/BA QA/BA QA
Prueba Passed
Prueba Failed
© 2019 Everis
02
TDD, BDD Y ATDD
Entrega Especificación
Desarrollo Guiado por
ATDD Pruebas de Aceptación
Enfocado P.
Aceptación
Desarrollo
Herramientas
Escribir
Escenario de Herramientas
Desarrollo Guiado por
Prueba BDD Prueba Escribir Test
Comportamiento Conforme Fallido
Enfocado P.
Funcional TDD
Desarrollo Guiado
por Prueba
Enfocado P.
Refactorizar Unitarias
© 2019 Everis
02
TDD, BDD Y ATDD
ÍTEM TDD BDD ATDD
TDD es una técnica de desarrollo TDD es una técnica de desarrollo ATDD es una técnica similar a BDD
que se centra más en la que se centra en el comportamiento que se enfoca más en capturar los
Definición implementación de pruebas del sistema requisitos
unitarias
Participantes Desarrollador Desarrollador, QA, Cliente Desarrollador, QA, Cliente
Lenguaje Java, .NET, Python Cucumber, Gherkin Gherkin
Enfoque Principal Pruebas unitarias Pruebas de aceptación Pruebas de Aceptación
Herramientas Junit, TestNG Gherkin, Cucumber -
© 2019 Everis
HISTORIA DE USUARIO
© 2019 Everis
03
HISTORIA DE USUARIO
Para ISTQB Foundation Level Agile Tester, la definición de hecho para historias de usuarios pueden determinarse
mediante lo siguientes criterios:
• Las historias de usuario seleccionadas para iteración están completas, son entendidas por el equipo y tienen criterios de
aceptación detallados y comprobables.
• Todos los elementos de la historia del usuario se especifican y revisan, incluida la historia del usuario. Para pruebas de
aceptación.
Una Historia de Usuario es una descripción de la funcionalidad o necesidad del negocio a implementarse.
Elementos de las Historias de Usuario:
Tarjeta (Card)
Conversación (Conversation)
Confirmación (Confirmation)
© 2019 Everis
03
HISTORIA DE USUARIO
Estructura de Historia de Usuario
Para escribir una buena historia de usuario, Mike Cohn propuso la siguiente estructura en su libro Succeeding with Agile:
• COMO: usuario / cliente / rol
• QUIERO (DESEO/ NECESITO): requerimiento, funcionalidad
• PARA: ¿Obtener qué? (ganancia, valor) ; ¿Por qué el usuario desea el requisito? ¿Qué está intentando lograr? En otras
palabras, ¿Cuál es el objetivo?
Criterios de aceptación
Los criterios de aceptación es una lista específica y definida de condiciones que deben cumplirse antes de que una historia
de usuario sea considerada como completada y el entregable de dicha historia es aceptado por el cliente
La forma más utilizada para describir los criterios de aceptación es conocida como:
• DADO: son las pre-condiciones que debe cumplir el software para iniciar las pruebas.
• CUANDO: son las acciones que ejecuta el usuario para iniciar las pruebas.
• ENTONCES: son los resultados esperados después de haber ejecutado las pruebas.
© 2019 Everis
GHERKIN
© 2019 Everis
04
GHERKIN
¿Qué es Gherkin?
Gherkin define la estructura y una sintaxis básica para la descripción de las pruebas que pueden ser entendidas tanto por los
integrantes técnicos del equipo como así también por los Analistas/PO/TPO/CX o quien quiera que esté como representante del
cliente.
Gherkin tiene múltiples propósitos:
• Pruebas Automatizadas con Cucumber.
• Documentar cómo se comporta realmente el sistema. Feature: Title of your feature
I want to use this template for my feature
• Especificación ejecutable inequívoca.
file
@tag1
Scenario: Title of your scenario
Given I want to write a step with
precondition
And some other precondition
When I complete action
And some other action
And yet another action
Then I validate the outcomes
And check more outcomes
© 2019 Everis
04
GHERKIN
¿Cómo interviene Gherkin en la automatización?
Page Object Pattern
Test Web Web
Scripts Object Page
Archivo Feature Ejecución Script
Reportes
Chrome
Pasos en Combinado con Definición Selenium
Gherkin de
Escenario Edge
Como se aprecia en la arquitectura de automatización, Gherkin intervine desde el inicio de la solución, forma un pilar importante
para construir nuestra SAP.
© 2019 Everis
04
GHERKIN
Palabras Clave - Keywords
Para poder escribir las Historias de Usuarios en Casos de Prueba con Gherkin se utilizan palabras reservadas:
Feature: Indica la característica del sistema o la funcionalidad que vamos a probar. Debe ser un título claro y explícito.
Scenario: Describe cada escenario que vamos a probar.
Given (Dado): describe las condiciones previas y/o el estado inicial en que se debe encontrar el software antes del inicio
de las pruebas.
When (Cuando): Especifica el conjunto de acciones que lanzan la prueba (Es la interacción del usuario que acciona la
funcionalidad que deseamos probar).
Then (Entonces): Especifica el resultado esperado de las pruebas. Observamos los cambios en el sistema y vemos si
son los deseados.
En los casos que se tenga múltiples pre-condiciones, acciones de usuario y resultados esperados, podemos utilizar las
siguientes palabras claves:
And (Y): Se utiliza para añadir mas condiciones a los pasos.
But (Pero): Se utiliza para agregar una condición que sea opuesta a la premisa que se está probando.
© 2019 Everis
04
GHERKIN
Feature - Característica
Feature: Mostrar opciones de información de la aplicación
Para poder conocer acerca de la aplicación
Como usuario
Quiero tener acceso las opciones de información
• Describe la historia que vamos a probar.
• El keywork Feature es la primera palabra con que inicia el documento, debe estar seguido de dos punto (:)
en el que posterior a eso se describe la historia.
• Se puede agregar más descripción de la historia (Como-Quiero-Para o Para-Como-Quiero) en las líneas
debajo de Feature.
• Las líneas de descripción son ignoradas en tiempo de ejecución, pero se muestran en los reportes.
• Para indicar el lenguaje se debe colocar #Lenguage: Lenguaje a usar. Para ingles no es necesario indicar el
lenguaje.
© 2019 Everis
04
GHERKIN
Scenario - Escenario
• Un escenario es el comportamiento esperado del software.
• Un escenario debe contemplar de uno a más criterios de aceptación.
• Una historia puede tener de uno a más escenarios.
• El keywork Scenario debe estar seguido de dos punto (:) en el que posterior a eso se describe el
escenario a probar.
• Un escenario es una prueba que puede tener tantos steps como se desee. Pero se recomienda no
abusar del uso de estos.
• Steps:
• Cada step inicia con Given, When, Then, And, But.
© 2019 Everis
04
GHERKIN
Ejemplo de escritura en Gherkin
Feacture: Crear Cuenta
Scenario: Realizar Apertura de Cuenta
Given un usuario esta en la página principal de Portal
And que el portlet Apertura de Cuentas muestra el combo “Tipo de Cuenta”
And muestre el combo “Modalidad”
When el usuario selecciona “Ahorro” en la lista Tipo de Cuenta
And el usuario selecciona “Individual” en la lista Modalidad
And el usuario selecciona “Cuenta Ilimitada BCP” en el lista Tipo de Sub Producto
And el usuario selecciona “Nacional” el la opción Moneda
And el usuario hace clic el botón “Siguiente”
Then el usuario podrá visualizar las Cuentas Generadas
And el usuario podrá visualizar la cartilla Generada
Imagina esto en 1922
Esfuércese por encontrar ejemplos que no hagan suposiciones sobre la tecnología o la interfaz de
usuario. Imagina que es 1922, cuando no había computadoras.
© 2019 Everis
04
GHERKIN
Ejemplo de escritura en Gherkin
Feacture: Crear Cuenta
Para poder tener una cuenta
Como usuario
Quiero poder crear varias cuentas en la aplicación
Background:
Given un usuario esta en la página principal de Portal
And que el portlet Apertura de Cuentas muestra el combo “Tipo de Cuenta”
And muestre el combo “Modalidad”
ScenarioOutline: Realizar Apertura de Cuenta
When el usuario selecciona <Tipo Cuenta> en la lista Tipo de Cuenta
And el usuario selecciona <Modalidad> en la lista Modalidad
And el usuario selecciona <Sub Producto> en el lista Tipo de Sub Producto
And el usuario selecciona “Nacional” el la opción Moneda
And el usuario hace clic el botón “Siguiente”
Then el usuario podrá visualizar las Cuentas Generadas
And el usuario podrá visualizar la cartilla Generada
Examples::
| Tipo Cuenta | Modalidad | Sub Producto |
| Ahorro | Individual | Cuenta Digital BCP |
© 2019 Everis
04
GHERKIN
Tabla de Palabras Clave
keyword Ejemplo
Descripción
Ingles Español
Feature Característica Describe la historia que vamos a probar
Scenario Escenario Describe el escenario que vamos a probar
Given Dado Describe el contexto inicial
When Cuando Describe un evento o una acción
Then Entonces Describe un resultado esperado
And Y Indica que estamos continuando el paso superior
But Pero Indica que estamos continuando el paso superior
Background Antecedentes Steps ejecutados antes de cada escenario
Scenario Outline Esquema del escenario Indica que el escenario se ejecutará con ejemplos
Examples Ejemplos Indica que se usarán parámetros para la ejecución del escenario
© 2019 Everis
EJERCICIOS
© 2019 Everis
05
EJERCICIOS
Configuración de entorno
Configuraremos el siguiente entorno de automatización para utilizar Gherkin.
1. Descargar e Instalar Eclipse IDE 2019-09
2. Descargar e Instalar [Link]
3. Crear variables de Entorno JAVA_HOME
4. Descargar las siguientes librerías en [Link]
4.1. gherkin-5.2.0
4.2. cucumber-java-4.7.4
4.3. cucumber-junit-4.7.4
4.4. cucumber-jvm-deps-1.0.6
4.5. cucumber-core-4.7.4
© 2019 Everis
Gracias