Articulo de referencia

Pepino (software)

{{cite web|url=http://aslakhellesoy.com/ |title=Aslak Hellesøy |publisher=Aslakhellesoy.com |access-date=2012-01-24}} Joseph Wilk, {{cite web|url=http://blog.josephwilk.net/ |ti...

Cucumber es una herramienta de software que admite el desarrollo dirigido por el comportamiento (BDD). [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] El núcleo del enfoque BDD de Cucumber es su analizador de lenguaje ordinario llamado Gherkin . Permite especificar los comportamientos esperados del software en un lenguaje lógico que los clientes pueden entender. Como tal, Cucumber permite la ejecución de documentación de características escrita en texto orientado al negocio. [ 13 ] [ 7 ] [ 8 ] A menudo se utiliza para probar otro software. [ 14 ] Ejecuta pruebas de aceptación automatizadas escritas en un estilo de desarrollo dirigido por el comportamiento (BDD). [ 15 ]

Cucumber fue escrito originalmente en el lenguaje de programación Ruby [ 7 ] [ 16 ] [ 8 ] y se utilizó inicialmente de forma exclusiva para pruebas en Ruby como complemento del marco BDD RSpec . Actualmente, Cucumber admite diversos lenguajes de programación a través de varias implementaciones, incluyendo Java [ 17 ] [ 8 ] y JavaScript [ 18 ] [ 19 ] . Existe una versión de Cucumber para .NET llamada SpecFlow [ 20 ] [ 21 ] [ 22 ] , ahora reemplazada por Reqnroll [ 23 ] .

Lenguaje pepinillo

Gherkin es el lenguaje que Cucumber utiliza para definir casos de prueba. Está diseñado para ser no técnico y legible para humanos, y describe colectivamente casos de uso relacionados con un sistema de software. [ 7 ] [ 8 ] [ 24 ] [ 25 ] El propósito de la sintaxis de Gherkin es promover prácticas de desarrollo basadas en el comportamiento en todo el equipo de desarrollo, incluyendo analistas de negocio y gerentes. Busca imponer requisitos firmes e inequívocos desde las fases iniciales de definición de requisitos por parte de la gerencia de negocio y en otras etapas del ciclo de vida del desarrollo.

Además de proporcionar un script para pruebas automatizadas, la sintaxis de lenguaje natural de Gherkin está diseñada para proporcionar documentación sencilla del código bajo prueba. [ 25 ] Actualmente, Gherkin admite palabras clave en docenas de lenguajes. [ 25 ] [ 26 ] [ 7 ] [ 8 ]

Sintaxis

La sintaxis se centra en un diseño orientado a líneas , similar al de Python . La estructura de un archivo se define mediante espacios en blanco y otros caracteres de control. [ 25 ] Las líneas que comienzan con #se consideran comentarios y pueden colocarse en cualquier parte de un archivo. [ 25 ] Las instrucciones son cualquier línea no vacía y que no sea un comentario. Consisten en una palabra clave Gherkin reconocida seguida de una cadena. [ 27 ]

Todos los archivos Gherkin tienen la .featureextensión de archivo. Contienen una única definición de característica para el sistema bajo prueba y son un script de prueba ejecutable . [ 27 ]

Aquí hay un ejemplo de la sintaxis: [ 28 ]

Función: Adivina la palabra # El primer ejemplo tiene dos pasos Escenario: El creador inicia un juego  Cuando el creador inicia un juego Entonces el creador espera a que se una un rompedor # El segundo ejemplo tiene tres pasos Escenario: El Breaker se une a un juego  Dado que el Maker ha comenzado un juego con la palabra " sedoso " Cuando el Breaker se une al juego del Maker Entonces el Breaker debe adivinar una palabra de 5 caracteres

Línea de comandos

Cucumber incluye una interfaz de línea de comandos integrada que abarca una lista completa de instrucciones. Al igual que la mayoría de las herramientas de línea de comandos, Cucumber ofrece la --helpopción de proporcionar un resumen de los argumentos que acepta el comando. [ 29 ]

$ cucumber --help  -r, --require LIBRARY|DIR Requiere archivos antes de ejecutar las funciones.  --i18n LANG Lista palabras clave para en un idioma en particular.  Ejecuta con "--i18n help" para ver todos los idiomas.  -f, --format FORMAT Formatea las funciones (Predeterminado: pretty).  -o, --out [FILE|DIR] Escribe la salida en un archivo/directorio en lugar de  ...

La línea de comandos de Cucumber permite ejecutar rápidamente pruebas predefinidas. También admite la ejecución de un subconjunto de escenarios mediante el filtrado por etiquetas.

$ pepino --etiquetas @nombre-de-etiqueta 

El comando anterior ayuda a ejecutar solo aquellos escenarios que tienen el especificado @tag-name. [ 29 ] Los argumentos se pueden proporcionar como una operación lógica ORo ANDde etiquetas. Además de las etiquetas, los escenarios se pueden filtrar por nombres de escenario. [ 29 ]

$ pepino --nombre cerrar sesión

El comando anterior ejecutará únicamente aquellos escenarios que contengan la palabra 'logout'.

También es útil saber qué salió mal cuando una prueba falla. Cucumber facilita la detección de errores en el código con la --backtraceopción. [ 29 ]

Referencias

  1. «Aslak Hellesøy» . Aslakhellesoy.com . Consultado el 24 de enero de 2012 .
  2. "Joseph Wilk | sobre IA, la web, usabilidad, pruebas y el proceso de software" . Blog.josephwilk.net . Consultado el 24 de enero de 2012 .
  3. "Desarrollo impulsado por el té" . Blog.mattwynne.net . Consultado el 24 de enero de 2012 .
  4. "Perfil de ghnatiuk" . GitHub . Consultado el 24 de enero de 2012 .
  5. "Perfil de msassak" . GitHub . Consultado el 24 de enero de 2012 .
  6. "Versión 13.2.0" . 20 de julio de 2026. Consultado el 21 de julio de 2026 .
  7. 1 2 3 4 5 "La estantería pragmática | El libro del pepino" . Pragprog.com. Archivado del original el 21/01/2012 . Consultado el 24/01/2012 .
  8. 1 2 3 4 5 6 Rose, Seb; Wynne, Matt; Hellesøy, Aslak (15 de febrero de 2015). The Pragmatic Bookshelf | The Cucumber For Java Book . Pragprog.com . Recuperado el 28 de abril de 2019 .
  9. "¿Qué es el pepino?" . pepino . Consultado el 8 de junio de 2019 .
  10. Aslak Hellesøy. "La herramienta de colaboración más incomprendida del mundo" . pepino .
  11. Nagy, Gáspár; Rosa, Seb (7 de marzo de 2017). Los libros BDD: descubrimiento . Leanpub. ISBN 978-1983591259.
  12. ^ Rosa, Seb; Nagy, Gáspár (27 de abril de 2021). Los libros BDD: formulación . Leanpub. ISBN 979-8723395015.
  13. Fox, Armando; Patterson, David (2016). Ingeniería de software como servicio . Strawberry Canyon. págs. 218–255 . ISBN  978-0-9848812-4-6.
  14. "Pruebas automatizadas con Selenium y Cucumber" . www.ibm.com . 6 de agosto de 2013. Consultado el 9 de febrero de 2017 .
  15. ^ Soeken, Mathías; Wille, Robert; Drechsler, Rolf (29 de mayo de 2012). Furia, Carlo A.; Nanz, Sebastián (eds.). Objetos, Modelos, Componentes, Patrones . Apuntes de conferencias sobre informática. Springer Berlín Heidelberg. págs. 269–287 . doi : 10.1007/978-3-642-30561-0_19 . ISBN  9783642305603.
  16. "The Pragmatic Bookshelf | The RSpec Book" . Pragprog.com. 2 de diciembre de 2010. Archivado del original el 21 de enero de 2012. Consultado el 24 de enero de 2012 .
  17. "Cucumber-jvm" . pepino . Consultado el 8 de marzo de 2018 .
  18. "Cucumber-js" . cucumber . Consultado el 8 de marzo de 2018 .
  19. Naidele Manjunath; Olivier de Meulder (1 de febrero de 2019). "¿Sin código? No hay problema: cómo escribir exámenes en lenguaje sencillo" . Times Open . Consultado el 29 de abril de 2019 .
  20. "Vinculando los requisitos comerciales con el código .NET" . SpecFlow . Consultado el 29 de abril de 2019 .
  21. "SpecFlow" . GitHub . Consultado el 29 de abril de 2019 .
  22. Richard Lawrence; Paul Rayner (2018). Desarrollo basado en el comportamiento con Cucumber . Addison Wesley.
  23. Nagy, Gáspár (8 de febrero de 2024). "De SpecFlow a Reqnroll: por qué y cómo" . reqnroll.net . Reqnroll . Consultado el 18 de abril de 2024 .
  24. "pepino/pepinillo" . GitHub . Consultado el 9 de febrero de 2017 .
  25. 1 2 3 4 5 "Sintaxis del pepinillo" . pepino . Consultado el 09-07-2019 .
  26. "Lenguajes compatibles con Gherkin" . Gherkin. cucumber/cucumber: Monorepo de Cucumber: bloques de construcción para Cucumber en varios lenguajes . Recuperado el 21 de marzo de 2021 a través de GitHub .
  27. 1 2 "Referencia" . pepino . Archivado del original el 25-10-2015 . Recuperado el 17-01-2016 .
  28. "Referencia al pepinillo" . pepino . Archivado del original el 13 de enero de 2024. Consultado el 11 de febrero de 2024 .
  29. 1 2 3 4 Wynne, Matt; Hellesoy, Aslak. "El libro del pepino" . SafariBooksOnline . Consultado el 22 de enero de 2016 .
  • Proyecto del pepino
  • Documentación del proyecto Cucumber