{"id":21768,"date":"2022-10-04T12:48:46","date_gmt":"2022-10-04T10:48:46","guid":{"rendered":"https:\/\/www.hiberus.com\/crecemos-contigo\/?p=21768"},"modified":"2024-06-05T14:27:41","modified_gmt":"2024-06-05T12:27:41","slug":"bdd-behavior-driven-developement","status":"publish","type":"post","link":"https:\/\/www.hiberus.com\/crecemos-contigo\/bdd-behavior-driven-developement\/","title":{"rendered":"BDD Testing. \u00bfC\u00f3mo funciona el Behavior Driven Development?"},"content":{"rendered":"<p>Si est\u00e1s buscando el lenguaje com\u00fan para unir la parte t\u00e9cnica y la de negocio, necesitas el <strong>BDD<\/strong>. No, no son las siglas de algo s\u00faper complicado que no vas a entender, as\u00ed que tranquilo.<\/p>\n<p>Vamos paso a paso, y te aseguramos que vas a comprender perfectamente qu\u00e9 es el BDD y c\u00f3mo aplicarlo en tu empresa en el d\u00eda a d\u00eda como parte de una metodolog\u00eda QA.<\/p>\n<h2>\u00bfQu\u00e9 es BDD?<\/h2>\n<p><strong>BDD es Behavior Driven Development<\/strong>, o lo que es lo mismo en espa\u00f1ol, <strong>desarrollo guiado por comportamiento<\/strong>. Es un proceso de software \u00e1gil que busca la colaboraci\u00f3n y entendimiento entre desarrolladores, gestores de proyecto y equipo de negocio. Es decir, es el camino para tomar antes de la fase de <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/testing-fase-de-testeo-de-software\/\">testing<\/a> de un proyecto.<\/p>\n<p>De hecho, tiene relaci\u00f3n directa con el testing, pues <strong>el BDD surge directamente del TDD o desarrollo guiado por pruebas<\/strong>. Pero a diferencia del <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/todo-lo-que-necesitas-saber-de-tdd-en-3-minutos\/\">TDD<\/a>, el BDD define las <strong>pruebas centradas en el usuario y el comportamiento del sistema<\/strong> y no en las funcionalidades de este. En otras palabras, el BDD describe las pruebas en un lenguaje natural que entienden todos los equipos de un proyecto, y no \u00fanicamente los programadores.<\/p>\n<h2>\u00bfCu\u00e1ndo usar el <strong>desarrollo guiado por comportamiento<\/strong>?<\/h2>\n<p>El desarrollo guiado por comportamiento es perfecto para <strong>comunicarse con todos los equipos durante el desarrollo de productos multifuncionales<\/strong>. Un equipo de desarrolladores y <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/que-es-un-analista-qa\/\">analistas QA<\/a> trabaja en el c\u00f3digo mediante un lenguaje de programaci\u00f3n espec\u00edfico que en muchas ocasiones el cliente o cualquier otro equipo del proyecto no es capaz de leer.<\/p>\n<p>El BDD permite a todos los implicados <strong>entender el proceso desarrollado y el contenido del c\u00f3digo fuente.<\/strong> De hecho, este desarrollo le indica al c\u00f3digo qu\u00e9 tiene que hacer y lo hace en un lenguaje natural entendido por todo el mundo.<\/p>\n<p>No te preocupes, no estamos hablando en TDD, en c\u00f3digo ni en ning\u00fan lenguaje de programaci\u00f3n que no entiendas. Pero sabemos que no es un t\u00e9rmino sencillo de entender, as\u00ed que vamos a ir un paso m\u00e1s all\u00e1 viendo los <strong>principios del BDD.<\/strong><\/p>\n<h2>Lenguaje Gherkin y los principios de BDD<\/h2>\n<p>Si hablamos de BDD no podemos pasar por alto el <strong>lenguaje Gherkin<\/strong>, un lenguaje espec\u00edfico de dominio que sirven para resolver problemas muy concretos<strong>. \u00bfSe te ocurre algo m\u00e1s espec\u00edfico que una situaci\u00f3n en la que ambos equipos no se entiendan?<\/strong><\/p>\n<p>Lo positivo de este lenguaje es que cuenta con los <strong>elementos Given-When-Then<\/strong> que se han convertido en los principios de BDD b\u00e1sicos. Adem\u00e1s de estos elementos hay muchos otros que ayudan a especificar y detallar las acciones, pero la base podr\u00eda empezar por estos cinco.<\/p>\n<ul>\n<li><strong>Feature<\/strong>. Describe la funcionalidad que hay que desarrollar.<\/li>\n<li><strong>Scenario<\/strong>. Son las caracter\u00edsticas que se dan para lograr la funcionalidad.<\/li>\n<li><strong>Given<\/strong>. Hace referencia a las predicciones para que se puedan ejecutar las distintas acciones.<\/li>\n<li><strong>When<\/strong>. Son las condiciones de las acciones a ejecutar.<\/li>\n<li><strong>Then<\/strong>. Es el resultado de las acciones ejecutadas.<\/li>\n<\/ul>\n<p>Adem\u00e1s de estos cinco elementos Gherking, existe el patr\u00f3n <strong>Role-Feaure-Reason<\/strong>. Esto es muy sencillo si jugamos con la estructura <strong><em>\u201cComo [x], quiero [y] para que [z]\u201d <\/em><\/strong>y nos ayudar\u00e1 a elaborar la funcionalidad o Feature dentro del lenguaje Gherkin.<\/p>\n<ul>\n<li><strong>Como<\/strong>. Especifica el tipo de usuario de la acci\u00f3n.<\/li>\n<li><strong>Quiero<\/strong>. Hace referencia a las necesidades de ese usuario.<\/li>\n<li><strong>Para que.<\/strong> Es el objetivo final que desea cumplir.<\/li>\n<\/ul>\n<p><strong>Vamos a ponerlo en pr\u00e1ctica con un ejemplo<\/strong>, no te preocupes. As\u00ed entender\u00e1s sin problema estos elementos y principios BDD.<\/p>\n<p>Cuando haces una b\u00fasqueda en Google, como la consulta \u201cejemplos de BDD\u201d, queremos que el motor de b\u00fasqueda nos devuelva los resultados que respondan a esta b\u00fasqueda concreta. Ah\u00ed tenemos nuestro Feature.<\/p>\n<p>En este caso, el lenguaje Gherkin quedar\u00eda especificado de la siguiente manera en BDD:<\/p>\n<ul>\n<li>Feature: Como usuario web, quiero buscar en Google ejemplos de BDD para que me devuelva resultados y respuestas.<\/li>\n<li>Scenario: B\u00fasqueda en Google.<\/li>\n<li>Given: Buscador de Google.<\/li>\n<li>When: Introducir la consulta \u201cejemplos de BDD\u201d.<\/li>\n<li>Then: Se muestran resultados de \u201cejemplos de BDD\u201d.<\/li>\n<\/ul>\n<p><strong>No era tan complicado de entender, \u00bfverdad? <\/strong>Pero ahora que sabes los principios b\u00e1sicos y una de las <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/las-skills-mas-demandadas-en-el-sector-del-software-qa\/\">skills QA<\/a> importantes, atento, porque el BDD tiene una serie de ventajas y beneficios para todos los equipos que te van a terminar de convencer de aplicar este desarrollo para tu negocio.<\/p>\n<h2>Beneficios del BDD<\/h2>\n<p>Ya hemos mencionado que el BDD se convierte en un medio para que todos los implicados en un proyecto t\u00e9cnico puedan entenderse a la perfecci\u00f3n. Esto lleva consigo una serie de beneficios claros para un trabajo sencillo y claro para todos.<\/p>\n<ul>\n<li><strong>Aumenta la colaboraci\u00f3n entre las partes involucradas<\/strong>. Al tener todos un mismo lenguaje de entendimiento, todas las partes sienten que forman un \u00fanico equipo y mejora la colaboraci\u00f3n entre ellas.<\/li>\n<li><strong>Se prioriza el valor de negocio.<\/strong> Se establecen prioridades con los clientes y el lenguaje BDD permite a los desarrolladores entender e involucrarse m\u00e1s con los objetivos comerciales, logrando un resultado \u00f3ptimo a las necesidades del cliente.<\/li>\n<li><strong>Reducci\u00f3n de riesgo en el proyecto.<\/strong> Como todas las partes implicadas saben de qu\u00e9 se est\u00e1 hablando en todo momento y cuentan con una visi\u00f3n global del proyecto, se corren menos riesgos en el desarrollo e implementaci\u00f3n del proyecto.<\/li>\n<li><strong>Creaci\u00f3n de metodolog\u00edas \u00e1giles de trabajo.<\/strong> Al explicarse todos los requerimientos y escenarios posibles, el desarrollo posterior es mucho m\u00e1s sencillo, ya que se intenta comprender el comportamiento del sistema en todas sus vertientes.<\/li>\n<\/ul>\n<h2>\u00bfQu\u00e9 tener en cuenta para aplicarlo?<\/h2>\n<p>Antes de aplicar BDD <strong>es importante saber de d\u00f3nde partimos, y que la informaci\u00f3n sea com\u00fan a todas las partes.<\/strong> Si hemos comentado que el BDD surge de la necesidad de que todos los implicados entiendan de qu\u00e9 se habla, el que la informaci\u00f3n previa sea de conocimiento general tambi\u00e9n es importante.<\/p>\n<p>As\u00ed, hay que conocer el punto de inicio de la prueba, lo que s\u00ed se va a probar y lo que no, la frecuencia de cada uno de los procesos del proyecto, los nombres o los mecanismos utilizados para detectar los distintos fallos.<\/p>\n<p>&nbsp;<\/p>\n<p>Ahora que ya sabes lo que es el BDD, o desarrollo guiado por comportamiento, puede que te hayan quedado dudas sobre su aplicaci\u00f3n, metodolog\u00eda o formas de trabajo. \u00a1Pero tenemos la soluci\u00f3n para ti! <strong>Nuestro equipo de <a href=\"https:\/\/www.hiberus.com\/enterprise-efficiency\/qa\">QA Services &amp; Testing<\/a> con m\u00e1s de 8 a\u00f1os de experiencia y <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/siete-principios-que-deben-guiar-el-testing-de-software-segun-istqb\/\">certificado en ISTQB<\/a>, es experto en este tipo de implementaciones y podr\u00e1 resolver todas tus preguntas al respecto.\u00a0<\/strong><strong>\u00bfTe ayudamos?\u00a0<\/strong><\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/7LxwhrMs7bE\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n        <div class=\"row\">\n            <div class=\"block-cta-form\" style=\"background-color: #003664;\">\n                <div class=\"content-cta-form\">\n                    <div class=\"text-cta-form\">\n                        <p class=\"title-cta-form\">\u00bfQuieres m\u00e1s informaci\u00f3n sobre nuestros servicios de QA?<\/p>\n                        <p>Contacta con nuestro equipo de expertos en QA y Testing<\/p>\n                    <\/div>\n                    <div class=\"form-fields\">\n                        \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f33973-o1\" lang=\"es-ES\" dir=\"ltr\" data-wpcf7-id=\"33973\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/21768#wpcf7-f33973-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Formulario de contacto\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"33973\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"es_ES\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f33973-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<div id=\"responsive-form\" class=\"clearfix\">\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"nombre\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Nombre *\" value=\"\" type=\"text\" name=\"nombre\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"apellido\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Apellido *\" value=\"\" type=\"text\" name=\"apellido\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"correo\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Correo corporativo *\" value=\"\" type=\"email\" name=\"correo\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"telf-contacto\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Tel\u00e9fono *\" value=\"\" type=\"tel\" name=\"telf-contacto\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"compania\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Compa\u00f1ia *\" value=\"\" type=\"text\" name=\"compania\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"mensaje\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Mensaje *\" name=\"mensaje\"><\/textarea><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"politica\"><span class=\"wpcf7-form-control wpcf7-acceptance\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"politica\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">He le\u00eddo y acepto la <a href=\"https:\/\/www.hiberus.com\/politica\" target=\"_blank\"><u>Pol\u00edtica de privacidad<\/u><\/a><\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"marketing\"><span class=\"wpcf7-form-control wpcf7-acceptance optional\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"marketing\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">Me gustar\u00eda recibir comunicaciones de marketing de Hiberus y sobre sus productos, servicios y eventos.<\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Contacta con nosotros\" \/>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div id=\"campos_ocultos\" class=\"hidden\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new1\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new1\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new1\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new2\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new2\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new2\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new3\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new3\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new3\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new4\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new4\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new4\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new_p\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new_p\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new_p\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<!--end responsive-form--><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n","protected":false},"excerpt":{"rendered":"<p>Si est\u00e1s buscando el lenguaje com\u00fan para unir la parte t\u00e9cnica y la de negocio, necesitas el BDD. No, no son las&#8230;<\/p>\n","protected":false},"author":115,"featured_media":21870,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_ayudawp_aiss_exclude":false,"footnotes":""},"categories":[7,239,167,164],"tags":[64],"class_list":{"0":"post-21768","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-next-tech","8":"category-qa","9":"category-retail-distribucion","10":"category-servicios-financieros","11":"tag-qa"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/21768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/users\/115"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/comments?post=21768"}],"version-history":[{"count":11,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/21768\/revisions"}],"predecessor-version":[{"id":43164,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/21768\/revisions\/43164"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media\/21870"}],"wp:attachment":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media?parent=21768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/categories?post=21768"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/tags?post=21768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}