<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>tdd Archives - Software Evolutivo</title>
	<atom:link href="https://softwareevolutivo.com.ec/tag/tdd/feed/" rel="self" type="application/rss+xml" />
	<link>https://softwareevolutivo.com.ec/tag/tdd/</link>
	<description>Consultora de Software Empresarial</description>
	<lastBuildDate>Sun, 11 Dec 2022 00:04:00 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://softwareevolutivo.com.ec/wp-content/uploads/2024/03/cropped-Perfil-Redes-Iso-32x32.png</url>
	<title>tdd Archives - Software Evolutivo</title>
	<link>https://softwareevolutivo.com.ec/tag/tdd/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kata Juego de la Vida</title>
		<link>https://softwareevolutivo.com.ec/kata-juego-de-la-vida/</link>
					<comments>https://softwareevolutivo.com.ec/kata-juego-de-la-vida/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Wed, 18 May 2022 19:35:27 +0000</pubDate>
				<category><![CDATA[Agilidad]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[coding dojo]]></category>
		<category><![CDATA[tdd]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=1671</guid>

					<description><![CDATA[<p>Una de las katas más populares al hacer Coding Dojo es la Kata Juego de la Vida, y de hecho la más usada en Code Retreat.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/kata-juego-de-la-vida/">Kata Juego de la Vida</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Una de las katas más populares al hacer Coding Dojo es la Kata Juego de la Vida, y de hecho la más usada en Code Retreat.</p>



<h2 class="wp-block-heading">Descripción del problema</h2>



<p>Este Kata se trata de calcular la próxima generación del juego de la vida de Conway, dada cualquier posición inicial. Consulta&nbsp;<a href="https://es.wikipedia.org/wiki/Juego_de_la_vida" target="_blank" rel="noreferrer noopener">Juego de la vida de Conway</a>&nbsp;para conocer los antecedentes.</p>



<p><strong>Comienza con una cuadrícula bidimensional de celdas</strong>, donde cada celda está viva o muerta. En esta versión del problema, la cuadrícula es finita y no puede existir vida fuera de los bordes.&nbsp;</p>



<p>Al calcular la próxima generación de la red, sigue estas reglas:</p>



<ol class="wp-block-list"><li>Cualquier celda viva con menos de dos vecinas vivas muere, como si la causa fuera la subpoblación.</li><li>Cualquier celda viva con más de tres vecinos vivos muere, como por superpoblación.</li><li>Cualquier celda viva con dos o tres vecinos vivos seguirá viva.</li><li>Cualquier celda muerta con exactamente tres vecinos vivos se convierte en una celda viva.</li></ol>



<h2 class="wp-block-heading">Pistas</h2>



<p>La posición inicial de entrada podría ser un archivo de texto que se vea así:</p>



<p>Generación 1 inicial:</p>



<p>4 (filas) 8 (columnas)</p>



<pre class="wp-block-code"><code>0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0</code></pre>



<p>Generación 2 próxima resultante por regla No. 4:</p>



<p>4 (filas) 8 (columnas)</p>



<pre class="wp-block-code"><code>0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0</code></pre>



<h2 class="wp-block-heading">Visualiza tus casos de prueba</h2>



<p>Hemos preparado la siguiente herramienta para que puedas dibujar (en caso remoto colaborativo) tus casos de prueba, revísalo en <a href="https://docs.google.com/spreadsheets/d/1cOW-opdduBJnf_0xTVfZkfDRI8a3aednSqFoStS3McQ/edit?usp=sharing" target="_blank" rel="noreferrer noopener">Juego de la vida visual</a>.</p>



<h2 class="wp-block-heading">Casos de prueba sugeridos</h2>



<p>Asegúrate de tener suficiente cobertura de casos en los extremos, en donde hay nacimientos y muertes en el extremo de la cuadrícula.</p>



<p class="has-text-align-center has-large-font-size"><strong>!Que te diviertas! En tu Kata Juego de la vida</strong></p>



<p><strong>DISCLAIMER</strong>: La mayoría de este texto es traducido del valioso aporte en <a href="https://codingdojo.org/kata/GameOfLife/" target="_blank" rel="noreferrer noopener">GameOfLife</a>, pero no está disponible en español.&nbsp; Pero hemos añadido varias cosas a la descripción y alguna herramienta, para hacerlo en nuestro entendimiento más comprensivo.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/kata-juego-de-la-vida/">Kata Juego de la Vida</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/kata-juego-de-la-vida/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pruebas de Aceptación con BDD y Cucumber</title>
		<link>https://softwareevolutivo.com.ec/iniciando-con-las-pruebas-de-aceptacion/</link>
					<comments>https://softwareevolutivo.com.ec/iniciando-con-las-pruebas-de-aceptacion/#respond</comments>
		
		<dc:creator><![CDATA[Jorge Aguilar]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 15:31:35 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Pruebas]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[pruebas]]></category>
		<category><![CDATA[tdd]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=312</guid>

					<description><![CDATA[<p>Pruebas de aceptación con BDD y Cucumber</p>
<p>En desarrollo de Software, la automatización de las pruebas es vital para garantizar la calidad del producto. Prácticas ágiles como Entrega Contínua la tienen con un pilar fundamental para obtener los beneficios esperados.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/iniciando-con-las-pruebas-de-aceptacion/">Pruebas de Aceptación con BDD y Cucumber</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="312" class="elementor elementor-312">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-4725eaf3 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4725eaf3" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5246b389" data-id="5246b389" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-503af505 elementor-widget elementor-widget-text-editor" data-id="503af505" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-align: left;">En desarrollo de Software, la automatización de las pruebas es vital para garantizar la calidad del producto. Prácticas ágiles como&nbsp;</span><a href="https://en.wikipedia.org/wiki/Continuous_delivery" target="_blank">Entrega Contínua</a><span style="text-align: left;">&nbsp;la tienen con un pilar fundamental para obtener los beneficios esperados. Y es que al desarrollar pruebas junto con el código de la implementación, estamos promoviendo a que los errores sean identificados en etapas tempranas en el ciclo de vida del desarrollo de Software, reduciendo así los costos que representaría identificar estos mismos errores ya cuando el Software esté operativo.</span></p>
<p>Para las organizaciones que compiten en un mercado muy exigente, mantener sus productos de Software actualizados con las necesidades de sus clientes internos y externos puede ser la diferencia entre seguir operando o desaparecer. El contar con pruebas automatizadas hará que estos cambios puedan surgir en menor tiempo.</p>
<h3>¿Por dónde comenzar?</h3>
<p>Ahora que sabemos que tener pruebas automatizadas es importante, suele ocurrir que, como no estamos habituados a escribirlas, no sabemos por donde comenzar. Una alternativa es aplicar&nbsp;<a href="https://en.wikipedia.org/wiki/Test-driven_development" target="_blank">TDD</a>, lo cual nos ayuda no solamente a tener un conjunto aceptable de pruebas sino que también evita que caigamos en la sobre-ingeniería, manteniendo un diseño simple en nuestro código.</p>
<p>Las&nbsp;<a href="https://en.wikipedia.org/wiki/Unit_testing">pruebas unitarias</a>&nbsp;que se obtienen de aplicar TDD sirven como documentación para que otros desarrolladores se familiaricen con la funcionalidad esperada. Además, nos sirven como un red de protección ya que podremos comprobar al ejecutar la mismas que no hayamos afectado negativamente algo que la aplicación está esperando.</p>
<p>Sin embargo, estas pruebas no son de mucha ayuda cuando deseamos la participación de otros actores que no tengan el nivel un técnico de los desarrolladores. Aquí es donde herramientas como&nbsp;<a href="https://cucumber.io/" target="_blank">Cucumber</a>&nbsp;pueden ser de mucha ayuda ya que permiten la definición de&nbsp;<a href="https://en.wikipedia.org/wiki/Acceptance_testing" target="_blank">pruebas de aceptación</a>&nbsp;en un lenguaje que el negocio conoce. Mediante ejemplos reales se puede identificar los escenarios prioritarios que el Software debe implementar.</p>
<p>Se puede definir a Cucumber como una herramienta BDD, ya que promueve a que primero escribamos una prueba de aceptación y luego proceder a la implementación para pasar la misma.</p>
<h3>¿Y qué es BDD?</h3>
<p>Behavior-driven development (<a href="https://en.wikipedia.org/wiki/Behavior-driven_development" target="_blank">BDD</a>) es un proceso de desarrollo de Software que emerge de TDD y que ayuda a que el equipo de desarrollo y los conocedores del negocio colaboren de mejor manera durante la creación del producto de Software.</p>
<p>Manteniendo un enfoque&nbsp;<a href="https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design" target="_blank">top-down</a>, se inicia con la definición de un caso en particular del negocio, escrito en el lenguaje del día a día de los involucrados. Esta simple definición serviría nada más como documentación de los que esperamos del sistema, pero este proceso de desarrollo busca que este requerimiento definido como una prueba de aceptación sea automatizado para validar su cumplimiento en cualquier momento.</p>
<p>Al &nbsp;igual que TDD todo comienza con una definición que esperamos que falle para luego proceder a implementarla. Aquí es donde se pone interesante el asunto ya que para esa implementación podríamos hacer uso de TDD en cada uno de los elementos que se vayan a desarrollar en los niveles inferiores.</p>
<p>Si deseas ver cómo todo esto puede ser utilizado desde una aplicación en Java puedes visitar la siguiente entrada&nbsp;<a href="https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/">Cucumber + Spring boot 2 + Junit 5</a></p>
<h3>Resumen y conclusiones</h3>
<ul>
<li>El uso de un lenguaje natural de negocio ayuda enormemente a que los actores principales se involucran en la concepción del producto de Software y en la validación posterior del mismo.</li>
<li>BDD también es de mucha ayuda cuando no sepamos por dónde iniciar nuestras pruebas ya que este enfoque pone en evidencia lo que resulta de prioridad para el negocio.</li>
</ul>
<h3>Referencias</h3>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Continuous_delivery" target="_blank">https://en.wikipedia.org/wiki/Continuous_delivery</a><br></li>
<li><a href="https://en.wikipedia.org/wiki/Test-driven_development" target="_blank">https://en.wikipedia.org/wiki/Test-driven_development</a><br></li>
<li><a href="https://en.wikipedia.org/wiki/Unit_testing" target="_blank">https://en.wikipedia.org/wiki/Unit_testing</a><br></li>
<li><a href="https://cucumber.io/" target="_blank">https://cucumber.io/</a><br></li>
<li><a href="https://en.wikipedia.org/wiki/Acceptance_testing" target="_blank">https://en.wikipedia.org/wiki/Acceptance_testing</a><br></li>
<li><a href="https://en.wikipedia.org/wiki/Unit_testing" target="_blank">https://en.wikipedia.org/wiki/Unit_testing</a><br></li>
<li><a href="https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design" target="_blank">https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design</a></li>
</ul>
<p><!-- /wp:shortcode --></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/iniciando-con-las-pruebas-de-aceptacion/">Pruebas de Aceptación con BDD y Cucumber</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/iniciando-con-las-pruebas-de-aceptacion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
