{"id":1784,"date":"2024-05-10T14:09:56","date_gmt":"2024-05-10T12:09:56","guid":{"rendered":"https:\/\/ittester.sk\/sin-categorizar\/desarrollo-dirigido-por-pruebas-e-introduccion-a-cucumber\/"},"modified":"2024-07-11T09:43:31","modified_gmt":"2024-07-11T07:43:31","slug":"desarrollo-dirigido-por-pruebas-e-introduccion-a-cucumber","status":"publish","type":"post","link":"https:\/\/ittester.sk\/es\/sin-categorizar\/tutorial-del-pepino\/desarrollo-dirigido-por-pruebas-e-introduccion-a-cucumber\/","title":{"rendered":"Desarrollo dirigido por pruebas e introducci\u00f3n a Cucumber"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u00cdndice<\/h2>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vyvoj-riadeny-testami-tdd\">V\u00fdvoj riaden\u00fd testami (TDD)<\/a><ul><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-cucumber\">Cucumber<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-vyvoj-riadeny-testami-tdd\">Desarrollo basado en pruebas (TDD)<\/h2>\n\n<p>El Desarrollo Orientado a Pruebas (TDD) es un m\u00e9todo 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\u00f3n, implementar la funcionalidad para que las pruebas pasen.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-tdd-postupuje-podla-nasledujucich-krokov\">El TDD sigue los siguientes pasos:<\/h2>\n\n<ol class=\"wp-block-list\">\n<li>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\u00fan no est\u00e1 implementada.<\/li>\n\n\n\n<li>Ejecutar prueba: la prueba se ejecutar\u00e1 para comprobar si falla, que es el resultado esperado.<\/li>\n\n\n\n<li>Implementar la funcionalidad: bas\u00e1ndose en la prueba, se implementa la funcionalidad para que la prueba pase. Esto significa escribir c\u00f3digo suficiente que cumpla los requisitos de la prueba.<\/li>\n\n\n\n<li>Vuelve a ejecutar la prueba: despu\u00e9s de la implementaci\u00f3n, se vuelve a ejecutar la prueba. Si pasa, significa que la funcionalidad se ha implementado correctamente.<\/li>\n\n\n\n<li>Refactorizaci\u00f3n: despu\u00e9s de que la prueba pase con \u00e9xito, se puede realizar la refactorizaci\u00f3n del c\u00f3digo. Esto significa mejorar la calidad y legibilidad del c\u00f3digo sin afectar al correcto funcionamiento de las pruebas.<\/li>\n<\/ol>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vyhody-vyvoja-riadeneho-testami-su\">Las ventajas del desarrollo basado en pruebas son:<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Mejor calidad del c\u00f3digo: TDD produce una fuerte cobertura de pruebas, lo que conduce a una mayor calidad del c\u00f3digo. Cada cambio en el c\u00f3digo se verifica mediante pruebas, garantizando que no conlleva efectos secundarios no deseados.<\/li>\n\n\n\n<li>Mayor confianza: TDD aporta mayor confianza en la correcci\u00f3n de la funcionalidad implementada. Si las pruebas pasan, puedes estar m\u00e1s seguro de que el c\u00f3digo funciona como se espera.<\/li>\n\n\n\n<li>Retroalimentaci\u00f3n r\u00e1pida: TDD permite una retroalimentaci\u00f3n inmediata cuando las pruebas pasan o fallan. Esto permite detectar y corregir r\u00e1pidamente los errores.<\/li>\n\n\n\n<li>Mejora de la capacidad de dise\u00f1o: TDD fomenta un buen dise\u00f1o del c\u00f3digo porque te permite pensar en la comprobabilidad y usabilidad del c\u00f3digo mientras lo creas.<\/li>\n\n\n\n<li>Documentaci\u00f3n: las pruebas en TDD tambi\u00e9n sirven como documentaci\u00f3n, ya que describen los requisitos funcionales requeridos y los resultados esperados.<\/li>\n<\/ul>\n\n<p>El desarrollo dirigido por pruebas (TDD) es un m\u00e9todo \u00fatil para los desarrolladores porque mejora la calidad del c\u00f3digo, aumenta la confianza en la correcci\u00f3n de la implementaci\u00f3n y permite una r\u00e1pida retroalimentaci\u00f3n. TDD te obliga a pensar en la comprobabilidad y el dise\u00f1o en las primeras fases del desarrollo, lo que conduce a un software mejor y m\u00e1s robusto.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-cucumber\">Pepino<\/h2>\n\n<p>Cucumber es una herramienta de pruebas de aceptaci\u00f3n de c\u00f3digo abierto que te permite escribir escenarios de pruebas en un lenguaje sencillo y f\u00e1cil de entender llamado Gherkin. Los scripts de Cucumber est\u00e1n escritos en un formato f\u00e1cil de leer no s\u00f3lo para los desarrolladores, sino tambi\u00e9n para otras personas interesadas, como gestores, probadores o clientes.<\/p>\n\n<p>Cucumber admite un enfoque de desarrollo basado en el comportamiento (BDD) que hace hincapi\u00e9 en la comunicaci\u00f3n y la colaboraci\u00f3n entre los distintos participantes del equipo para lograr una mejor comprensi\u00f3n de los requisitos y el correcto funcionamiento del software.<\/p>\n\n<p>Las principales propiedades del Pepino son<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Sintaxis Gherkin: Cucumber utiliza la sintaxis Gherkin, que es sencilla y f\u00e1cil de leer. Los escenarios se escriben en forma de pasos, que se expresan mediante palabras clave como \u00abDado\u00bb, \u00abCuando\u00bb, \u00abEntonces\u00bb y otras, que permiten definir claramente el comportamiento esperado del software.<\/li>\n\n\n\n<li>Automatizaci\u00f3n de pruebas:Cucumber te permite automatizar pruebas escritas en sintaxis Gherkin utilizando lenguajes de programaci\u00f3n como Java, Ruby, C# y otros. Esto te permite conectar las pruebas al software existente y automatizar su ejecuci\u00f3n.<\/li>\n\n\n\n<li>Facilidad de colaboraci\u00f3n:Cucumber facilita la colaboraci\u00f3n entre los miembros del equipo porque todos entienden el lenguaje Gherkin. Los escenarios pueden utilizarse como una representaci\u00f3n com\u00fan de los requisitos para ayudar a garantizar que todo el mundo tiene la misma comprensi\u00f3n de lo que se supone que debe hacer el software.<\/li>\n\n\n\n<li>Informes:Cucumber proporciona una rica capacidad de elaboraci\u00f3n 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\u00ed como los detalles de cada paso.<\/li>\n<\/ul>\n\n<p>Cucumber es una herramienta excelente para las pruebas de aceptaci\u00f3n y es compatible con el enfoque BDD del desarrollo de software. Su lenguaje Gherkin, sencillo y claro, permite una mejor comunicaci\u00f3n entre los miembros del equipo y mejora la comprensi\u00f3n de los requisitos. La automatizaci\u00f3n de pruebas en Cucumber aumenta la eficacia de las pruebas, y la generaci\u00f3n de informes te permite hacer un seguimiento de los resultados y gestionar los escenarios de las pruebas.<\/p>\n\n<p>En Cucumber, tenemos dos tipos de archivos: un archivo de funciones y un archivo de definici\u00f3n de pasos.<\/p>\n\n<p><strong>Archivo<\/strong> de caracter\u00edsticas &#8211; Un archivo de caracter\u00edsticas define cierto comportamiento de la aplicaci\u00f3n en texto plano. Puede escribirlo un QA, un analista de negocio, un cliente o incluso cualquier parte interesada no t\u00e9cnica. Los archivos de funciones en cucumber se escriben en forma Dado-Entonces-Entonces. Ejemplo de conjunto de funciones:<\/p>\n\n<p><strong>Funci\u00f3n: comprobar la suma en la calculadora de Google<\/strong><\/p>\n\n<p>  Para comprobar que la calculadora de google funciona correctamente<\/p>\n\n<p>  Como usuario de google<\/p>\n\n<p>  Deber\u00eda poder obtener un resultado de suma correcto<\/p>\n\n<p>  Escenario: Ampliaci\u00f3n<\/p>\n\n<p>   <strong>Dado que<\/strong> abro google.com<\/p>\n\n<p>   <strong>Cuando<\/strong> introduzco 2+2 en el cuadro de texto de b\u00fasqueda<\/p>\n\n<p>   <strong>Entonces<\/strong> deber\u00eda obtener el resultado 4<\/p>\n\n<p><strong>Fichero<\/strong> de definici\u00f3n de pasos &#8211; En el fichero de definici\u00f3n de pasos, escribimos el c\u00f3digo 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.<\/p>\n\n<p>En el pr\u00f3ximo post, configuraremos Cucumber con Selenium en Java &#8211; Cucumber con Selenium y escribiremos un script de prueba de ejemplo que implementar\u00e1 el conjunto de funciones de la Calculadora de Google.<\/p>\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 es el Desarrollo Dirigido por Pruebas (TDD) y cu\u00e1les son las caracter\u00edsticas de la herramienta Cucumber que la hacen ideal para las pruebas de aceptaci\u00f3n?<\/p>\n","protected":false},"author":8,"featured_media":1785,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[34],"tags":[],"class_list":["post-1784","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-del-pepino"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1784","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/comments?post=1784"}],"version-history":[{"count":2,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1784\/revisions"}],"predecessor-version":[{"id":2244,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1784\/revisions\/2244"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media\/1785"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media?parent=1784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/categories?post=1784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/tags?post=1784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}