Serenity BDD (anteriormente Thucydides) es una poderosa biblioteca open-source que mejora el BDD proporcionando capacidades excepcionales de reportes y documentación viva. Según el JVM Ecosystem Report 2024 de JRebel, los frameworks BDD son utilizados por el 34% de los equipos de desarrollo Java, siendo Cucumber el más popular. Serenity extiende Cucumber y JBehave con reportes HTML entendibles para los stakeholders, historial completo de capturas de pantalla y trazabilidad de requisitos—transformando los resultados crudos de tests en documentación que los product owners pueden leer sin conocimiento técnico. El patrón Screenplay, la alternativa de Serenity a los Page Objects, aborda los problemas de mantenibilidad que hacen frágiles a las grandes suites de Selenium. Según los propios casos de estudio de Serenity, los equipos que adoptan Screenplay reportan una reducción del 40-60% en tiempo de mantenimiento gracias a una mejor separación entre objetivos del usuario e interacciones UI. Esta guía explora la integración de Serenity con frameworks BDD, la arquitectura del patrón Screenplay y sus capacidades de reportes.
TL;DR
- Serenity BDD envuelve Cucumber/JBehave con ricos reportes HTML, historial de capturas y trazabilidad de requisitos
- El patrón Screenplay reemplaza los frágiles Page Objects con Tasks, Actions y Questions centradas en actores
- Se integra con JUnit 5, TestNG, Maven y Gradle — sin servidor de reportes separado
- La documentación viva permite que las partes interesadas no técnicas lean los resultados como texto simple
Ideal para: Equipos Java que practican BDD y necesitan reportes legibles para stakeholders No recomendado si: No usas BDD/Gherkin o prefieres herramientas ligeras como Allure
Introducción a Serenity BDD
“El valor real de Serenity no son solo los reportes—es el patrón Screenplay. Cuando veo equipos escribiendo Page Objects de 500 líneas con docenas de métodos, sé que los costos de mantenimiento van a explotar. Screenplay te obliga a pensar en términos de lo que los usuarios realmente hacen, no qué botones existen en una página, lo que produce código de tests que sobrevive los rediseños de UI mucho mejor.” — Yuri Kan, Senior QA Lead
Documentación Viva: Pruebas como Documentación
Serenity genera automáticamente reportes ricos y narrativos que sirven como documentación viva del comportamiento de su sistema.
Configuración del Proyecto
<!-- pom.xml -->
<dependencies>
<dependency>
<groupId>net.serenity-bdd</groupId>
(como se discute en [Gauge Framework Guide: Language-Independent BDD Alternative to Cucumber](/es/blog/gauge-framework-guide)) <artifactId>serenity-core</artifactId>
<version>4.0.30</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber</artifactId>
<version>4.0.30</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-screenplay</artifactId>
<version>4.0.30</version>
</dependency>
</dependencies>
Patrón Screenplay: Pruebas Centradas en Actores
El patrón Screenplay proporciona un enfoque más mantenible y expresivo para la automatización de pruebas.
Componentes de Screenplay
// Tareas
public class Login implements Task {
private final String username;
private final String password;
public static Login withCredentials(String username, String password) {
return new Login(username, password);
}
@Override
@Step("{0} inicia sesión con usuario #username")
public <T extends Actor> void performAs(T actor) {
actor.attemptsTo(
Open.browserOn().the(LoginPage.class),
Enter.theValue(username).into(LoginPage.USERNAME_FIELD),
Enter.theValue(password).into(LoginPage.PASSWORD_FIELD),
Click.on(LoginPage.LOGIN_BUTTON)
);
}
}
Comparación de Características de Reportes
| Característica | Serenity BDD | Cucumber HTML | Extent Reports |
|---|---|---|---|
| Documentación Viva | Excelente | Básica | Buena |
| Capturas de Pantalla | Automático | Manual | Manual |
| Historial de Pruebas | Sí | No | Sí |
| Trazabilidad de Requisitos | Sí | No | Limitada |
| Filtrado por Tags | Avanzado | Básico | Bueno |
| Métricas de Rendimiento | Sí | No | Limitada |
| Amigable para Stakeholders | Excelente | Pobre | Buena |
Conclusión
Serenity BDD eleva el desarrollo orientado al comportamiento transformando las pruebas en documentación viva comprehensiva. Su integración perfecta con Cucumber y JBehave, combinada con el poderoso patrón Screenplay y capacidades ricas de reportes, lo hace una excelente opción para equipos que buscan automatización de pruebas amigable para las partes interesadas.
Ventajas clave:
- Documentación Viva: Generación automática de reportes narrativos
- Patrón Screenplay: Diseño de pruebas mantenible centrado en actores
- Reportes Ricos: Capturas de pantalla, historial y trazabilidad de requisitos
- Integración de Framework: Funciona con Cucumber, JBehave, JUnit
- Valor para Stakeholders: Reportes legibles para no técnicos
Para equipos que priorizan comunicación, trazabilidad y documentación comprehensiva junto con automatización de pruebas, Serenity BDD proporciona una solución inigualable que cierra la brecha entre pruebas técnicas y comprensión del negocio.
FAQ
¿Qué es Serenity BDD y en qué se diferencia de Cucumber normal?
Serenity BDD es una capa open-source de reportes y documentación construida sobre Cucumber, JBehave o JUnit/TestNG. Mientras Cucumber ejecuta escenarios Gherkin, Serenity añade reportes HTML ricos con capturas de pantalla, historial de pasos, trazabilidad de requisitos y el patrón Screenplay. El resultado es documentación viva que las partes interesadas no técnicas pueden leer de forma independiente.
¿Soporta Serenity BDD Playwright o solo Selenium?
Serenity BDD soporta Selenium WebDriver nativamente a través de serenity-webdriver. El soporte de Playwright está disponible via adaptadores de terceros pero aún no es oficial. Para proyectos Playwright puros, Allure o el reporter integrado de Playwright es más apropiado.
¿Qué es el patrón Screenplay en Serenity BDD?
Screenplay es un patrón de diseño centrado en actores donde los tests se escriben como interacciones realizadas por Actores usando Habilidades. En vez de Page Objects, creas Tasks (objetivos del usuario), Actions (interacciones UI) y Questions (verificación de estado). Según la documentación de Serenity BDD, los equipos que adoptan Screenplay reportan una reducción significativa en el tiempo de mantenimiento.
¿Es Serenity BDD gratuito para uso comercial?
Sí, Serenity BDD es completamente open-source bajo la licencia Apache 2.0. La biblioteca core, soporte de Screenplay, integración con Cucumber/JBehave y reportes HTML son todos gratuitos. Serenity/JS (el port JavaScript) también es open-source.
Recursos Oficiales
- Serenity BDD Documentation — guías oficiales y referencia del patrón Screenplay
- Cucumber Documentation — el framework BDD que Serenity envuelve
- Serenity/JS Documentation — port JavaScript/TypeScript de Serenity BDD
- Test Automation University — cursos gratuitos incluyendo contenido de Serenity
See Also
- Katalon Studio: Plataforma Completa Todo-en-Uno para Automatización de Pruebas - Guía completa de Katalon Studio como solución todo-en-uno para…
- Allure Framework: Creando Reportes de Testing Hermosos - Allure Framework: reportes HTML interactivos, integración…
- Automatización BDD con Cucumber: Guía Completa de Pruebas Orientadas al Comportamiento - Guía completa de automatización BDD con Cucumber cubriendo…
- Técnicas Avanzadas de Pytest: Dominando la Automatización de Pruebas en Python - Guía completa de características avanzadas de pytest incluyendo…
