X
BLOG

Guía de 2021 para marcos de prueba de desarrollo impulsado por el comportamiento (BDD)

Guía de 2021 para marcos de prueba de desarrollo impulsado por el comportamiento (BDD) Tiempo de leer: 6 minutos

¿Qué es un marco de prueba de BDD?

El desarrollo impulsado por la conducta, o BDD, es una rama de los principios definidos por Desarrollo impulsado por prueba (TDD). En TDD, lo construimos bien. En BDD, nos aseguramos de construir lo correcto. Los principios y tecnologías aprovechados en BDD se han adoptado ampliamente en pruebas funcionales. Un marco de prueba de BDD incluye los de Cucumber y SpecFlow, que han permitido a los propietarios de productos no técnicos definir el comportamiento de la aplicación como texto legible por humanos. A medida que esos comportamientos (o características) se traducen en código de prueba, el equipo de control de calidad puede lograr la automatización de pruebas de forma más rápida y sencilla, incluso con una falta de conocimiento del dominio.

BDD no es un concepto nuevo en 2021. La mayoría de las organizaciones han adoptado BDD como la forma más efectiva de traducir los requisitos comerciales en un buen software. En este artículo, destacamos algunos de los principales controladores y tecnologías con un enfoque en Java.

¿Cuáles son los requisitos comerciales?

Los requisitos comerciales documentan las necesidades y el propósito del producto final. Los requisitos también definirán los usuarios y los estándares que se utilizarán para la evaluación. BDD proporciona herramientas y procesos compartidos en todo el equipo (técnico y no técnico) para fomentar la colaboración en el cumplimiento de los requisitos comerciales definidos.

Un requisito comercial traducido a un idioma como Pepinillo Puede ser definido como:

Dado Condición previa

Cuando te Acción

Entonces Resultado

Estas características (o comportamientos) se asignan para probar el código que puede ejecutar el comportamiento y validarlo. En desarrollo, la práctica es definir la característica ANTES de escribir cualquier código. Esto asegura que está construyendo lo correcto, ni más ni menos.

La estructuración de los requisitos comerciales como una declaración Dado / Cuándo / Entonces facilita la redacción de pruebas de aceptación.

¿Qué son las pruebas de aceptación?

Las pruebas de aceptación determinan si los requisitos de las características que se están probando cumplen con las expectativas. Esto ayuda a alinear el software con los requisitos comerciales definidos y garantizar que se cumplan las especificaciones. Las pruebas de aceptación son una parte integral del aseguramiento de la calidad, pero definir y ejecutar las pruebas de aceptación puede ser un desafío sin el conocimiento del dominio o una buena herramienta de automatización de pruebas funcionales.

¿En qué me he metido?

Analicemos qué son los marcos de prueba, junto con algunas tecnologías y desafíos que puede encontrar al implementar el marco de prueba de BDD como su solución de prueba de software.

En un nivel alto, los marcos de automatización de pruebas de BDD leen las especificaciones ejecutables escritas en inglés sencillo y verifican que las pruebas sean exitosas. BDD también va de la mano con Agile, lo que permite a los equipos de desarrollo y calidad optimizar sus flujos para la eficiencia.

Reduzca el costo de mantenimiento continuo de su código de prueba BDD

Pero la adopción de BDD no es una aventura de la noche a la mañana. El texto legible por humanos debe traducirse en código, y donde hay código, hay desarrolladores. Por lo general, esa biblioteca de prueba debe ser desarrollada y mantenida por desarrolladores o probadores técnicos (apuesto a que está calculando cuánto le costará). Aquí es donde entran en juego las herramientas del marco de pruebas BDD para ayudar a salvar el día. Para realizar la transición al marco BDD, puede depender de las soluciones de pruebas funcionales que se integran con el marco BDD para ayudarlo a definir características.

Infografía que muestra Definir - Archivo de características (arriba a la izquierda), Verificar - Herramienta BDD (arriba a la derecha), Crear código de pegamento.java (abajo, en el medio)

BDD en desarrollo

Hay tres pasos principales al aplicar las prácticas de BDD a sus pruebas.

  1. Defina el requisito comercial como una prueba (archivo de características) que fallará.
  2. Desarrolle aplicaciones para pasar las pruebas definidas por el archivo de características.
  3. Revise el código para asegurarse de que se cumplen los requisitos de las funciones y de que no está creando algo que no sea necesario.

Lavar, enjuagar, repetir. Aquí es donde vemos el beneficio de definir características antes de escribir cualquier código que ayuda a garantizar que solo está construyendo lo que necesita, sin lujos adicionales (o trabajo innecesario).

Cómo aprovechar BDD en la automatización de pruebas

BDD tiene muchos beneficios en las pruebas. El uso de un inglés sencillo para redactar pruebas significa que pueden redactarse más rápidamente, incluso por miembros del equipo no técnicos. Además, las pruebas de configuración y las pruebas de desmontaje, que pueden ser una secuencia compleja de llamadas a la API, se pueden definir en una "oración".

BDD fomenta el uso de metodologías ágiles durante el desarrollo y las pruebas. Permite el intercambio efectivo de conocimientos sobre el sistema y los requisitos de prueba entre todo un equipo. Los comportamientos también se pueden asignar a los requisitos de Jira, lo que puede ser valioso para la trazabilidad y la cobertura de la prueba.

Una vez que se crean sus archivos de características, es hora de automatizar. Los archivos de características se pueden ejecutar como parte de un flujo de DevOps o una canalización de versiones. Es importante contar con informes que mapeen los resultados de la ejecución con los requisitos para garantizar que los requisitos comerciales sean consistentes con las implementaciones presentadas por el equipo de desarrollo.

Como se mencionó anteriormente, el ahorro de costos es un gran beneficio. Dado que los usuarios pueden desarrollar sus propias bibliotecas y probar el código utilizando software como Parasoft Selenic y SOAtest, la dependencia de los desarrolladores para facilitar la infraestructura de prueba de BDD disminuye.

Cómo y por qué adoptar BDD en el desarrollo de software

¿Cuáles son los retos?

El mayor desafío en las pruebas de BDD es la necesidad de asignar el texto en “inglés simple” al código, adaptado a cada función. Se necesitan desarrolladores para desarrollar el código subyacente, y el costo de ese tiempo se suma rápidamente (pero no olvide los beneficios mencionados anteriormente: no se pierde toda esperanza).

Parasoft SOAtest alivia este desafío mediante la creación mejorada de IA de pruebas de componentes y API automatizadas sin script. Además, Parasoft Selenic ayuda a crear y mantener scripts de IU de Selenium. Este es un enfoque diferente para desarrollar su biblioteca de pruebas. Esto también significa que las personas sin conocimientos técnicos pueden crear pruebas, lo que permite a los desarrolladores dedicar su tiempo a desarrollar nuevas funciones, en lugar de probarlas.

Herramientas BDD

Probablemente una de sus mayores preguntas sobre las herramientas BDD hasta ahora ha sido: ¿Cómo uso BDD sin escribir código? Las herramientas de prueba que permiten a las personas sin conocimientos técnicos crear su propia biblioteca de pruebas o ampliar el marco existente pueden ser un paso crucial para aumentar el ROI de BDD.

Pepino

Cucumber usa el lenguaje Gherkin para definir casos de prueba. Es un lenguaje no técnico que es fácil de leer y usa declaraciones Dado / Cuándo / Entonces para estructurar los comportamientos de su software. También promueve las prácticas de BDD y utiliza requisitos claros desde el inicio del proceso. Todos estos atributos fáciles de usar hacen de Cucumber una de las herramientas más populares en BDD.

Una implementación común de Cucumber ejecutará pruebas de aceptación escritas en JUnit o TestNG, que pueden ser una prueba funcional o una prueba de IU de selenio. Las características están escritas en pepinillo y cada paso tiene un definición de paso que asigna la declaración a algún código.

Imagen de código para una definición de paso que comienza con @Given

Cada método de prueba corresponde a una oración, y Pepino es la piedra de Rosetta que hace la traducción.

Hoy, Cucumber es compatible con Ruby, Java, JavaScript y Python. También hay puertos de Cucumber a otros lenguajes, como SpecFlow para C #.

JUnit

JUnit es un marco simple para escribir pruebas repetibles. Se usa comúnmente para pruebas unitarias, pero se puede usar de manera eficiente para impulsar Selenium WebDriver o incluso escribir pruebas de rendimiento. Permite a los usuarios escribir métodos de prueba y afirmaciones o configurar / eliminar código. Pepino puede llamar a este código cuando lee un paso de Característica. JUnit5 ha agregado muchas características nuevas como la parametrización, pero otros marcos comunes, incluidos TestNG y RSpec, tienen sus propias ventajas.

Parasoft

Cuando las organizaciones tienen que elegir entre calidad y entrega, a menudo recurren a proveedores como Parasoft, que se han especializado en el desarrollo de software y la automatización de pruebas durante más de 30 años. El siguiente conjunto de herramientas permite a los equipos aprovechar al máximo BDD.

flauta dulce

Parasoft Recorder es una extensión de Chrome que captura la acción de la interfaz de usuario en la página web, así como el tráfico de la API. Estas grabaciones se pueden asignar a elementos de trabajo, características o historia de usuario. Esos metadatos pueden vivir con la prueba y vincularse a la función inicial para la trazabilidad en todo el SDLC.

Selenico

JUnit5 y TestNG se utilizan a menudo para realizar pruebas de IU de Selenium, pero no todo el mundo es experto en Java, por lo que herramientas como Parasoft Selenico permite a los usuarios desplazarse hacia la izquierda con grabación y reproducción y autorreparación para la automatización de pruebas.

Ser capaz de generar código Java puro simplemente registrando pruebas manuales asigna el código de prueba directamente a los requisitos comerciales.

Las 10 mejores herramientas de prueba de la interfaz de usuario web: pruebas automatizadas de la interfaz de usuario web

SOAtest

Las pruebas de API generalmente son difíciles de definir y requieren un conocimiento profundo del servicio, así como del sistema. Parasoft SOAtest es una herramienta para la automatización de pruebas funcionales sin script, pero también se puede utilizar con Cucumber. Simplemente puede importar un archivo de definición de servicio como Swagger, configurar la prueba y agregar datos. También puede reutilizar la grabación de Parasoft Recorder para crear automáticamente pruebas de API, que luego se pueden reutilizar para pruebas de carga y rendimiento.

La integración de Cucumber permite a los usuarios agregar definiciones de pasos que apuntan a estas pruebas.

Conclusión

BDD brinda la capacidad para que todo el equipo (incluso los miembros del equipo no tan técnicos) se dediquen a escribir y probar su software. Algunos de los desafíos que acompañan a BDD, como la asignación de texto en inglés simple (también conocido como no técnico) al código, se pueden resolver utilizando soluciones como Parasoft Recorder. En general, BDD es una excelente guía para desarrollar lo correcto de la manera correcta.

Texto blanco sobre fondo azul marino: Cómo ser más eficaz con el desarrollo impulsado por el comportamiento (BDD) con un botón rojo debajo que dice Ver seminario web a pedido.

Escrito por

Grigori Trofimov

Grigori Trofimov es un arquitecto de soluciones en Parasoft, que brinda servicios de consultoría para las soluciones de prueba de Parasoft a prospectos, clientes y socios. Recientemente ha hablado en conferencias sobre el tema de la virtualización de servicios y el despliegue de entornos desechables en la nube.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft