Cucumber es una herramienta que nos permite concebir y escribir pruebas para que cualquier persona pueda comprender para qué son realizadas y qué hacen esas pruebas, independientemente de que esa persona posea o no conocimientos técnicos de desarrollo; lo anterior es logrado a través del framework BDD(Behavior Driven Development).

En el siguiente link "archetype-cucumber-testng" se encuentra disponible un Arquetipo que nos permite tener en cuestión de segundos, un proyecto Maven que nos permite iniciar con la automatización de pruebas.

Las ventajas de usar Cucumber sobre otras herramientas que brindan soporte a BDD son:

  • Trabaja como un puente entre las reglas de negocio y el lenguaje técnico. Esto se lleva a cabo creando un enunciado sencillo en lenguaje natural.
  • Cucumber es compatible con diferentes lenguajes de programación como Java, .net, Ruby, entre otros.
  • El código de prueba es redactado en lenguaje natural, por lo tanto, puede ser escrito sin ningún conocimiento técnico sobre el lenguaje de programación seleccionado para la construcción del sistema, permitiendo la participación de no programadores.
  • Sirve para la ejecución de pruebas end to end.
  • Dada la simplicidad de su arquitectura al momento de crear los scripts, Cucumber permite la reutilización de código.
Dentro de sus principales beneficios están:

  • Es útil para involucrar a las partes comerciales interesadas que no pueden leer fácilmente código.
  • Cucumber se enfoca en la experiencia del usuario final.
  • Configuración y ejecución rápida y fácil.
  • Al ser una herramienta eficiente para la realización de pruebas, ha tenido gran aceptación y apoyo de la comunidad.
Hablemos un poco de su relevancia en la metodología de desarrollo “Agile”.

Como sabemos “Agile” lo podemos definir como un conjunto de metodologías para el desarrollo de proyectos en los cuales requerimos de rapidez y flexibilidad para adaptarse a condiciones cambiantes como lo son los requerimientos del cliente o modificaciones en el equipo de trabajo. Esto se logra partiendo el proyecto en entregables de razonable tamaño, los cuales tienen que completarse y entregarse en pocas semanas.

En el mundo del desarrollo de software existe la tendencia de que se colabore en equipos de varias personas que trabajan de forma conjunta, por lo que la comunicación de alta calidad es fundamental para su éxito. Una buena comunicación no consiste sólo en describir las ideas a otros de forma eficaz y eficiente; también se necesita solicitar comentarios para asegurarse de que ha sido entendido correctamente. Esta es la razón por la que los equipos de software de “Agile” han aprendido a trabajar en pequeños incrementos, utilizando el software que se construye de manera gradual a medida que los comentarios les dicen a las partes interesadas: "¿Es esto lo que quieres decir?"

Un pequeño desvío en la comunicación dentro del equipo y puede generarse tiempo de desarrollo perdido, por lo que necesitamos un tipo de filtro para proteger nuestra base de código de posibles malentendidos. Aquí es donde Cucumber y BDD hacen su magia.

En el próximo artículo hablaré sobre BDD.