Desarrollo dirigido por pruebas e introducción a Cucumber

Índice
Desarrollo basado en pruebas (TDD)
El Desarrollo Orientado a Pruebas (TDD) es un método de desarrollo que se centra en escribir pruebas antes de implementar la funcionalidad. Es un proceso iterativo que se centra en crear pruebas, ejecutarlas y, a continuación, implementar la funcionalidad para que las pruebas pasen.
El TDD sigue los siguientes pasos:
- Escribe una prueba: el primer paso es escribir una prueba que describa la funcionalidad que se desea implementar. Esta prueba debe fallar porque la funcionalidad aún no está implementada.
- Ejecutar prueba: la prueba se ejecutará para comprobar si falla, que es el resultado esperado.
- Implementar la funcionalidad: basándose en la prueba, se implementa la funcionalidad para que la prueba pase. Esto significa escribir código suficiente que cumpla los requisitos de la prueba.
- Vuelve a ejecutar la prueba: después de la implementación, se vuelve a ejecutar la prueba. Si pasa, significa que la funcionalidad se ha implementado correctamente.
- Refactorización: después de que la prueba pase con éxito, se puede realizar la refactorización del código. Esto significa mejorar la calidad y legibilidad del código sin afectar al correcto funcionamiento de las pruebas.
Las ventajas del desarrollo basado en pruebas son:
- Mejor calidad del código: TDD produce una fuerte cobertura de pruebas, lo que conduce a una mayor calidad del código. Cada cambio en el código se verifica mediante pruebas, garantizando que no conlleva efectos secundarios no deseados.
- Mayor confianza: TDD aporta mayor confianza en la corrección de la funcionalidad implementada. Si las pruebas pasan, puedes estar más seguro de que el código funciona como se espera.
- Retroalimentación rápida: TDD permite una retroalimentación inmediata cuando las pruebas pasan o fallan. Esto permite detectar y corregir rápidamente los errores.
- Mejora de la capacidad de diseño: TDD fomenta un buen diseño del código porque te permite pensar en la comprobabilidad y usabilidad del código mientras lo creas.
- Documentación: las pruebas en TDD también sirven como documentación, ya que describen los requisitos funcionales requeridos y los resultados esperados.
El desarrollo dirigido por pruebas (TDD) es un método útil para los desarrolladores porque mejora la calidad del código, aumenta la confianza en la corrección de la implementación y permite una rápida retroalimentación. TDD te obliga a pensar en la comprobabilidad y el diseño en las primeras fases del desarrollo, lo que conduce a un software mejor y más robusto.
Pepino
Cucumber es una herramienta de pruebas de aceptación de código abierto que te permite escribir escenarios de pruebas en un lenguaje sencillo y fácil de entender llamado Gherkin. Los scripts de Cucumber están escritos en un formato fácil de leer no sólo para los desarrolladores, sino también para otras personas interesadas, como gestores, probadores o clientes.
Cucumber admite un enfoque de desarrollo basado en el comportamiento (BDD) que hace hincapié en la comunicación y la colaboración entre los distintos participantes del equipo para lograr una mejor comprensión de los requisitos y el correcto funcionamiento del software.
Las principales propiedades del Pepino son
- Sintaxis Gherkin: Cucumber utiliza la sintaxis Gherkin, que es sencilla y fácil de leer. Los escenarios se escriben en forma de pasos, que se expresan mediante palabras clave como «Dado», «Cuando», «Entonces» y otras, que permiten definir claramente el comportamiento esperado del software.
- Automatización de pruebas:Cucumber te permite automatizar pruebas escritas en sintaxis Gherkin utilizando lenguajes de programación como Java, Ruby, C# y otros. Esto te permite conectar las pruebas al software existente y automatizar su ejecución.
- Facilidad de colaboración:Cucumber facilita la colaboración entre los miembros del equipo porque todos entienden el lenguaje Gherkin. Los escenarios pueden utilizarse como una representación común de los requisitos para ayudar a garantizar que todo el mundo tiene la misma comprensión de lo que se supone que debe hacer el software.
- Informes:Cucumber proporciona una rica capacidad de elaboración de informes que te permite seguir y gestionar los resultados de tus pruebas. Puedes generar informes claros que muestren las situaciones de aprobado y suspenso, así como los detalles de cada paso.
Cucumber es una herramienta excelente para las pruebas de aceptación y es compatible con el enfoque BDD del desarrollo de software. Su lenguaje Gherkin, sencillo y claro, permite una mejor comunicación entre los miembros del equipo y mejora la comprensión de los requisitos. La automatización de pruebas en Cucumber aumenta la eficacia de las pruebas, y la generación de informes te permite hacer un seguimiento de los resultados y gestionar los escenarios de las pruebas.
En Cucumber, tenemos dos tipos de archivos: un archivo de funciones y un archivo de definición de pasos.
Archivo de características – Un archivo de características define cierto comportamiento de la aplicación en texto plano. Puede escribirlo un QA, un analista de negocio, un cliente o incluso cualquier parte interesada no técnica. Los archivos de funciones en cucumber se escriben en forma Dado-Entonces-Entonces. Ejemplo de conjunto de funciones:
Función: comprobar la suma en la calculadora de Google
Para comprobar que la calculadora de google funciona correctamente
Como usuario de google
Debería poder obtener un resultado de suma correcto
Escenario: Ampliación
Dado que abro google.com
Cuando introduzco 2+2 en el cuadro de texto de búsqueda
Entonces debería obtener el resultado 4
Fichero de definición de pasos – En el fichero de definición de pasos, escribimos el código que implementa los pasos escritos en las sentencias Dado-Cuando-Entonces del fichero de funciones. Podemos utilizar diferentes herramientas y lenguajes para llevar a cabo los pasos, por ejemplo Watir con Ruby o Selenium con Java, etc.
En el próximo post, configuraremos Cucumber con Selenium en Java – Cucumber con Selenium y escribiremos un script de prueba de ejemplo que implementará el conjunto de funciones de la Calculadora de Google.