rails automatizacion ruby-on-rails ruby cucumber specflow gherkin

ruby on rails - automatizacion - Cómo aprender/enseñar pepinillo para pepino



cucumber rails (7)

Me gustaría permitir que los analistas de negocios puedan escribir todas sus especificaciones para características, escenarios y pasos que sean amigables para los pepinos utilizando Gherkin.

He leído parte de la información básica en el sitio de github para Cucumber y de hacer una búsqueda rápida en Google, pero quería saber si había recursos recomendados para que gente no técnica pueda escribir BDD completa usando Gherkin (supongo que es El idioma preferido para las pruebas de pepino que se creará en).

Gracias.


Creo que la mejor manera de aprender es comenzar a escribir. Los pepinillos y pepinos son fáciles de aprender pero difíciles de dominar, por lo que es importante obtener ejemplos prácticos lo antes posible.

Si bien es importante comenzar por escribir sus primeros escenarios, también necesita algunos recursos para establecer buenos hábitos y comprender las prácticas clave. Escribí un libro que podría ayudar. "Escribir excelentes especificaciones" es, espero, una buena manera de aprender pepinillo y pepinillo. Cubre patrones y antipatternas, así como técnicas clave para escribir grandes escenarios. :) Si tienes alguna pregunta, siempre puedes darme en Twitter.

Si está interesado en comprar "Grandes especificaciones de escritura", puede ahorrar un 39% con el código de promoción 39nicieja2 :)

Otros grandes recursos:

  • "Especificación por ejemplo" de Gojko Adzic si está interesado en los procesos de desarrollo de software y las prácticas de ingeniería de alto nivel.
  • "BDD en acción" de John Smart si no te importa leer el código de prueba en Java. Es una visión integral de extremo a extremo sobre la definición y prueba de los requisitos de software.
  • El "desarrollo impulsado por el comportamiento" de Liz Keogh si las pruebas automáticas no suenan, pero desea comprender cómo las especificaciones con ejemplos afectan sus procesos de análisis de negocios.
  • "El libro del pepino: desarrollo impulsado por el comportamiento para probadores y desarrolladores" por Matt Wynne y Aslak Hellesøy
  • "El libro RSpec: Desarrollo impulsado por el comportamiento con RSpec, pepino y amigos" por David Chelimsky, Dave Astels, Zach Dennis, Aslak Hellesøy, Bryan Helmkamp, ​​Dan North


Estamos enseñando a Gherkin (para SpecFlow) de una manera similar, cómo lo ha descrito mrD.

Sin embargo, creo que es muy importante que la audiencia esté familiarizada con la intención principal de "Especificación por ejemplo", análisis ágil de requisitos y BDD, por lo que generalmente comenzamos a discutir el trasfondo primero. También mostramos un ejemplo de escenario de Gherkin y explicamos los conceptos básicos (como Dado / Cuándo / Entonces / But y tablas).

Luego tomamos una historia de ejemplo simple (que es muy familiar para todos), como "agregar artículos al carrito de compras" (con cierta orientación, por supuesto) y dejar que formulen los criterios de aceptación en grupos pequeños.

Después de eso, cada equipo muestra / explica sus soluciones y discutimos las buenas y malas prácticas que estaban presentes. Después del segundo equipo, puede ver casi todas las prácticas más importantes (buenas o malas) que aparecen.

También escribo la solución concluida y muestro aquí formas alternativas de describir los escenarios (fondo, esquema del escenario, etc.). Si hay suficiente tiempo, también muestro cómo automatizar e implementar la funcionalidad imaginada basada en eso. Esto también ayuda a comprender algunas reglas importantes a seguir, que hacen que la automatización sea mucho más fácil.

Aunque, nunca sé de antemano lo que sucederá, por lo general, este ejercicio es la mejor parte de nuestra capacitación BDD.


Habiendo trabajado en un proyecto ágil usando pepino por primera vez, creo que la mejor manera de aprender Cucumber and Gherkin es ensuciarse las manos.

Puede que me equivoque, pero de su pregunta me da la impresión de que desea capacitar a sus licenciados para escribir a Gherkin; luego escribirán un montón de características y se las entregarán a los desarrolladores.

Este definitivamente no es el camino a seguir. Es mucho mejor tener a los desarrolladores y usuarios de BA (si es posible) trabajando juntos para escribir sus escenarios y construirlos sobre la marcha. Entonces todos aprenden juntos lo que funciona y lo que no.

Intentamos que una licenciatura escribiera caracteres completos y se los entregara. Nosotros (los desarrolladores) tuvimos que hacer reescrituras importantes porque la implementación terminó siendo diferente a la originalmente prevista por el BA. También tuvimos que cambiar la sintaxis de los pasos y buscar y reemplazar todo el archivo.

Haga un escenario a la vez, haga que funcione y luego continúe con el siguiente. Un enfoque iterativo reduce el esfuerzo desperdiciado y garantiza que todos comprendan cómo desea que se comporte la aplicación.

En cuanto a cómo escribir los pasos, es mejor comenzar con los que vienen con Cucumber y copiarlos y adaptarlos a medida que trabaja en su proyecto para que se ajuste a su aplicación particular. No hay bien o mal, es lo que funciona para ti. La documentación en los sitios de pepinos es generalmente buena y será un recurso valioso a medida que aprenda más.


Lo que hice con los analistas de negocios de nuestra empresa fue enseñarles la estructura dándoles las palabras clave: Dado , Cuándo , Luego , Y para escenarios y Para , Como y Quiero para características.

Luego les di un ejemplo sencillo y les dije que escribieran sus propias características, ya que pensaban que deberían escribirse. Sorprendentemente, la estructura se explica por sí misma y las características que escribieron se convirtieron en un gran comienzo.
El único gran problema era que habían contenido mucha lógica en cada paso del escenario. Resolví eso preguntando iterativamente "¿por qué?" que en la mayoría de los casos reveló la funcionalidad principal que buscaban y reescribimos los escenarios de manera acorde.

Al darles las pautas y al permitirles escribir las características ellos mismos se ensuciaron las manos y se vieron obligados a pensar en lo que escribieron. Hoy tienen una mejor comprensión y el "¿por qué?" Las iteraciones ya no son tan comunes.

Por supuesto, es necesario que los analistas de negocios y los desarrolladores trabajen en estrecha colaboración y las características que escriben los analistas solo deben actuar como un comienzo. Recuerde que las características de Cucumber son solo un lenguaje común entre los analistas y los desarrolladores. Todavía necesitan sentarse juntos a menudo para poder hablar entre ellos :)