La Especificación Mediante Ejemplos (SBE) es una técnica utilizada en el desarrollo ágil para definir requerimientos y reglas de negocio en términos de ejemplos concretos. Esta técnica se basa en la colaboración entre equipos multidisciplinarios, donde desarrolladores, testers y especialistas en negocio, entre otros, trabajan juntos para definir y comprender los requerimientos.
En lugar de utilizar documentación pesada y detallada, SBE proporciona una visión clara y comprensible de lo que se espera que haga un producto o función específica. Estos ejemplos proporcionan una base para las pruebas automáticas y sirven como documentación viva que evoluciona con el proyecto.
Además, SBE promueve la comunicación y la colaboración, ya que los equipos deben trabajar juntos para elaborar, discutir y validar estos ejemplos. En el proceso, se identifican posibles ambigüedades o malentendidos, lo que a su vez mejora la calidad del software.
El uso de SBE también puede facilitar la implementación de Desarrollo Guiado por Comportamiento (BDD) o Test Driven Development (TDD), ya que los ejemplos pueden convertirse fácilmente en pruebas. Estas pruebas no sólo validan que el software funcione como se espera, sino que también sirven como una especie de “contrato” entre el equipo de desarrollo y las partes interesadas sobre cómo se espera que funcione el sistema.
La SBE es realizada por equipos multidisciplinarios, incluyendo desarrolladores, testers, especialistas en negocio y cualquier otra parte interesada relevante. Se lleva a cabo mediante sesiones de colaboración en las que se discuten y definen ejemplos concretos para especificar requerimientos. Estas sesiones suelen realizarse al inicio de cada iteración o sprint, pero pueden hacerse según sea necesario a lo largo del proyecto. Para el proceso, se utilizan herramientas específicas de SBE, como Cucumber o SpecFlow, que permiten definir ejemplos y convertirlos en pruebas automáticas.
Dentro de SBE, los ejemplos se describen en formatos estandarizados que representan escenarios específicos y esperados. No involucran cálculos matemáticos complejos, pero sí una estructura de “Dado – Cuando – Entonces” para establecer el contexto, la acción y el resultado.
Ejemplo 1: Imagina un sistema bancario.
Dado que un cliente tiene $100 en su cuenta,
Cuando el cliente retira $20,
Entonces el saldo restante en la cuenta debería ser $80.
Ejemplo 2: Considera una aplicación de ecommerce.
Dado que un cliente añade un artículo de $50 a su carrito,
Y también añade otro artículo de $30,
Cuando el cliente procede al checkout,
Entonces el total a pagar debería ser $80.
Ejemplo 3: Piensa en una aplicación de reserva de vuelos.
Dado que un cliente selecciona un vuelo de ida y vuelta,
Y el vuelo de ida cuesta $150 y el vuelo de vuelta $170,
Cuando el cliente finaliza la reserva,
Entonces el costo total debería ser $320.
Estos ejemplos muestran cómo, utilizando SBE, se puede describir de manera concisa y clara la funcionalidad esperada de un sistema. Los escenarios proporcionan una manera de verificar que el sistema cumple con las expectativas y sirven como una fuente de documentación para futuras referencias.