{"id":20834,"date":"2022-06-01T12:43:20","date_gmt":"2022-06-01T10:43:20","guid":{"rendered":"https:\/\/www.hiberus.com\/crecemos-contigo\/?p=20834"},"modified":"2023-11-28T09:24:08","modified_gmt":"2023-11-28T08:24:08","slug":"todo-lo-que-necesitas-saber-de-tdd-en-3-minutos","status":"publish","type":"post","link":"https:\/\/www.hiberus.com\/crecemos-contigo\/todo-lo-que-necesitas-saber-de-tdd-en-3-minutos\/","title":{"rendered":"TDD: Todo lo que necesitas saber de esta metodolog\u00eda en 3 minutos"},"content":{"rendered":"<p><span data-contrast=\"auto\">Cada cosa tiene su momento. Es por esto que en el mundo del desarrollo software existen diferentes metodolog\u00edas de trabajo para definir la estrategia y el m\u00e9todo a seguir para llevar a cabo un proyecto.<\/span><\/p>\n<p><span data-contrast=\"auto\">Existen diversas metodolog\u00edas de desarrollo, cada una<\/span><span data-contrast=\"auto\"> de ellas <\/span><span data-contrast=\"auto\">define una serie de pr\u00e1cticas con las cueles fortalecer ciertos aspectos en el proyecto. Existen pr\u00e1cticas que se pueden aplicar de forma combinada, al igual que hay algunas que simplemente no se puedan aplicar dada la naturaleza de un proyecto.<\/span><\/p>\n<p><span data-contrast=\"auto\">Para saber cu\u00e1l (o cu\u00e1les) aplicar en un proyecto, es necesario conocer al menos las m\u00e1s habituales, en este art\u00edculo vas a leer sobre una de ellas, el <strong>Test Driven Development<\/strong> (TDD).<\/span><\/p>\n<h2><b><span data-contrast=\"auto\">\u00bfQu\u00e9 es el TDD o Test Driven Development?<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">El Test Driven Development (TDD) o \u201cDesarrollo guiado por pruebas\u201d se basa en traducir los requisitos del software en casos de <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/testing-fase-de-testeo-de-software\/\">testing<\/a>, para poder <\/span><b><span data-contrast=\"auto\">primero <\/span><\/b><span data-contrast=\"auto\">escribir sus test, <\/span><b><span data-contrast=\"auto\">luego <\/span><\/b><span data-contrast=\"auto\">realizar la implementaci\u00f3n necesaria para que estos test pasen, y <\/span><b><span data-contrast=\"auto\">finalmente <\/span><\/b><span data-contrast=\"auto\">refactorizar el c\u00f3digo escrito.<\/span><\/p>\n<p><span data-contrast=\"auto\">De esta forma, se crea un ciclo llamado red, green, refactor.<\/span><\/p>\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-20835 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/05\/7Nrkn9Psp.png\" alt=\"\" width=\"631\" height=\"419\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/05\/7Nrkn9Psp.png 1024w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/05\/7Nrkn9Psp-300x199.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/05\/7Nrkn9Psp-768x510.png 768w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/05\/7Nrkn9Psp-360x239.png 360w\" sizes=\"auto, (max-width: 631px) 100vw, 631px\" \/><\/span><\/p>\n<p><span data-contrast=\"auto\">En la fase <strong>red<\/strong> (roja), se escriben los test que cubren los casos de prueba (provenientes de un requisito). Estos test por norma general van fallar, ya que no existe todav\u00eda la implementaci\u00f3n necesaria. Cuando un test falla, este se ve de color rojo, de all\u00ed esta fase.<\/span><\/p>\n<p><span data-contrast=\"auto\">En la fase <strong>green<\/strong> (verde), se escribe c\u00f3digo con el <\/span><b><span data-contrast=\"auto\">\u00fanico <\/span><\/b><span data-contrast=\"auto\">objetivo de pasar los test (pasar del color rojo del test fallido, al verde del test aprobado). Durante esta fase no se van a tener en cuenta las buenas pr\u00e1cticas a la hora de desarrollar c\u00f3digo, lo importante (por ahora) en es pasar los test.<\/span><\/p>\n<p><span data-contrast=\"auto\">En la fase de <strong>refactor<\/strong>, se va a revisar el c\u00f3digo escrito para que cumpla con las buenas pr\u00e1cticas del c\u00f3digo. Se podr\u00eda decir que es pasar a limpio el c\u00f3digo realizado en la fase anterior. En esta fase se juega con la ventaja de que con cualquier modificaci\u00f3n que se realice al c\u00f3digo, se puede comprobar si se siguen pasando los test o no.<\/span><\/p>\n<h2><b><span data-contrast=\"auto\">Evita malas pr\u00e1cticas<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Aplicar TDD implica un cambio de filosof\u00eda. De forma habitual los test se escriben una vez realizada la implementaci\u00f3n con el objetivo de <\/span><b><span data-contrast=\"auto\">encontrar <\/span><\/b><span data-contrast=\"auto\">bugs. Sin embargo, con TDD los test se escriben antes, por lo que los test se escriben para <\/span><b><span data-contrast=\"auto\">prevenir <\/span><\/b><span data-contrast=\"auto\">bugs.<\/span><\/p>\n<p><span data-contrast=\"auto\">C<\/span><span data-contrast=\"auto\">uando se escriben primero los test, posteriormente en la etapa de la implementaci\u00f3n, el desarrollador tiene una mejor visi\u00f3n del problema, ya que tiene en mente los escenarios en los que se va a probar su c\u00f3digo.<\/span><\/p>\n<p>Si bien el TDD es un proceso que debe ser llevado a cabo por un desarrollador,<strong> la presencia de un <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/que-es-un-analista-qa\/\">analista QA<\/a> es fundamental<\/strong>, con la idea de que se valide todo lo realizado hasta el momento. El TDD forma parte de los procesos de trabajo de <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/quality-assurance-y-por-que-es-importante-en-un-ecommerce\/\">Quality Assurance<\/a> mediante sus testeos y diferentes pruebas.<\/p>\n<h2><b><span data-contrast=\"auto\">Antes de aplicar TDD<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Para poder aplicar TDD, se deben describir correctamente las historias de usuario. Los requisitos deben quedar claros, y a partir de estos formar los casos de prueba que espera el cliente. Si no se realiza correctamente la traducci\u00f3n de <strong>requisito<\/strong> a <strong>caso de prueba<\/strong>, aplicar TDD va a ser un desastre.<\/span><\/p>\n<p><span data-contrast=\"auto\">Un punto importante y extensible a cualquier proyecto y metodolog\u00eda, es que los requisitos los debe definir el cliente. Es el cliente quien decide el comportamiento de su producto. Si corremos el riesgo de asumir requisitos, es muy probable que estos no est\u00e9n en sinton\u00eda con los del cliente.<\/span><\/p>\n<h2><b><span data-contrast=\"auto\">\u00bfPor qu\u00e9 TDD?<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/h2>\n<ol>\n<li data-leveltext=\"%1.\" data-font=\"Calibri\" data-listid=\"1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\"><strong>Todo queda probado<\/strong>. Haciendo los test primero, se evita que se dejen para el final, se olviden casos de prueba, o se recorten por falta de tiempo.<\/span><\/li>\n<li data-leveltext=\"%1.\" data-font=\"Calibri\" data-listid=\"1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\"><strong>Cliente satisfecho<\/strong>. Los test a cumplir se basan en los casos de uso, extra\u00eddos de los requisitos acordados con el cliente.<\/span><\/li>\n<li data-leveltext=\"%1.\" data-font=\"Calibri\" data-listid=\"1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\"><strong>Mejor c\u00f3digo<\/strong>. Tener definida una etapa de refactorizaci\u00f3n obliga a que el c\u00f3digo escrito sea revisado y mejorado siempre.<\/span><\/li>\n<li data-leveltext=\"%1.\" data-font=\"Calibri\" data-listid=\"1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Evita desarrollo innecesario<\/strong>. El c\u00f3digo que se escribe se hace con el objetivo de pasar un test, y este test ha sido escrito para comprobar un caso de uso, basado en un requisito del cliente. Por lo que siempre es necesario.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>En Hiberus Tecnolog\u00eda contamos con un amplio <strong>equipo de expertos en QA Services &amp; Testing.<\/strong> Sus m\u00e1s de ocho a\u00f1os de experiencia en el sector, junto a su certificaci\u00f3n <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/siete-principios-que-deben-guiar-el-testing-de-software-segun-istqb\/\">ISTQB<\/a> hacen de este equipo una apuesta segura dentro de nuestras <a href=\"https:\/\/www.hiberus.com\/enterprise-efficiency\">tecnolog\u00edas diferenciales<\/a>. Conf\u00eda en nosotros. \u00a1Te ayudaremos en todo lo que necesites!<\/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\/20834#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>Cada cosa tiene su momento. Es por esto que en el mundo del desarrollo software existen diferentes metodolog\u00edas de trabajo para definir&#8230;<\/p>\n","protected":false},"author":233,"featured_media":20983,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_ayudawp_aiss_exclude":false,"footnotes":""},"categories":[7,3,239,167],"tags":[64],"class_list":{"0":"post-20834","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-next-tech","8":"category-negocio-electronico","9":"category-qa","10":"category-retail-distribucion","11":"tag-qa"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/20834","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\/233"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/comments?post=20834"}],"version-history":[{"count":19,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/20834\/revisions"}],"predecessor-version":[{"id":35384,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/20834\/revisions\/35384"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media\/20983"}],"wp:attachment":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media?parent=20834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/categories?post=20834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/tags?post=20834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}