<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-3360428795422884065</id><updated>2010-03-10T05:12:59.300-08:00</updated><title type='text'>abstracta</title><subtitle type='html'>Simplificando el Testing</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default?start-index=26&amp;max-results=25'/><author><name>Colorator</name><uri>http://www.blogger.com/profile/10472624645567678175</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>81</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-6165282299969737808</id><published>2010-03-08T06:24:00.001-08:00</published><updated>2010-03-09T04:56:30.028-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>Testing automatizado - hagamos que las máquinas trabajen por nosotros</title><content type='html'>Si recuerdan, el año pasado en el Encuentro GeneXus en Montevideo, estuvimos a cargo de dos charlas y un café (en conjunto con el &lt;a href="http://www.blogger.com/www.ces.com.uy"&gt;CES&lt;/a&gt;). En una de las charlas hablamos sobre el testing automatizado, con el fin principal de mostrar los distintos desafíos que se presentan y la forma que tenemos de enfrentarlos, en particular al trabajar con Genexus, para que así se animen a comenzar a automatizar.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como seguimos con la apuesta a que se animen a automatizar les damos dos anuncios&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1ro -  salió el primer build después del despegue de la beta. Les recomiendo leer &lt;a href="http://gxtest.abstracta.com.uy/wiki/index.php?title=Builds_de_GXtest_1.1_Beta"&gt;aquí&lt;/a&gt; para que puedan descargarla, y para que vean los avances que se han logrado desde la beta. Queremos hacer énfasis en que este es el mejor momento para dar feedback sobre el producto, pues nuestro foco en este momento está ahí.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2do - transcribimos la charla a nuestra documentación, a modo de transmitir mejor las experiencias obtenidas en el transcurso de nuestra historia en el testing automatizado de aplicaciones Genexus (&lt;a href="http://gxtest.abstracta.com.uy/wiki/index.php?title=Testing_Automatizado_en_GeneXus"&gt;acceda aquí&lt;/a&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Entonces todos a Automatizar!&lt;/div&gt;&lt;div&gt;Esperamos sus comentarios.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-6165282299969737808?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/6165282299969737808/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=6165282299969737808' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6165282299969737808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6165282299969737808'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2010/03/testing-automatizado-hagamos-que-las.html' title='Testing automatizado - hagamos que las máquinas trabajen por nosotros'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-1309904376412337019</id><published>2010-03-02T04:34:00.000-08:00</published><updated>2010-03-02T13:51:12.190-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><title type='text'>GXtest 1.1 beta released!!</title><content type='html'>&lt;span class="Apple-style-span"   style="  border-collapse: collapse; font-family:arial, sans-serif;font-size:13px;"&gt;&lt;div class="im" style="color: rgb(80, 0, 80); "&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;Tenemos el agrado de anunciar que la versión&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt; beta d&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;e GXtest 1.1 está en la calle! &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="im" style="color: rgb(80, 0, 80); "&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51);   font-family:georgia;font-size:medium;"&gt;Nuestro objetivo fue el de brindar la nueva versión con todas sus nuevas funcionalidades servidas para que les sea práctico y fácil probarlas y visualizar sus ventajas, y las mejoras que ellas le traen a GXtest. En ese sentido hemos actualizado la documentación mejorando los tutoriales y guías para comenzar fácilmente a agarrarle el gustito al testing automatizado.&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;color:#333333;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="im"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); font-family:georgia;font-size:medium;"&gt;¿Cómo arrancar?&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;Primero debes registrarte al equipo de betatesters, luego descargarte la última versión disponible, y comenzar a probar. Eso lo debes hacer &lt;a href="http://www.gxtechnical.com/betatesters/gxtest"&gt;aquí&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="im"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); font-family:georgia;font-size:medium;"&gt;En ese momento también tendrás acceso al foro para poder intercambiar dudas y experiencias sobre la herramienta. Todo el feedback que nos aportes será bienvenido y agradecido.&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;color:#333333;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); font-family:georgia;font-size:medium;"&gt;¿Dónde está la información técnica?&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="im" style="text-align: justify;"&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;Está todo centralizado en nuestra Wiki junto a toda la documentación de GXtest, en &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;&lt;a href="http://gxtest.abstracta.com.uy/wiki/index.php?title=Categor%C3%ADa:GXtest_1.1_Beta"&gt;este link&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="color:#333333;"&gt;. Ahí podrás encontrar una descripción de las nuevas funcionalidades, las mejoras implementadas, y una serie de lecturas recomendadas para comenzar.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="im" style="text-align: justify;color: rgb(80, 0, 80); "&gt;&lt;span class="Apple-style-span"    style="font-family:Georgia, 'Trebuchet MS', 'Lucida Grande';font-size:100%;color:#333333;"&gt;&lt;span class="Apple-style-span"  style="border-collapse: separate;  line-height: 22px;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-1309904376412337019?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/1309904376412337019/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=1309904376412337019' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/1309904376412337019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/1309904376412337019'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2010/02/gxtest-11-beta-released.html' title='GXtest 1.1 beta released!!'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-85476580323351241</id><published>2010-02-11T13:26:00.000-08:00</published><updated>2010-02-11T14:18:13.266-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>Nivel de abstracción de los Casos de Prueba</title><content type='html'>&lt;div&gt;Un concepto simple de testing que se utiliza en GXtest dando mucho valor a los testers que van a trabajar diseñando pruebas es el de Data Driven Testing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este concepto permite diferenciar entre &lt;i&gt;casos de prueba abstractos&lt;/i&gt; (o conceptuales), y &lt;i&gt;casos de prueba concretos&lt;/i&gt; (o con datos).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nos ha pasado que las empresas nos plantean que en su organización se cuenta con un conjunto de pruebas de regresión formado por miles de casos de prueba, pero ¿cómo se da esto? es porque estamos contando casos de prueba con datos y no casos de prueba abstractos. Veamos con un ejemplo, si estuviéramos probando el login de la aplicación:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Test case 1: probar con un usuario vacío y verificar que no entra&lt;/div&gt;&lt;div&gt;Test case 2: probar con password vacío y verificar que no entra&lt;/div&gt;&lt;div&gt;Test case 3: probar con usuario valido y password inválido y verificar que no entra&lt;/div&gt;&lt;div&gt;Test case 4: probar con usuario y password válidos y verificar que sí entra&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esto lo podríamos ver como un solo caso de prueba que sea&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.- ingresar usuario&lt;/div&gt;&lt;div&gt;2.- ingresar password&lt;/div&gt;&lt;div&gt;3.- botón login&lt;/div&gt;&lt;div&gt;4.- verificar resultado&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;que luego tenga "parametrizadas" sus entradas y verificaciones. O sea, que tome usuario y password y resultado esperado de una fuente de datos donde tenga las siguientes líneas&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;usuario vacio, password cualquiera, no entra&lt;/div&gt;&lt;div&gt;usuario cualquiera, password vacio, no entra&lt;/div&gt;&lt;div&gt;usuario válido, password inválido, no entra&lt;/div&gt;&lt;div&gt;usuario válido, password válido, entra&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Entonces, de esta forma separamos el caso de prueba abstracto de sus instancias. Por un lado tenemos el caso de prueba abstracto que me dice qué hace el caso de prueba, y por otro lado tengo los datos con los cuales se va a "instanciar" el mismo. Cada caso de prueba concreto es una prueba diferente para la aplicación.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ventajas&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Podemos describir el flujo de la aplicación en el modelo independiente de los datos&lt;/li&gt;&lt;li&gt;Podemos tener en forma centralizada los datos de entrada y salidas esperadas en una tabla (o Excel)&lt;/li&gt;&lt;li&gt;Podemos agregar más casos de prueba simplemente agregando líneas a la tabla&lt;/li&gt;&lt;li&gt;Relacionado con el &lt;a href="http://blog.abstracta.com.uy/2010/02/how-to-write-good-test-case-5-tips-to.html"&gt;post anterior&lt;/a&gt; los casos de prueba expresados de esta forma van a constituir una mejor documentación de la aplicación.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Entonces, seguramente cuando alguien intente diseñar casos de prueba con GXtest deberá pensar las cosas en forma un poco distinta a lo que algunos suelen hacer. Debería ser en dos etapas, primero pensar el caso de prueba a nivel conceptual, y luego bajarlo a instancias con distintos datos. El otro camino es el inverso, si ya se tienen pensados varios casos de prueba con datos, antes de automatizarlos con GXtest se debería pensar si no se pueden conceptualizar o abstraer esos casos de prueba.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Qué dicen, les resulta más simple de esa forma?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;La idea es seguir la filosofía GeneXus: Simplifiquemos las cosas haciendo nuestras tareas en forma más descriptiva y abstracta.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-85476580323351241?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/85476580323351241/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=85476580323351241' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/85476580323351241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/85476580323351241'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2010/02/nivel-de-abstraccion-de-los-casos-de.html' title='Nivel de abstracción de los Casos de Prueba'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-3384286289220377418</id><published>2010-02-09T07:10:00.000-08:00</published><updated>2010-02-09T08:11:45.106-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>How to write a good test case: 5 tips to write better test cases</title><content type='html'>Leyendo &lt;a href="http://www.makinggoodsoftware.com/2009/08/25/how-to-write-a-good-test-case5-tips-to-write-better-test-cases/"&gt;este&lt;/a&gt; artículo sobre como escribir buenos test cases, me pareció importante relacionar estos 5 consejos con GXtest.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;1) Escribir un caso de prueba para todas las condiciones&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Cuando estamos hablando de código GeneXus tal vez esto sea como pensar no sólo en los distintos flujos que se dan en los procedimientos, sino en que se verifiquen las regla definidas sobre un objeto (ojo, no estamos diciendo de cubrir todo el código, ni que cubrir todo el código nos garantice nada).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;2) Testear solo una cosa&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Si bien con GXtest nos podemos ver tentados a testear varias cosas en un mismo Test Case, es conveniente mantener aisladas las pruebas para cada parte del sistema.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;3) Hacer que los casos de prueba describan cómo trabaja el sistema&lt;/b&gt;&lt;/div&gt;&lt;div&gt;En GXtest describimos las pruebas con modelos simples, y esto hace que se describa el comportamiento esperado del sistema en forma sencilla. Hay algunos elementos que ayudan con este propósito. Por un lado se pueden poner comentarios de texto en los casos de prueba. Por otro lado podemos "partir" nuestro caso  de prueba en varios sub-casos para lograr que luego cuando se vea en su generalidad se pueda entender los distintos pasos que se dan de manera más fácil.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;4) Organizar los casos de prueba de manera consistente&lt;/b&gt;&lt;/div&gt;&lt;div&gt;GXtest permite utilizar folders (podrán verlo a partir de la beta 1.1) para organizar tanto los casos de prueba como los datos de prueba. Es importante tal como dice el artículo fijar un criterio para toda la empresa o por proyecto y seguirlo a rajatabla.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;5) Hacer casos de prueba "FIRST class"&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;F&lt;/b&gt;ast: GXtest se encarga de ejecutar los casos de prueba lo más rápido posible. En Abstracta es un desfío constante bajar los tiempos de ejecución de cada caso de prueba sin perder en estabilidad. &lt;/li&gt;&lt;li&gt;&lt;b&gt;I&lt;/b&gt;ndependent: en las suites de GXtest se agrupan varios casos de prueba. Es importante que en la suite puedan correr sus casos de prueba sin importar el orden.&lt;/li&gt;&lt;li&gt;&lt;b&gt;R&lt;/b&gt;epeteable: es deseable que cada caso de prueba se pueda repetir sin tener necesidad de hacer un restore de la base de datos. Para eso GXtest proporciona mecanismos para acceder a los datos utilizando procedimientos GeneXus, los cuales se pueden utilizar para borrar datos, obtener datos, etc.&lt;/li&gt;&lt;li&gt;&lt;b&gt;S&lt;/b&gt;mall: casos de prueba gigantes no pueden cumplir con el primer requsitio &lt;i&gt;Fast&lt;/i&gt;. Si bien con GXtest nos podemos tentar a hacer casos de prueba muy grandes es conveniente siempre mantener su tamaño acotado.&lt;/li&gt;&lt;li&gt;&lt;b&gt;T&lt;/b&gt;ransparent: en GXtest se puede utilizar la descripción que tiene asociado cada caso de prueba para indicar claramente su propósito.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Es bueno para nosotros, a modo de validación, ver cómo con GXtest podemos adaptarnos a los buenos tips que se recomiendan en distintas fuentes.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; color: rgb(80, 0, 80); "&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-3384286289220377418?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/3384286289220377418/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=3384286289220377418' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/3384286289220377418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/3384286289220377418'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2010/02/how-to-write-good-test-case-5-tips-to.html' title='How to write a good test case: 5 tips to write better test cases'/><author><name>MelliMatías</name><uri>http://www.blogger.com/profile/05589011792765234083</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11850391718833648583'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-1208470423474346087</id><published>2010-01-24T14:00:00.000-08:00</published><updated>2010-01-25T12:36:45.267-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>¿Cómo comenzar con el testing automatizado?</title><content type='html'>Acabamos de terminar una documentación en nuestra wiki, la cual nos resultó interesante compartirla también por este medio (fuente: &lt;a href="http://gxtest.abstracta.com.uy/wiki/index.php?title=%C2%BFComo_empezar_con_testing_automatizado%3F"&gt;http://gxtest.abstracta.com.uy/wiki/index.php?title=%C2%BFComo_empezar_con_testing_automatizado%3F&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 19px; font-family:sans-serif;font-size:13px;"&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;Muchas veces se visualizan los beneficios de automatizar parte de las pruebas pero no se sabe como comenzar, o se cuenta con una herramienta de testing automatizado pero no se está seguro acerca de su implantación. Por estos motivos en este artículo se discutirán los distintos aspectos importantes a tener en cuenta para comenzar con el testing automatizado, en particular utilizando GXtest sobre aplicaciones GeneXus, aunque varios de los conceptos y consejos que se mencionan aquí aplican a cualquier intento de automatización.&lt;/p&gt;&lt;a name="Comenzar_con_un_proyecto_piloto" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "&gt;&lt;/a&gt;&lt;h2  style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170);  background-position: initial initial; font-size:19px;"&gt;&lt;span class="mw-headline"&gt;&lt;br /&gt;Comenzar con un proyecto piloto&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;Al igual que la mayoría de las prácticas de ingeniería de software, es conveniente &lt;b&gt;elegir&lt;/b&gt; un proyecto &lt;b&gt;adecuado&lt;/b&gt; y utilizarlo como proyecto piloto para comenzar.&lt;/p&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;El hecho de utilizar un proyecto piloto tiene varias ventajas:&lt;/p&gt;&lt;ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: url(http://gxtest.abstracta.com.uy/wiki/skins/monobook/bullet.gif); "&gt;&lt;li style="margin-bottom: 0.1em; "&gt;poder definir una metodología inicial adecuada a la forma de trabajo de la empresa&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;adquirir experiencia en el uso de las herramientas de automatización&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;medir los beneficios&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;evaluar las dificultades&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;contar con un proyecto de alcance acotado en el cual focalizar los esfuerzos por mejorar la calidad&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;Es deseable que este proyecto piloto pueda mostrar en el menor plazo posible el ROI que se tiene al aplicar testing automatizado, por este motivo se deben seleccionar algunas métricas (de acuerdo a la realidad de la empresa y del proyecto) que lo visualicen. Algunas métricas que se pueden utilizar para este fin son las siguientes:&lt;/p&gt;&lt;ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: url(http://gxtest.abstracta.com.uy/wiki/skins/monobook/bullet.gif); "&gt;&lt;li style="margin-bottom: 0.1em; "&gt;horas de testing / # de errores encontrados por el cliente&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;# de errores encontrados por el cliente / Tamaño del sistema&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;Tiempo de detección de los errores (entre que se introdujo el error y se detectó)&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;etc&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;También se puede evaluar a través de un cuestionario algunos aspectos subjetivos como son la motivación del equipo de testing, la sensación de estabilidad o calidad del sistema por parte de los usuarios o la percepción de calidad en el testing de los desarrolladores.&lt;/p&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;Ahora bien, ¿cuales son las características deseadas que tiene que tener el proyecto piloto?. Algunas de estas características son:&lt;/p&gt;&lt;ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: url(http://gxtest.abstracta.com.uy/wiki/skins/monobook/bullet.gif); "&gt;&lt;li style="margin-bottom: 0.1em; "&gt;&lt;b&gt;Tamaño del equipo&lt;/b&gt; pequeño: es preferible que el equipo de testing y el equipo de desarrollo sean pequeños. En equipos pequeños es más fácil introducir cambios y medir su impacto. Un factor muy importante es que el equipo vea el testing automatizado como una ayuda en su trabajo y no como una carga extra.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;&lt;b&gt;Skills&lt;/b&gt; de las personas involucradas: si se va a introducir un cambio es imprescindible contar con gente dispuesta a cambiar la forma de trabajo. Si esta gente es líder o referente en la empresa mucho mejor, ya que luego será más sencillo adoptar los cambios en el resto de los proyectos.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;Cantidad de &lt;b&gt;ciclos de prueba&lt;/b&gt;: las pruebas automatizadas tienen más valor cada vez que se corren, por este motivo aquellos proyectos que involucren varios ciclos de prueba son los que sacan más valor de este tipo de pruebas. Típicamente durante la etapa de mantenimientos de los sistemas se tienen algunas correcciones del mismo y luego se corren pruebas de regresión. Estos proyectos de mantenimiento suelen ser buenos candidatos para empezar con las pruebas automatizadas&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;Relevancia de la &lt;b&gt;calidad&lt;/b&gt; del sistema: si bien todos los sistemas que desarrollamos tienen que ser de calidad, hay ciertos proyectos en los cuales los clientes son más demandantes en cuanto a la calidad y valoran más los aspectos referentes a la calidad.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;&lt;b&gt;Tecnología&lt;/b&gt; a utilizar: dependiendo de la tecnología que se utilice para desarrollar existen herramientas para automatizar de menor o mayor sofisitificación y de menor o mayor precio. Para el caso en que la aplicación se realice en GeneXus con GXtest se tendrán contemplados los distintos aspectos que necesita cubrir la herramienta, con otras tecnologías hay que evaluar otras alternativas.&lt;/li&gt;&lt;/ul&gt;&lt;a name=".C2.BFQui.C3.A9n_automatiza.3F" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "&gt;&lt;/a&gt;&lt;h2  style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170);  background-position: initial initial; font-size:19px;"&gt;&lt;span class="mw-headline"&gt;&lt;br /&gt;¿Quién automatiza?&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;Una vez que se decidió del portfolio de proyectos, cual será el elegido para comenzar con la experiencia de testing automatizado se deberá asignar las personas que se involucrarán en el mismo. En particular se deberá elegir quienes serán los encargados de realizar el testing automatizado. La recomendación es que las personas encargadas de automatizar sean los mismos analistas que conocen de los requerimientos y de la realidad y que realizan el testing funcional tradicional. Es importante que sea el mismo grupo por varios motivos:&lt;/p&gt;&lt;ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: url(http://gxtest.abstracta.com.uy/wiki/skins/monobook/bullet.gif); "&gt;&lt;li style="margin-bottom: 0.1em; "&gt;que no se genere competencia entre las pruebas manuales y las pruebas automatizadas&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;ayudar a asegurar la correcta elección de las pruebas que se realizarán de manera automatizado&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;las herramientas de testing automatizado pueden servir no solo para automatizar casos de prueba sino que también para generar datos para los casos de prueba. Por este motivo conocer de la herramienta de automatización ayudará a también en las pruebas manuales&lt;/li&gt;&lt;/ul&gt;&lt;a name=".C2.BFC.C3.B3mo_formar_a_las_personas_que_van_a_automatizar.3F" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "&gt;&lt;/a&gt;&lt;h3   style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0.3em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: initial; border-bottom-style: none; border-bottom-  background-position: initial initial; font-size:17px;color:initial;"&gt;&lt;span class="mw-headline"&gt;&lt;br /&gt;¿Cómo formar a las personas que van a automatizar?&lt;/span&gt;&lt;/h3&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;El proceso que siga cada una de las personas que vaya a automatizar puede variar según su grado de conocimiento en testing automatizado y en herramientas de automatización. Es aconsejable que de manera paralela puedan comenzar con la capacitación en la herramienta que se vaya a utilizar (con GXtest se puede empezar por ejemplo con &lt;a href="http://gxtest.abstracta.com.uy/wiki/index.php?title=Tutorial_de_GXtest_Designer" title="Tutorial de GXtest Designer" style="text-decoration: none; color: rgb(90, 54, 150); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "&gt;Tutorial de GXtest Designer&lt;/a&gt;) así como también leyendo material acerca de metodología y experiencias de pruebas automatizadas en general. Una lectura recomendada es la &lt;a href="http://www.testingexperience.com/testingexperience04_08.pdf" class="external text" title="http://www.testingexperience.com/testingexperience04_08.pdf" rel="nofollow" style="text-decoration: none; color: rgb(51, 102, 187); background-image: url(http://gxtest.abstracta.com.uy/wiki/skins/monobook/document.png); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; padding-right: 12px; background-position: 100% 50%; "&gt;4º Edición&lt;/a&gt; de la revista Testing Experience dedicada al testing automatizado.&lt;/p&gt;&lt;a name="Selecci.C3.B3n_de_los_casos_de_prueba_a_automatizar" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "&gt;&lt;/a&gt;&lt;h2  style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170);  background-position: initial initial; font-size:19px;"&gt;&lt;span class="mw-headline"&gt;&lt;br /&gt;Selección de los casos de prueba a automatizar&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;Una vez que se tiene elegido el proyecto y la gente que participará en el mismo el punto crítico en la automatización de las pruebas es &lt;b&gt;decidir&lt;/b&gt; cuales casos de prueba se automatizarán. El error más común en los intentos de automatización es intentar automatizar todo, así que la recomendación aquí es &lt;b&gt;NO INTENTE AUTOMATIZAR TODOS LOS CASOS DE PRUEBA&lt;/b&gt;. Teniendo una visión del negocio y también de la estructura interna del sistema (para lo cual se necesita involucrar a los desarrolladores) se debe decidir cuales casos de prueba que se automatizarán. Algunas de los factores a tener en cuenta son:&lt;/p&gt;&lt;ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: url(http://gxtest.abstracta.com.uy/wiki/skins/monobook/bullet.gif); "&gt;&lt;li style="margin-bottom: 0.1em; "&gt;¿cuales casos de prueba se necesitarán correr más veces durante el proyecto? Típicamente aquellos casos de prueba asociados al núcleo de la aplicación se pueden construir al principio del proyecto y luego sirven (adaptándolos cuando sea necesario) para el resto de la vida del sistema.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;¿cuáles casos de prueba conllevan mucha dedicación humana y son repetitivos? Hay veces que un caso de prueba requiere de un trabajo tedioso para configurar el ambiente de prueba y luego ejecutar el caso de prueba. Estos casos de prueba es bueno automatizarlos para liberar el recurso humano y que pueda dedicarse a otros casos más desafiantes.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;¿que funcionalidades son críticas para el cliente/usuario? Aquellas funcionalidades que tienen que andar si o si en cada entrega generalmente es interesante incluirlas en los casos automatizados.&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;¿que costo tienen asociado la automatización del caso de prueba? Hay casos de prueba que son muy difíciles de automatizar, ya sea porque hay que realizar validaciones visuales complejas o por otras razones. Por este motivo si el costo de su automatización es grande hay veces que es mejor dejarlo para ser ejecutado manualmente.&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;Teniendo en cuenta estas características se puede ponderar cada caso de prueba en base a cada una de ellas para luego hacer un ranking o priorizar los casos de prueba a automatizar.&lt;/p&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;En el caso de que se vaya a automatizar en un proyecto de mantenimiento en el cual ya se están corriendo pruebas manuales, muchas veces la fuente de información más importante que tenemos para elegir los casos de prueba a automatizar es el historial de incidentes. Con este instrumento más las consideraciones vistas previamente se puede tener una idea clara de cuales son aquellos casos de prueba o funcionalidades a automatizar.&lt;/p&gt;&lt;a name="C.C3.B3mo_Comenzar" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "&gt;&lt;/a&gt;&lt;h2  style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170);  background-position: initial initial; font-size:19px;"&gt;&lt;span class="mw-headline"&gt;&lt;br /&gt;Cómo Comenzar&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em; "&gt;Luego de seleccionar un proyecto para un piloto, y seleccionar ciertos casos de prueba para automatizar, lo que recomendamos es comenzar por un subconjunto acotado de casos de prueba (no más de 10) y ponerlos a funcionar. Esto es: diseñarlos (en papel, planillas, etc.), automatizarlos (con GXtest Designer y Recorder), preparar ambiente y datos para poder probarlos, preparar la ejecución programada de estos casos (con GXtest Manager, haciendo que ejecuten todas las noches por ejemplo) y definiendo las metodologías para trabajar. Una vez que preparemos esto comenzaremos a ver los beneficios y a alimentar la máquina de pruebas automatizadas, haciéndola crecer cada vez más, obteniendo cada vez más beneficios.&lt;/p&gt;&lt;a name="Ver_tambi.C3.A9n" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "&gt;&lt;/a&gt;&lt;h2  style="color: black; background-image: none; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font-weight: normal; margin-top: 0px; margin-right: 0px; margin-bottom: 0.6em; margin-left: 0px; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(170, 170, 170);  background-position: initial initial; font-size:19px;"&gt;&lt;span class="mw-headline"&gt;&lt;br /&gt;Ver también&lt;/span&gt;&lt;/h2&gt;&lt;ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-image: url(http://gxtest.abstracta.com.uy/wiki/skins/monobook/bullet.gif); "&gt;&lt;li style="margin-bottom: 0.1em; "&gt;&lt;a href="http://searchsoftwarequality.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid92_gci1251861,00.html" class="external text" title="http://searchsoftwarequality.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid92_gci1251861,00.html" rel="nofollow" style="text-decoration: none; color: rgb(51, 102, 187); background-image: url(http://gxtest.abstracta.com.uy/wiki/skins/monobook/external.png); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; padding-right: 13px; background-position: 100% 50%; "&gt;How to design test cases&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0.1em; "&gt;&lt;a href="http://www.testingexperience.com/testingexperience04_08.pdf" class="external text" title="http://www.testingexperience.com/testingexperience04_08.pdf" rel="nofollow" style="text-decoration: none; color: rgb(51, 102, 187); background-image: url(http://gxtest.abstracta.com.uy/wiki/skins/monobook/document.png); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; padding-right: 12px; background-position: 100% 50%; "&gt;4ta Edición de la revista "Testing Experience"&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-1208470423474346087?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/1208470423474346087/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=1208470423474346087' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/1208470423474346087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/1208470423474346087'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2010/01/como-comenzar-con-el-testing.html' title='¿Cómo comenzar con el testing automatizado?'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-693190775976366017</id><published>2010-01-19T10:47:00.000-08:00</published><updated>2010-01-19T11:37:40.118-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><title type='text'>Se viene GXtest 1.1</title><content type='html'>Como ya habrán leído por ahí, hace ya unos meses que se lanzó la primera versión comercial de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;GXtest&lt;/span&gt; &lt;span class="Apple-style-span"  style="font-size:small;"&gt;(**)&lt;/span&gt;. Hoy en día, nos estamos preparando para lanzar una nueva versión, poniendo a disposición más &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;funcionalidades&lt;/span&gt; y mejoras.&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_xDsTqyrVo3E/Sre8Xel7e8I/AAAAAAAAAh8/ybNJnLyDQ_M/s320/logo_gxtest_final.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 106px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5383978991079881666" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ejecución en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Firefox&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;En un comienzo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;GXtest&lt;/span&gt; permitía grabar las pruebas y ejecutarlas en Internet &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Explorer&lt;/span&gt;. La ampliación en este sentido fue el haber agregado la posibilidad de ejecutar en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Firefox&lt;/span&gt;. Entonces, las mismas pruebas las podremos ejecutar ahora en dos de los más famosos Navegadores. Estaremos trabajando en futuro para dar soporte para otros, como ser Google &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Chrome&lt;/span&gt;. También en este sentido será interesante dar la posibilidad de poder grabar las pruebas en otros Navegadores.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Integración con la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;BL&lt;/span&gt; de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;GeneXus&lt;/span&gt; X (o superior)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Si se desea automatizar pruebas sobre una aplicación es necesario brindarle a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;GXtest&lt;/span&gt; el acceso a la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;metadata&lt;/span&gt; de la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;KB&lt;/span&gt; de la aplicación. Si se trata de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;GeneXus&lt;/span&gt; 9 o inferior se puede utilizar &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;GXpublic&lt;/span&gt;. También se puede utilizar el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;XPZ&lt;/span&gt; obtenido tras exportar la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;KB&lt;/span&gt; desde &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;GeneXus&lt;/span&gt;, y en el caso de que estemos utilizando &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;GeneXus&lt;/span&gt; X o superior era necesario hacer un &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;export&lt;/span&gt; con una extensión específica que forma parte de la solución &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;GXtest&lt;/span&gt;. El problema con esto es que era necesario instalar la extensión en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;GeneXus&lt;/span&gt;, entrar, abrir la aplicación, exportar generando así un archivo .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;GXT&lt;/span&gt; (similar a un &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;XPZ&lt;/span&gt;), luego entrar en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;GXtest&lt;/span&gt; e indicar la ruta a este archivo. Esto cada vez que se quiera impactar los cambios del ambiente de desarrollo sobre el de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;testing&lt;/span&gt;. Por eso es que agregamos la opción de acceder a la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;KB&lt;/span&gt; a través de la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;BL&lt;/span&gt; (&lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;GeneXus&lt;/span&gt; &lt;/i&gt;&lt;i&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Business&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;Logic&lt;/span&gt;&lt;/i&gt;) cuando se trata de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;GeneXus&lt;/span&gt; X o superior. Esto brinda la misma comodidad para el usuario que cuando se trata de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;GeneXus&lt;/span&gt; 9 o inferior y selecciona usar acceso con &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;GXpublic&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;Organización&lt;/span&gt; en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;Folders&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;En un principio no se ve la necesidad, pero cuando uno comienza a automatizar pruebas y tiene cada vez más &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;Test&lt;/span&gt; Cases &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;automatizados&lt;/span&gt; se puede volver complejo administrarlos y &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;organizarlos&lt;/span&gt;. Para ello ahora se puede trabajar en una estructura de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;Folders&lt;/span&gt; (directorios/carpetas) que nos permiten más facilidad para clasificar y localizar luego cada uno de nuestros &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;Test&lt;/span&gt; Cases o Data &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;Pools&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;A futuro agregaremos la opción también de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;categorizar&lt;/span&gt; los artefactos de prueba, para poder manejar varios criterios de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;clasificación&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Mejoras de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;performance&lt;/span&gt; en la ejecución de pruebas&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Se optimizó notoriamente la ejecución de las pruebas. Esto es muy importante para poder tener los resultados de grandes cantidades de pruebas en menor tiempo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Gráficas para Resultados&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Como dijo &lt;a href="http://www.perftestplus.com/scott_blog.php"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;Scott&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;Barber&lt;/span&gt;&lt;/a&gt; en un evento del &lt;a href="http://www.ces.com.uy/"&gt;CES&lt;/a&gt; una vez, &lt;i&gt;"&lt;/i&gt;&lt;i&gt;más vale números que letras, y más vale gráficas que números"&lt;/i&gt;. Siempre que uno quiere analizar grandes cantidades de datos se simplifica mucho más pudiendo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;visualizarlos&lt;/span&gt; en forma gráfica, por este motivo se agregaron los primeros reportes gráficos en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;GXtest&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;Manager&lt;/span&gt; (encargado de gestionar el repositorio de pruebas).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En Abstracta estamos muy contentos por los logros y el crecimiento que vemos que &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;GXtest&lt;/span&gt; está alcanzando, y por el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;feedback&lt;/span&gt; positivo de los clientes que han confiado en este corto plazo de vida que tenemos. Gracias!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Estamos también pensando en definir un período de betatesting, ¿hay interesados?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;(**) La misma es comercializada a través de &lt;/span&gt;&lt;a href="http://www.genexus.com/portal/hgxpp001.aspx?2,61,1035,O,S,0,MNU;E;227;3;MNU;,"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;Artech&lt;/span&gt; y su red de distribuidores&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; en todo el mundo, o poniéndose en contacto con &lt;/span&gt;&lt;a href="mailto:sales@genexus.com"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;sales@genexus.com.&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-693190775976366017?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/693190775976366017/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=693190775976366017' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/693190775976366017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/693190775976366017'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2010/01/se-viene-gxtest-11.html' title='Se viene GXtest 1.1'/><author><name>Colorator</name><uri>http://www.blogger.com/profile/10472624645567678175</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07760541951603282103'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xDsTqyrVo3E/Sre8Xel7e8I/AAAAAAAAAh8/ybNJnLyDQ_M/s72-c/logo_gxtest_final.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-8901225833033083059</id><published>2010-01-04T11:28:00.000-08:00</published><updated>2010-01-11T09:49:00.225-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing Basado en Modelos'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>Automatizar el diseño de los casos de prueba</title><content type='html'>&lt;div style="text-align: left;"&gt;Uno de los puntos fuertes que nos planteamos al comenzar con &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;GXtest&lt;/span&gt; fue la generación de casos de prueba a partir de modelos. Hoy en día con &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;GXtest&lt;/span&gt; se pueden expresar los casos de prueba como modelos pero no se puede generar &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;automáticamente&lt;/span&gt; casos de prueba a partir de ellos.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La idea es que el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;tester&lt;/span&gt; pueda expresar el conocimiento que tiene sobre la realidad en un modelo para que luego a partir del mismo se generen los casos de prueba.&lt;/div&gt;&lt;div&gt;Les recomiendo que lean este artículo para entender mejor la motivación de este enfoque&lt;/div&gt;&lt;div&gt;&lt;a href="http://robkuijt.nl/index.php?entry=entry091220-074237"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Test&lt;/span&gt; Case &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Design&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Manually&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;or&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Automated&lt;/span&gt;?&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://robkuijt.nl/index.php?entry=entry091220-074237"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;img src="http://robkuijt.nl/images/cover_test_design2.gif" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 480px; height: 281px;" border="0" alt="" /&gt;&lt;/div&gt;&lt;div&gt;Los dos modelos que siempre tuvimos en mente fueron el modelo de máquinas de estado y el modelo de casos de uso/diagrama de flujo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;¿Cómo podemos utilizar este enfoque con &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;GXtest&lt;/span&gt;?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una opción es utilizar (como dice en el artículo) una herramienta como &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Ms&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Visio&lt;/span&gt; para modelar nuestra realidad. Este modelado podría ser por ejemplo con un diagrama de flujo en donde en las distintas interacciones con el sistema se utilicen nombres de casos de prueba realizados en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;GXtest&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego que tenemos el modelo listo, este puede ser utilizado por una herramienta para generar distintos casos de pruebas, basándose en algoritmos conocidos de generación (realizando recorridas sobre el modelo). Estos nuevos casos de prueba generados, pueden estar en un formato "compatible" con &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;GXtest&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me parece que este es un mecanismo interesante para mejorar el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;testing&lt;/span&gt; en las empresas, mejorando de esta forma el alcance y cubrimiento de nuestras pruebas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algunas preguntas para quienes leen el blog, ¿Con que herramientas realizan el modelo de la realidad y/o de los &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;requerimientos&lt;/span&gt;? ¿Ven factible aplicar algoritmos para la generación de casos de prueba a partir de estos modelos?&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-8901225833033083059?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/8901225833033083059/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=8901225833033083059' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/8901225833033083059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/8901225833033083059'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2010/01/automatizar-el-diseno-de-los-casos-de.html' title='Automatizar el diseño de los casos de prueba'/><author><name>MelliMatías</name><uri>http://www.blogger.com/profile/05589011792765234083</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11850391718833648583'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-3907567857828546507</id><published>2009-12-07T12:30:00.000-08:00</published><updated>2009-12-07T12:35:54.289-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>Seminario: Testing para Desarrolladores del CES</title><content type='html'>El &lt;a href="http://www.ces.com.uy/"&gt;Centro de Ensayos de Software&lt;/a&gt; dictará un seminario de testing enfocado a desarrolladores. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aquí está el resumen &lt;a href="http://www.ces.com.uy/seminarioDesarrolladores2009/seminarioDesarrolladores.htm"&gt;http://www.ces.com.uy/seminarioDesarrolladores2009/seminarioDesarrolladores.htm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;aquí tienen más información sobre el contenido &lt;a href="http://www.ces.com.uy/seminarioDesarrolladores2009/ContenidoSeminarioDesarrolladores.pdf"&gt;http://www.ces.com.uy/seminarioDesarrolladores2009/ContenidoSeminarioDesarrolladores.pdf&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Está enfocado más que nada a programación Java, pero los conceptos son bien aplicables en cualquier ambiente de trabajo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nos vemos por ahí :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-3907567857828546507?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/3907567857828546507/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=3907567857828546507' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/3907567857828546507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/3907567857828546507'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/12/seminario-testing-para-desarrolladores.html' title='Seminario: Testing para Desarrolladores del CES'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-4633605815280102393</id><published>2009-12-03T03:20:00.000-08:00</published><updated>2009-12-03T12:24:47.254-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>Automatización de acciones de un tester: archivos de entrada</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_b9m8jUDaKlw/R1BbzEybk3I/AAAAAAAAADE/vFoBAYfzbmY/s1600-R/automation.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 432px; height: 432px;" src="http://2.bp.blogspot.com/_b9m8jUDaKlw/R1BbzEybk3I/AAAAAAAAADE/vFoBAYfzbmY/s1600-R/automation.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;En los casos de prueba se puede dar la necesidad de invocar distintos tipos de acciones. Si intentamos automatizar lo que hace un tester ahi tenemos un amplio abanico, pues un tester al probar una funcionalidad suele necesitar copiar archivos, disparar distintos programas, comandos, etc., incluso hasta verificar si le llega un e-mail generado por el sistema.&lt;/p&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;Nos tocó un caso en un cliente, el cual tiene un sistema que a partir de un archivo que se copia por FTP a un directorio hace que se generen tareas en un Flow, por lo que en ese caso de prueba automatizado se necesita copiar archivos en esa carpeta.&lt;/p&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt; &lt;/p&gt;  &lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;La primer solución que pensamos para poder hacer esto en GXtest fue generar un GeneXus Procedure que genere ese archivo en esa carpeta, ya que GXtest puede invocar procedimientos GeneXus desde los casos de prueba, por lo que podríamos automatizar este caso particular.&lt;/p&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt; &lt;/p&gt;  &lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;Una mejor solución nos la sugirió &lt;a href="http://blogjlr.blogspot.com/"&gt;José&lt;/a&gt; y nos llevó a agregar un nuevo comando en GXtest el cual da mayor flexibilidad para otros tipos de situaciones. Un comando que pueda invocar un programa por línea de comandos. De esta forma en un caso de prueba automatizado se podría enviar el archivo por FTP tal como lo haría un tester o un usuario real.&lt;/p&gt;  &lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;Claro está, que esta solución resuelve otras situaciones como copiar archivos, ejecutar aplicaciones externas, etc.&lt;/p&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin:0in;font-family:arial;font-size:9.75pt;color:black"&gt;¿Para que otras cosas se les ocurre que puede servir?¿Se les ocurre algo más que no esté quedando contemplado?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-4633605815280102393?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/4633605815280102393/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=4633605815280102393' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/4633605815280102393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/4633605815280102393'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/12/automatizacion-de-acciones-de-un-tester.html' title='Automatización de acciones de un tester: archivos de entrada'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_b9m8jUDaKlw/R1BbzEybk3I/AAAAAAAAADE/vFoBAYfzbmY/s72-Rc/automation.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-6835930153954992103</id><published>2009-11-24T16:25:00.000-08:00</published><updated>2009-11-25T06:27:45.434-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><title type='text'>Automatización de "aplicaciones complejas"</title><content type='html'>&lt;div style="text-align: left;"&gt;En un par de charlas nos han preguntado, "¿Qué pasa con GXtest si mi aplicación se comunica con otras aplicaciones legadas mediante mecanismos complejos?", "¿Qué pasa si consume servicios Web expuestos en otros servidores?" "¿Qué pasa si mi aplicación tiene lógica muy compleja?"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://4.bp.blogspot.com/_7NSbjETmgUA/SwyAI56ebXI/AAAAAAAAD3s/83huQpZOpyY/s320/Sistemas+Complejos.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 225px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5407838143038516594" /&gt;&lt;div&gt;Imagen: a partir de un botón en la aplicación bajo pruebas se ejecuta una lógica compleja, hay comunicación con varias aplicaciones externas, y se dispara un cohete.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;GXtest tiene como objetivo reproducir la interacción del usuario con el sistema, por lo tanto estas complejidades son indiferentes para GXtest. Una vez que el usuario presiona un botón, la lógica que se ejecuta a partir de esa acción pude ser simple o compleja, pero "a la vista" de GXtest es transparente (tan transparente como a la vista del usuario). Tal como se muestra en la imagen, no importa si se dispara un cohete o lo que sea, lo que "importa" para automatizar es la interfaz de usuario en este caso.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ahora bien, hay veces que el caso de prueba requiere que se hagan otras acciones que no se pueden hacer en el navegador, por ejemplo consultar una base de datos, copiar archivos a un determinado lugar, etc. Para estas acciones GXtest (al igual que otras herramientas) brinda la posibilidad de realizarlas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Bonus track:&lt;/b&gt;&lt;br /&gt;&lt;div&gt;El hecho de que una aplicación compleja no agregue dificultades a GXtest no implica que no agregue dificultades al momento de pensar y diseñar las pruebas automatizadas.&lt;/div&gt;&lt;div&gt;Dos de los temas más importantes que se pueden destacar son la preparación de los datos y la simulación de los servicios externos que se consumen. En particular en el segundo punto hay veces que es interesante que realmente el sistema bajo testing se "conecte" al servicio externo y hay otras veces que es preferible simular este servicio. El artefacto que simula el servicio externo generalmente se lo llama &lt;i&gt;Mock Service&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;En el caso de que ese servicio sea un &lt;i&gt;web service&lt;/i&gt; les recomiendo la aplicación &lt;a href="http://www.soapui.org/"&gt;SoapUI&lt;/a&gt; que brinda una interfaz muy amigable para generar servicios Mock así como para testear servicios Web.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;¿Qué otras herramientas utilizan para sus pruebas (automatizadas o no)? ¿qué cosas requieren sus casos de prueba (FTP, Web Services)?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-6835930153954992103?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/6835930153954992103/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=6835930153954992103' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6835930153954992103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6835930153954992103'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/11/automatizacion-de-aplicaciones.html' title='Automatización de &quot;aplicaciones complejas&quot;'/><author><name>MelliMatías</name><uri>http://www.blogger.com/profile/05589011792765234083</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11850391718833648583'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7NSbjETmgUA/SwyAI56ebXI/AAAAAAAAD3s/83huQpZOpyY/s72-c/Sistemas+Complejos.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-4745970003774958668</id><published>2009-10-28T16:55:00.000-07:00</published><updated>2009-10-30T14:04:06.160-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eventos'/><title type='text'>GXtest por Uruguay y el mundo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_xDsTqyrVo3E/SutUkScv11I/AAAAAAAAAjQ/taRe7ovJ6T4/s1600-h/directions.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 256px;" src="http://2.bp.blogspot.com/_xDsTqyrVo3E/SutUkScv11I/AAAAAAAAAjQ/taRe7ovJ6T4/s400/directions.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398501560738109266" /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Con el fin de difundir GXtest, encaminamos una &lt;a href="http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,7,3,O,S,0,PAG;CONC;348;21;D;24063;1;PAG;,"&gt;serie de presentaciones&lt;/a&gt; en distintos lugares. Aca les dejamos un resumen de las que ya ocurrieron y las que vienen...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;México&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blog.genexus.com/ralvarez/"&gt;Rodrigo Alvarez&lt;/a&gt; fue el primero (aparte de nosotros :P) en realizar una presentación de GXtest con demo incluída. Estuvo mostrando el producto a los distribuidores de ese país y vino con comentarios muy buenos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Buenos Aires, Argentina&lt;/b&gt;&lt;/div&gt;&lt;div&gt;De la mano de &lt;a href="http://www.toolnology.com/"&gt;Toolnology&lt;/a&gt; y Artech, presentamos el 21 y 22 de octubre GXtest en Buenos Aires. La verdad estuvo muy bueno ya que tuvimos la oportunidad de conocer mejor las inquietudes en el área de testing  en el país vecino y nos fuimos muy contentos ya que la gran mayoría visualizaba a GXtest como una ayuda en su proceso de testing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Montevideo, Uruguay&lt;/b&gt;&lt;/div&gt;&lt;div&gt;El 27 y 28 de octubre junto con Artech estuvimos presentando el producto acá en Montevideo. Asistieron una gran cantidad de empresas (según algún amigo de Artech eso fue porque en la invitación pusimos que había desayuno :P). Más allá de porque fue la gente, en general se mostraron muy interesados por el producto y con ganas de empezar a evaluarlo para ver como se adapta a sus realidades.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Chicago, Estados Unidos&lt;/b&gt;&lt;/div&gt;&lt;div&gt;El Fede estará mostrando el producto en el &lt;a href="http://www.genexususa.com/portal/hgxpp001.aspx?19,77,1146,"&gt;Genexus 5th USA Annual Event&lt;/a&gt; el 2 y 3 de Noviembre.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Chile&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Ayer Rodrigo presentó GXtest en el Evento Chileno. Esperamos los comentarios del mismo...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Paraguay&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Fabián estará viajando el próximo martes 3 a Asunción para presentar el producto en las instalaciones de SISA.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Brasil&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Sao Paulo nos espera el 2 y 3 de diciembre para presentar GXtest a Corporativas y software houses.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Además el 17 y 18 de noviembre en el Latu estaremos brindando un curso de GXtest para que las empresas lo puedan conocer más en profundidad.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-4745970003774958668?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/4745970003774958668/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=4745970003774958668' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/4745970003774958668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/4745970003774958668'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/10/gxtest-por-uruguay-y-el-mundo.html' title='GXtest por Uruguay y el mundo'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xDsTqyrVo3E/SutUkScv11I/AAAAAAAAAjQ/taRe7ovJ6T4/s72-c/directions.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-146437186645729784</id><published>2009-09-03T15:41:00.000-07:00</published><updated>2009-09-04T09:53:32.057-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Eventos'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Genexus'/><title type='text'>Abstracta en el XIX Encuentro Internacional GeneXus</title><content type='html'>&lt;span style="font-family:georgia;"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 240px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5377630003416356482" border="0" alt="" src="http://4.bp.blogspot.com/_xDsTqyrVo3E/SqEt_wcdVoI/AAAAAAAAAhk/06abYGHX99A/s320/800x600.jpg" /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="BORDER-COLLAPSE: collapse;font-family:georgia;font-size:medium;" class="Apple-style-span"  &gt;&lt;div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;Estamos muy contentos de invitarlos al &lt;span style="BORDER-COLLAPSE: separate; WHITE-SPACE: pre" class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;XIX Encuentro Internacional GeneXus!!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;font-size:100%;"&gt;Como saben, este mes en el encuentro de usuarios liberamos la versión comercial de GXtest, y nos alegramos en invitarlos a todos al encuentro en general y a las instancias que estaremos participando en particular.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;font-size:100%;"&gt;Abstracta estará participando en las siguientes instancias&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:georgia;font-size:100%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.events.genexus.com/portal/hgxpp001.aspx?16,67,1134,O,S,0,,1771"&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;font-size:100%;"&gt;GeneXus en el desarrollo, GXtest en el testing&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;font-size:100%;"&gt;: presentaremos la primer versión comercial de GXtest. &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:georgia;font-size:100%;"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 200px; DISPLAY: block; HEIGHT: 66px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5377631339046332146" border="0" alt="" src="http://3.bp.blogspot.com/_xDsTqyrVo3E/SqEvNgDdZvI/AAAAAAAAAh0/Igwsyv7IkJw/s200/logo_gxtest_final.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://www.events.genexus.com/portal/hgxpp001.aspx?16,67,1134,O,S,0,,1768"&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;font-size:100%;"&gt;Testing Automatizado: ¡Hagamos que las máquinas trabajen por nosotros!&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;font-size:100%;"&gt;: estaremos compartiendo nuestra experiencia en automatización de pruebas funcionales, y todos los desafíos que involucra embarcarse en estas tareas.&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:georgia;font-size:100%;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://www.events.genexus.com/portal/hgxpp001.aspx?16,67,1134,O,S,0,,1743"&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;font-size:100%;"&gt;Café con Testing Automatizado&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"&gt;: junto al &lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://www.ces.com.uy/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;CES&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; y todos los participantes estaremos charlando sobre el testing automatizado. La idea es tener un ámbito distendido en donde puedan discutirse temas relacionados al testing automatizado.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:georgia;font-size:100%;"&gt;Los esperamos a todos en el XIX Encuentro Genexus!!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;"&gt;Inscribite en &lt;span class="Apple-style-span"&gt;&lt;a href="http://www.genexus.com/encuentro/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;http://www.genexus.com/encuentro/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-146437186645729784?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/146437186645729784/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=146437186645729784' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/146437186645729784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/146437186645729784'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/09/abstracta-en-el-xix-encuentro.html' title='Abstracta en el XIX Encuentro Internacional GeneXus'/><author><name>MelliMatías</name><uri>http://www.blogger.com/profile/05589011792765234083</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11850391718833648583'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xDsTqyrVo3E/SqEt_wcdVoI/AAAAAAAAAhk/06abYGHX99A/s72-c/800x600.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-5667812940297821637</id><published>2009-08-31T08:44:00.000-07:00</published><updated>2009-08-31T11:13:03.050-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>¿Quién crea los casos de prueba?</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;Para seguir con la serie de articulos sobre preguntas del testing automatizado, es que aquí planteamos esta, ¿Quién es el que crea los casos de prueba?&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Algunos casos de prueba los puede crear el desarrollador, otros los testers y otros los clientes.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Los casos de prueba pueden ser creados, ejecutados, aprovechados, por muchas personas dentro de la vida del software. Con esto me refiero a que se van a ver beneficiados desde los desarrolladores al construir el primer prototipo, hasta el último de la cadena de producción que es el usuario que va a utilizar el sistema.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Cada una de las personas que participan podrán tener distintos objetivos y desafíos, podrán obtener distintas ventajas o beneficios de la automatización de pruebas.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_C6WXtbAB2qc/SoXzDhOCwKI/AAAAAAAAJU4/dAdxw7QiufQ/s320/objetivos+testing.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 258px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5369965372491612322" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Desarrollador:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Seguramente un desarrollador que implemente el Objeto1 (transacción o WebPanel), o el Proc1, implementará pruebas que exploten a ese objeto en forma más unitaria, probando con casos bien concretos, viendo qué pasa con las distintas entradas.&lt;/div&gt;&lt;div&gt;Los casos de prueba serán cortos y generalmente no utilizarán otros objetos a menos que sea necesario.&lt;/div&gt;&lt;div&gt;Por lo general también sucede de que al ser la misma persona que desarrolla, las pruebas estarán pensadas con una lógica similar a la que se usó al desarrollar. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Tester:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;El tester ya tendrá más vision global, vision de negocio, por lo que será capaz de probar las funcionalidades en un ciclo completo.&lt;/div&gt;&lt;div&gt;Los casos de prueba serán más largos y complicados, buscando las formas posibles de evidenciar las faltas más importantes de la aplicación.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Usuario:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;El aporte más rico del usuario es que sabe priorizar mejor que nadie las funcionalidades críticas para su negocio, con la parametría propia de su realidad, y con el modo de uso que le da al sistema.&lt;/div&gt;&lt;div&gt;Los casos de prueba serán pensando en sus necesidades y no en las fortalezas o debilidades de la aplicación. Le interesa que funcione lo que a él le da más valor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como conclusión podemos decir que la mezcla de todas estas visiones es la que genera un verdadero mix saborizado de pruebas. Sería ideal contar con aportes desde todos estos lados a la batería de pruebas a ejecutar.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;¿Quiénes hacen pruebas en sus organizaciones?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-5667812940297821637?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/5667812940297821637/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=5667812940297821637' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/5667812940297821637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/5667812940297821637'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/08/quien-crea-los-casos-de-prueba.html' title='¿Quién crea los casos de prueba?'/><author><name>MelliMatías</name><uri>http://www.blogger.com/profile/05589011792765234083</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11850391718833648583'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C6WXtbAB2qc/SoXzDhOCwKI/AAAAAAAAJU4/dAdxw7QiufQ/s72-c/objetivos+testing.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-6769893019696989447</id><published>2009-08-11T06:00:00.000-07:00</published><updated>2009-08-11T08:51:20.921-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>Cómo elegir cuando ejecutar los casos de prueba?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7NSbjETmgUA/SoGTaTdWJAI/AAAAAAAAD14/SkQn_MRDTm4/s1600-h/flujo+trabajo.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 217px;" src="http://3.bp.blogspot.com/_7NSbjETmgUA/SoGTaTdWJAI/AAAAAAAAD14/SkQn_MRDTm4/s320/flujo+trabajo.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5368734310911583234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otra de las preguntas que surge al llevar a cabo un proyecto de automtización de pruebas es &lt;i&gt;en qué momento ejecuto las pruebas?&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo primero que uno piensa es &lt;i&gt;tan frecuente como se pueda&lt;/i&gt;, sin embargo, los recursos son escasos y dependiendo de la cantidad de pruebas automatizadas el tiempo que se demore en ejecutar puede ser muy largo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Generalmente se puede apuntar a tener algunos ambientes bien separados. A modo de ejemplo simple: &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;el de desarrollo (cada desarrollador)&lt;/li&gt;&lt;li&gt;el consolidado de desarrollo&lt;/li&gt;&lt;li&gt;el de testing (dentro del equipo de desarrollo)&lt;/li&gt;&lt;li&gt;el de pre-producción (testing dentro del cliente) &lt;/li&gt;&lt;li&gt;el de producción. &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;El conjunto de pruebas y la frecuencia de las mismas en cada uno de estos ambientes seguramente sea diferente.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En desarrollo se tiene la neceidad de mayor agilidad, ya que se van a querer correr con mucha frecuencia, imagino que después de cada cambio importante, antes de hacer un &lt;i&gt;commit &lt;/i&gt;en el sistema "SVN" o "CVS" o equivalente. &lt;/div&gt;&lt;div&gt;Ahora para eso sería muy conveniente correr solamente las pruebas necesarias (&lt;a href="http://abstracta-soft.blogspot.com/2009/08/como-elegir-que-ejecutar.html"&gt;mirar el post anterior&lt;/a&gt;). Estas pruebas tienen el fin de darle un feedback rápido al desarrollador.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una vez que el desarrollador libera su módulo o cambios a la consolidación, se ejecutarían pruebas a modo de Pruebas de Integración. Acá lo ideal sería que corran en las noches así de mañana cuando llegan los desarrolladores tienen una lista de posibles asuntos a solucionar, y que tengan un feedback de los cambios que introdujeron ayer. Mientras menos tiempo pase más rápido lo van a solucionar. Esto permitiría no pasar a testing cosas que no funcionen. Serían como pruebas de humo en cierta forma.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego cuando se pasa la aplicación a testing, se debería correr un conjunto más grande de pruebas de regresión que intenten asegurar que los errores que se han reportado y se han marcado como solucionados no están presentes en esta nueva versión. Este conjunto de pruebas puede tardar más tiempo en correr. Estas pruebas no tienen porque ser periódicas sino que pueden adecuarse al cronograma del proyecto con las fechas previstas de liberación.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cuando se llega a la versión entregable de la aplicación (aprobada por el equipo de testing), la misma se libera al cliente. Este por lo general la testea también en un ambiente de pre-producción, el cual debería ser totalmente simétrico en configuración al de producción (esta es la diferencia con el ambiente de testing del equipo de desarrollo). Aquí también aporta valor tener un conjunto de pruebas automatizadas. &lt;/div&gt;&lt;div&gt;Este conjunto de pruebas podría ser como mínimo el que se corrió en testing, e incluso se le podría entregar al cliente el conjunto de casos de prueba automatizados junto con la aplicación liberada, ya que le da mayor seguridad y confianza al cliente el saber que se testeó antes de su liberación.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como manejan las pruebas hoy en día? que ambientes manejan? &lt;/div&gt;&lt;div&gt;Algunas de estas ideas aplican ya sea que se tengan pruebas automatizadas o no?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-6769893019696989447?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/6769893019696989447/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=6769893019696989447' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6769893019696989447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6769893019696989447'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/08/como-elegir-cuando-ejecutar-los-casos.html' title='Cómo elegir cuando ejecutar los casos de prueba?'/><author><name>MelliMatías</name><uri>http://www.blogger.com/profile/05589011792765234083</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11850391718833648583'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7NSbjETmgUA/SoGTaTdWJAI/AAAAAAAAD14/SkQn_MRDTm4/s72-c/flujo+trabajo.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-3597284178812084702</id><published>2009-08-07T10:52:00.000-07:00</published><updated>2009-08-10T06:47:34.292-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>Cómo elegir qué ejecutar?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7NSbjETmgUA/SoAZsFMAdQI/AAAAAAAAD1o/hx5mVzkgTdY/s1600-h/Test_1205948884.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 213px;" src="http://3.bp.blogspot.com/_7NSbjETmgUA/SoAZsFMAdQI/AAAAAAAAD1o/hx5mVzkgTdY/s320/Test_1205948884.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5368319000923108610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Esto es un problema que se plantea al momento de tener muchos casos de prueba automatizados. Cambia la aplicación y tengo que decidir qué casos de prueba ejecutar.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si tengo tiempo la respuesta es simple: TODOS. Esto me dará más garantías, y no me cuesta más que mandar a ejecutar una prueba.&lt;/div&gt;&lt;div&gt;Ahora, qué pasa si no tengo tiempo suficiente. Ahí es donde tengo que seleccionar los casos de prueba que me den mejor relación costo-beneficio, o sea, aquellos que verifiquen todo lo que pueda estar impactado por los nuevos cambios en la aplicación. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cambiamos entonces a una nueva pregunta: ¿cómo saber qué casos de prueba verifican cosas sobre los nuevos cambios ingresados a la aplicación?&lt;/div&gt;&lt;div&gt;Este problema lo entendemos a dos niveles. Un primer nivel, y es el que parece más obvio, si cambian los objetos de interfaz de usuario los casos de prueba automatizados se verán impactados, y ahí se detecta fácilmente cuáles son los que tengo que volver a ejecutar.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ahora, lo más desafiante es poder extender este análisis para que contemple también en base a cambios de la lógica.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si tenemos la metadata suficiente para detectar esos cambios a nivel de lógica luego se puede a partir de esto ir subiendo hasta ver qué elementos de interfaz gráfica están involucrados en los cambios, y así descubrir los casos de prueba que me vale la pena volver a ejecutar, o al menos llegar a establecer cotas, dejando por fuera los que no tienen posibilidad de haber sido afectados.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Palabras tomadas de un colega:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;La tendencia en integración continua es que la selección de Test Case sea guiada, ya que en aplicaciones grandes no daría el tiempo de horas máquina para simular de forma secuencial todos los TestCase automatizados.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una propuesta de solución a este problema va a venir incluida en el nuevo &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;Visual Studio 2010&lt;/a&gt;. En un componente llamado Test Impact, les dejo un par de links: &lt;a href="http://msdn.microsoft.com/en-us/library/dd264992(VS.100).aspx"&gt;link1 &lt;/a&gt;y &lt;a href="http://www.lfraile.net/post/Como-funcionan-los-e2809cImpacted-Testse2809d-de-VS-2010.aspx"&gt;link2&lt;/a&gt;. En pocas palabras lo que hacen es correr los casos de prueba fijándose el cubrimiento que los mismos tienen y luego en base a esto proponer qué casos de prueba ejecutar ante cada cambio. Ahora, ¿qué pasa con esto si no hay cambios en el código sino que el cambio está en el esquema de la BD o en los datos de la BD?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;¿Cómo seleccionan los casos de prueba a ejecutar ante cada nueva release?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-3597284178812084702?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/3597284178812084702/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=3597284178812084702' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/3597284178812084702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/3597284178812084702'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/08/como-elegir-que-ejecutar.html' title='Cómo elegir qué ejecutar?'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7NSbjETmgUA/SoAZsFMAdQI/AAAAAAAAD1o/hx5mVzkgTdY/s72-c/Test_1205948884.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-1334439882543094663</id><published>2009-08-05T10:08:00.000-07:00</published><updated>2009-08-05T09:39:15.705-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Genexus'/><title type='text'>PIM y PSM en el Testing</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style=" border-collapse: collapse;  "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Estos días estuve  leyendo el artículo de Bea (pueden encontrar una breve descripción en la página del &lt;/span&gt;&lt;a href="http://www.ces.com.uy/imasd.htm"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;CES&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; (dentro de &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Proyectos de Investigación/Pruebas en Líneas de Producto de Software (ProTest)&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;) , y ahí recordé algo que aplica a Genexus, que es lo de &lt;/span&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-independent_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;P&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-independent_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;latform &lt;/span&gt;&lt;/a&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-independent_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-independent_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;ndependient &lt;/span&gt;&lt;/a&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-independent_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;M&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-independent_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;odel&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; y &lt;/span&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-specific_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;P&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-specific_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;latform &lt;/span&gt;&lt;/a&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-specific_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;S&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-specific_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;pecific &lt;/span&gt;&lt;/a&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-specific_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;M&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;a href="http://en.wikipedia.org/wiki/Platform-specific_model"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;odel&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" border-collapse: collapse;  "&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://4.bp.blogspot.com/_C6WXtbAB2qc/SnmkLl0S6sI/AAAAAAAAJUo/Pkjva6GBJcs/s320/PIM_PSM_Modelling.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 197px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5366500950025628354" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;O sea, en el mundo GeneXus, la KB sería el PIM y la aplicación generada el PSM.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" border-collapse: collapse;  "&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;En nuestro caso, vemos que GXtest es una herramienta que maneja modelos PIM, y tiene las ventajas típicas de estos modelos en comparación a las herramientas tradicionales que se acercan más a un PSM, pues van directo al HTML del Java generado, o del .Net generado.&lt;br /&gt;&lt;br /&gt;Además fui a una &lt;/span&gt;&lt;a href="http://www.cuti.org.uy/asp/XMLDetalle.asp?ID=3488&amp;amp;OP=0"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;charla&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; de un amigo español (&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: separate;  color: rgb(113, 113, 116); "&gt;&lt;a href="http://alarcos.inf-cr.uclm.es/per/fruiz/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Dr. Ruiz&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);   border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;) la cual me resutló muy interesante como para profundizar el tema.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Algo que nos preguntábamos es si en alguna forma GeneXus se puede definir como un Lenguaje especifico de Dominio? Cual sería el dominio en ese caso? Qué opinan?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" border-collapse: collapse;  font-family:arial;font-size:13px;"&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-1334439882543094663?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/1334439882543094663/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=1334439882543094663' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/1334439882543094663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/1334439882543094663'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/07/pim-y-psm-en-el-testing.html' title='PIM y PSM en el Testing'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C6WXtbAB2qc/SnmkLl0S6sI/AAAAAAAAJUo/Pkjva6GBJcs/s72-c/PIM_PSM_Modelling.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-3217494318495611489</id><published>2009-08-03T08:30:00.000-07:00</published><updated>2009-08-03T08:59:18.981-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>Mantenimiento de Pruebas de distintas Versiones de la misma KB</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://erdgeist.org/arts/software/ezjail/ezjail-versions.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 397px; height: 295px;" border="0" alt="" /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;Supongamos que hoy tengo una versión de la aplicación &lt;i&gt;Carrito.v.1&lt;/i&gt;. Todos los casos de prueba funcionan sobre esa versión. Tal vez esa versión de&lt;i&gt; Carrito.v.1&lt;/i&gt; está congelada e instalada en un par de  clientes. &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Ahora bien, supongamos también que sigo desarrollando y se produce una nueva versión que le llamaremos&lt;i&gt; Carrito.v.2&lt;/i&gt;. Es probable que hayan cambiado algunas funcionalidades, se hayan agregado una nuevas, etc. Entonces es importante actualizar todos los casos de prueba (ya sean manuales o automáticos) para que se adapten a esta nueva versión. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Cómo manejan ustedes esto hoy en día? Una opción es tener dentro de la "línea base", con un tag del SVN o en algún lugar separado, no sólo las distintas versiones de la KB (u código), sino también las distintas versiones de los casos de prueba, no?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Luego cuando el cliente de &lt;i&gt;Carrito.v.1&lt;/i&gt; reporta un error hay que ir a arreglarlo a&lt;i&gt; Carrito.v.1&lt;/i&gt; y fijarse si ese bug aplica también a &lt;i&gt;Carrito.v.2&lt;/i&gt;. Luego hay que correr los casos de prueba de regresión de ambas versiones. Y si luego tengo &lt;i&gt;Carrito.v.N&lt;/i&gt;, cómo hago para correr los casos de prueba asociados a las N versiones??&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://1.bp.blogspot.com/_C6WXtbAB2qc/Snb8Z-sJwhI/AAAAAAAAJUg/Wy_2Lhq3fqU/s320/Dibujo.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 285px; height: 314px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5365753529313640978" /&gt;Pensando en esta problemática GXtest ofrece hoy en día dos facilidades. Por un lado una funcionalidad para impactar los casos de pureba automatizados con la nueva versión de la aplicación (KB). Por otro lado lo que permite es duplicar todo un proyecto de pruebas (casos de prueba, datos de prueba, etc.) a modo de "Taggearlo" para que de esa manera pueda conservar los casos de prueba en distintas versiones del producto. Entonces se puede ejecutar pruebas actualizadas sobre la última versión del producto, pero interesa que si se hacen cambios sobre la versión del cliente aún se puedan correr las pruebas de regresión sobre esa versión previa congelada.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Resumiendo. La infraestructura final de pruebas contará con N instancias de la aplicación bajo prueba, una para cada versión que interese correr pruebas de regresión. Por otro lado tendremos N proyectos de prueba en GXtest con los distintos casos de prueba, cada uno correspondiéndose con las versiones de la aplicación.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" border-collapse: collapse;  font-family:arial;font-size:13px;"&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-3217494318495611489?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/3217494318495611489/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=3217494318495611489' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/3217494318495611489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/3217494318495611489'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/08/mantenimiento-de-pruebas-de-distintas.html' title='Mantenimiento de Pruebas de distintas Versiones de la misma KB'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_C6WXtbAB2qc/Snb8Z-sJwhI/AAAAAAAAJUg/Wy_2Lhq3fqU/s72-c/Dibujo.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-4901855595279521004</id><published>2009-07-28T05:48:00.000-07:00</published><updated>2009-08-01T08:27:51.712-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eventos'/><title type='text'>Se Busca una idea original!!</title><content type='html'>&lt;div style="text-align: left;"&gt;Estamos buscando una idea original para promocionar GXtest en el evento GeneXus. Por ese motivo y con plena confianza en quienes leen este blog, es que lanzamos el concurso de "Ideas Originales para Promocionar GXtest en el Evento GeneXus".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;img src="http://3.bp.blogspot.com/_EwFKY3lwcqs/SYn_cli5dqI/AAAAAAAAA1Q/dmG7LOsGPKA/s400/Se+busca.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" border="0" alt="" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cualquier lector en cualquier parte del mundo puede participar del concurso dejando su comentario en este post  (si Simon, estamos pensando en vos también que sabemos que te sobran ideas originales :P).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El objetivo de la idea original debe ser lograr que la gente conozca GXtest y sepa para qué los puede ayudar. Cualquier tipo de juego, concurso o lo que se les ocurra sirve.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La semana pasada surgió una idea muy buena, pero por lástima solamente a mi me pareció grandiosa. La idea consiste en mandar a hacer unos matamoscas inflables (con el logo de GXtest). La idea entonces era regalar estos matamoscas y que la gente luego pueda matar bichos (Bugs) con el super matamoscas. &lt;/div&gt;&lt;div&gt;Luego se le sumaron otros complementos a la idea como por ejemplo regalar también punteros láser en forma de bicho. Uno de las objeciones a la brillante idea es que la gente va a ir a otras charlas y va a ocasionar disturbios para los cuales se presta tanto el puntero láser como el matamoscas :P&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Se agradecen todas las colaboraciones!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PD: las mejores 5 ideas llevarán como premio una mención y agradecimiento especial en el blog de Abstracta :D&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-4901855595279521004?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/4901855595279521004/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=4901855595279521004' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/4901855595279521004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/4901855595279521004'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/07/se-busca-una-idea-original.html' title='Se Busca una idea original!!'/><author><name>MelliMatías</name><uri>http://www.blogger.com/profile/05589011792765234083</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11850391718833648583'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EwFKY3lwcqs/SYn_cli5dqI/AAAAAAAAA1Q/dmG7LOsGPKA/s72-c/Se+busca.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-6655709766694405746</id><published>2009-07-27T04:30:00.000-07:00</published><updated>2009-07-27T13:41:12.386-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><title type='text'>DataPools</title><content type='html'>Los DataPools (en donde se guardan los datos de entrada de los casos de prueba) le dan un gran poder a los casos de prueba, pero cuando empezamos a construir casos de pruebas relativamente grandes nos hace falta ese "poder" que sentimos los desarrolladores al escribir sentencias tales como JOIN (en SQL),  foreach (en Genexus) y otros, para manipular datos en estructuras tabulares.&lt;div&gt;En un lenguaje "gráfico", o en un modelo, es más difícil expresar este tipo de realciones en forma simple para el usuario. De todos modos la necesidad existe, y muchas veces queremos "mantener el contexto" del conjunto de datos que estamos utilizando en cada ejecución.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para esto construimos un mecanismo que le llamamos "DataPools estructurados".&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C6WXtbAB2qc/Sm4Qf0ji4kI/AAAAAAAAJT8/ejitjQCANEk/s1600-h/knot-structured-1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 302px;" src="http://2.bp.blogspot.com/_C6WXtbAB2qc/Sm4Qf0ji4kI/AAAAAAAAJT8/ejitjQCANEk/s320/knot-structured-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5363242345114559042" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Aquí están las diapositivas que intentan explicar el funcionamiento de DataPools:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_1745250"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/guest7f6eaae/gxtest-datapools-estructurados" title="GXtest - DataPools Estructurados"&gt;GXtest - DataPools Estructurados&lt;/a&gt;&lt;object style="margin: 0px;" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=dpoolsanim-090720152626-phpapp02&amp;amp;stripped_title=gxtest-datapools-estructurados"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=dpoolsanim-090720152626-phpapp02&amp;amp;stripped_title=gxtest-datapools-estructurados" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/guest7f6eaae"&gt;guest7f6eaae&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Necesitábamos brindar un mecanismo lo más intuitivo para el tester. En general, cuando un tester construye un caso de prueba, piensa por un lado las acciones que se tienen que ejecutar en la aplicación, y por otro lado varios conjuntos de datos para utilizar en esas acciones. &lt;/div&gt;&lt;div&gt;Por ejemplo, para un caso de prueba de "alta de países", nos puede interesar primero probar con el conjunto de datos &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;, que referido a Uruguay, con los departamenteos Salto, Paysandú y Montevideo, etc., y luego el conjunto de datos &lt;span style="font-weight: bold;"&gt;2&lt;/span&gt; para Argentina, con las provincias de Río Negro, Corrientes y Santa Fe.&lt;/div&gt;&lt;div&gt;Eso es lo que intenta expresar cada "Set Id": todos los datos, en los distintos datapools, se agrupan por el identificador de conjunto de dato.&lt;br /&gt;Es similar a cuando uno piensa los datos de prueba para cada caso. Se agrupan, se definen e identifican.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;¿Se entendió la idea? Se aceptan sugerencias!!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-6655709766694405746?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/6655709766694405746/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=6655709766694405746' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6655709766694405746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6655709766694405746'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/07/datapools.html' title='DataPools'/><author><name>Colorator</name><uri>http://www.blogger.com/profile/10472624645567678175</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07760541951603282103'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_C6WXtbAB2qc/Sm4Qf0ji4kI/AAAAAAAAJT8/ejitjQCANEk/s72-c/knot-structured-1.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-6476797328313743433</id><published>2009-07-24T06:10:00.000-07:00</published><updated>2009-07-24T10:08:22.840-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><title type='text'>Composición de Comandos</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;El amigo &lt;a href="http://blog.marcoscrispino.com/"&gt;Marcos&lt;/a&gt;  nos sugirió una idea que está muy interesante: dar la posibilidad al usuario de componer comandos.&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_7NSbjETmgUA/Smm12MZ5FmI/AAAAAAAAD1A/cxnOJKxuRhQ/s320/cadena_conductoras_intermediarias_detalle.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5362016774008673890" /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Como sería esto? Por ejemplo si siempre para hacer &lt;i&gt;login&lt;/i&gt; en mi aplicación ingreso dos campos (usuario y password) y luego presiono el boton de &lt;i&gt;ingresar&lt;/i&gt;, sería deseable poder llamarle a esas tres acciones &lt;i&gt;Login&lt;/i&gt; y utilizarlas donde quiera como un comando común.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://2.bp.blogspot.com/_C6WXtbAB2qc/SmnpAXzBvjI/AAAAAAAAJT0/kzBxPeG5ubM/s320/Dibujo.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 116px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5362073023958597170" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hoy en día, si quiero hacer esto, lo más práctico es hacer un caso de prueba similar al de la figura, llamado &lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;login,&lt;/span&gt;&lt;/i&gt; &lt;/b&gt;que haga estas tres acciones y luego incluirlo en el caso de prueba que desee (en la imagen las acciones estarían asociadas a la arista &lt;i&gt;login&lt;/i&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La ventaja que tiene poder componer comandos (aparte de la puerta que abre para crear cosas bastante sofisticadas) es la posibilidad de dejar más compactos los casos de prueba sin necesidad de tener que incluir casos de prueba para representar acciones comunes en la aplicación.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Formalizando un poco el planteo, el requerimiento sería poder definir nuevos comandos (esto implica nombre y tipo de comando -evento, accion o validación-) el cual recibe una lista de &lt;i&gt;N &lt;/i&gt;parámetros, los cuales se mapean a una lista de&lt;i&gt; M&lt;/i&gt; comandos. Los parametros de los &lt;i&gt;M&lt;/i&gt; comandos podrán ser parte de los &lt;i&gt;N &lt;/i&gt;de entrada o simplemente tener valores fijos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Que les parece la idea? A nosotros nos pareció muy interesante y ya la anotmos en la &lt;a href="http://wiki.abstracta.com.uy/"&gt;wiki &lt;/a&gt;de Abstracta para implementarla más adelante.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Se aceptan sugerencias.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-6476797328313743433?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/6476797328313743433/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=6476797328313743433' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6476797328313743433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/6476797328313743433'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/07/composicion-de-comandos.html' title='Composición de Comandos'/><author><name>MelliMatías</name><uri>http://www.blogger.com/profile/05589011792765234083</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11850391718833648583'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7NSbjETmgUA/Smm12MZ5FmI/AAAAAAAAD1A/cxnOJKxuRhQ/s72-c/cadena_conductoras_intermediarias_detalle.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-4857123473369268977</id><published>2009-07-23T07:10:00.000-07:00</published><updated>2009-07-23T08:15:08.698-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emprendiendo en Uruguay'/><category scheme='http://www.blogger.com/atom/ns#' term='Historia'/><title type='text'>Nuevo socio de la CUTI: Abstracta</title><content type='html'>&lt;div&gt;Abstracta es ahora &lt;a href="http://www.cuti.org.uy/Default.aspx?tabid=134"&gt;socio de la CUTI&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7NSbjETmgUA/SmhxtbwfxoI/AAAAAAAAD04/Qlf8NQnMnyM/s1600-h/Cuti-nuevos+socios.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 226px;" src="http://3.bp.blogspot.com/_7NSbjETmgUA/SmhxtbwfxoI/AAAAAAAAD04/Qlf8NQnMnyM/s320/Cuti-nuevos+socios.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5361660381743793794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nos hicimos socios aprovechando un nuevo programa que tiene la CUTI para emprendimientos nuevos. La CUTI en conjunto con varios actores de gran peso están apoyando de diversas maneras los emprendimientos en Uruguay. Esto es muy bueno para todos, no solo para los emprendedores sino también para todo Uruguay. Esperemos en unos años ver el fruto de toda esta movida.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La CUTI además de brindar una lista extensa de &lt;a href="http://www.cuti.org.uy/Default.aspx?tabid=232"&gt;servicios&lt;/a&gt; a los socios, nos permite contar con un apoyo importante a la hora de salir a vender nuestro producto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otros beneficios importantes son: el pertenecer al programa Bizpark de Microsoft, del que hablamos hace un tiempo en &lt;a href="http://abstracta-soft.blogspot.com/2008/11/microsoft-lanza-bizspark-para-startups.html"&gt;este post&lt;/a&gt;, y también &lt;a href="http://www.fengoffice.com/"&gt;FengOffice&lt;/a&gt; gratis por 3 años!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Habrá que sacarle jugo a todas estas cosas!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-4857123473369268977?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/4857123473369268977/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=4857123473369268977' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/4857123473369268977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/4857123473369268977'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/07/nuevo-socio-de-la-cuti-abstracta.html' title='Nuevo socio de la CUTI: Abstracta'/><author><name>MelliMatías</name><uri>http://www.blogger.com/profile/05589011792765234083</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11850391718833648583'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7NSbjETmgUA/SmhxtbwfxoI/AAAAAAAAD04/Qlf8NQnMnyM/s72-c/Cuti-nuevos+socios.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-2494455989693259556</id><published>2009-07-13T21:00:00.000-07:00</published><updated>2009-07-20T10:38:06.353-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Historia'/><title type='text'>Nuevas Oficinas (II)</title><content type='html'>&lt;div style="text-align: left;"&gt;El título de este post no significa que ya nos mudamos de nuevo! sino que tenemos noticias con respecto a lo que propusimos en &lt;a href="http://abstracta-soft.blogspot.com/2009/04/nuevas-oficinas.html"&gt;"Nuevas Oficinas"&lt;/a&gt;.  A partir del mes de julio tenemos &lt;i&gt;roomates&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Se trata de algo que no nos imaginamos en un comienzo. Nosotros buscábamos una pequeña empresa que esté en la misma que nosotros. No es exactamente así, los que se vienieron al apto son tres freelancers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bienvenidos Nacho, Gerva y Nando!&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_C6WXtbAB2qc/SlvMRLhwclI/AAAAAAAAJTs/Lazk43YtdwQ/s320/grin432l.jpg" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 248px; height: 320px;" alt="" id="BLOGGER_PHOTO_ID_5358100777211556434" border="0" /&gt;&lt;/div&gt;&lt;div&gt;De todos modos estamos con la ambisión de conseguir algún otro interesado, ... el apto es grande y se presta para más! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;De paso aprovechamos y nos pusimos a pintar :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/_C6WXtbAB2qc/SlvLaNBdGZI/AAAAAAAAJTk/fbgm9AU2FW0/s320/pintando_Torre_Patria.jpg" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" alt="" id="BLOGGER_PHOTO_ID_5358099832720136594" border="0" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-2494455989693259556?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/2494455989693259556/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=2494455989693259556' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/2494455989693259556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/2494455989693259556'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/06/nuevas-oficinas-ii.html' title='Nuevas Oficinas (II)'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_C6WXtbAB2qc/SlvMRLhwclI/AAAAAAAAJTs/Lazk43YtdwQ/s72-c/grin432l.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-8191721802364765812</id><published>2009-07-07T14:46:00.000-07:00</published><updated>2009-07-07T14:03:01.590-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Metodología'/><title type='text'>Test cases resistentes a parametrizaciones</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Problema:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Tengo un Test Case para el caso de uso de "Alta de producto". Este caso de prueba debe funcionar y testear correctamente el caso de uso para cada una de las parametrizaciones deseadas. &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esto significa, hacer un Test Case que sea resistente a las parametrizaciones. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_xDsTqyrVo3E/SlNUr-XX6GI/AAAAAAAAAhE/lFQMt_lq6z8/s400/3522364923_7f37715eac.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5355717496325793890" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En las aplicaciones desarrolladas con GeneXus es muy típico que se permitan muchos tipos de parametrizaciones, y esto trae asociado ciertas complicaciones: las respuestas esperadas válidas varían según cómo esté parametrizada la aplicación, incluso el flujo a recorrer. Esto implica que al modelar un Test Case se tengan que agregar bifurcaciones en el flujo, las cuales se guíen por decisiones basadas en los valores de estas parametrizaciones. El tema es que hay que ver cómo averiguar (dentro del Test Case) cuáles son los valores de esas parametrizaciones al momento de estar ejecutando.&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;¿Cómo hacer Test Cases soportando parametrizaciones? ¿cómo tomar estos valores de parametría al momento de la ejecución, sin tener que indicárselos manualmente? Voy a sugerir algunas soluciones, alguna es aplicable en distintas herramientas, otra (la más eficiente) es más específica para GXtest, aunque se puede hacer algo similar en otros ambientes también.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;El objetivo es tomar los valores de los parámetros que afectan al caso de uso.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Solución #1:&lt;/b&gt; hacer un Test Case por cada una de las combinaciones de parámetros. Esto evidentemente tiene la desventaja de que se duplica trabajo y se aumentan los puntos de falla.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Solución #2:&lt;/b&gt; diseño Test Cases auxiliares que sirvan para consultar esos parámetros y estos se cargan en variables (o lo que maneje la herramienta), y entonces de esa forma en el Test Case de&lt;i&gt; "Alta producto"&lt;/i&gt; ejecuto primero los Test Cases auxiliares que consultan parámetros, y luego se hacen las decisiones en base a las variables cargadas. La principal desventaja es que esto hace que se vaya por muchas pantallas innecesariamente, consumiendo más tiempo de ejecución para cada Test Case que requiera consultar parámetros. Además, es necesario automatizar Test Cases que tal vez no son incluidos en el conjunto de pruebas de regresión, o sea, que no estaban planeados en la automatización.&lt;/div&gt;&lt;div&gt;Otra desventaja es que si llega a fallar uno de los Test Cases que toman parámetros, entonces no se podrá ejecutar el Test Case principal.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;Solución #3:&lt;/b&gt; la que creemos más eficiente es con ProcGX, los cuales se desarrollen específicamente para devolver los valores de los parámetros que se necesitan. Desde GXtest es posible cargar en variables el resultado de la invocación a un ProcGX y luego tomar bifurcaciones en base a estas variables (pero esto es útil &lt;i&gt;as well&lt;/i&gt; en otras herramientas en las que se pueda invocar a Web Services). La ventaja es que en tiempo de ejecución es más eficiente, así como en tiempo de desarrollo. La desventaja es que el tester "depende" del desarrollador para esta tarea.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" border-collapse: collapse;  font-family:arial;font-size:13px;"&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Un comentario al margen es que las parametrizaciones en los casos de prueba es un tema ligado con a &lt;a href="http://abstracta-soft.blogspot.com/search/label/Software%20Product%20Lines"&gt;Líneas de productos&lt;/a&gt; de lo cual hemos hablado en el blog. Ese enfoque nos podría permitir derivar los casos de prueba a partir de la línea de producto específica que tengamos, permitiendo de ese modo no solo crear sistemas más sencillos y específicos sino también casos de prueba más prolijos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;¿Alguien más se ha chocado con este problema? ¿alguna otra solución que se les ocurra?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-8191721802364765812?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/8191721802364765812/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=8191721802364765812' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/8191721802364765812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/8191721802364765812'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/07/test-cases-resistentes.html' title='Test cases resistentes a parametrizaciones'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xDsTqyrVo3E/SlNUr-XX6GI/AAAAAAAAAhE/lFQMt_lq6z8/s72-c/3522364923_7f37715eac.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-1630103030509298720</id><published>2009-06-22T15:43:00.000-07:00</published><updated>2009-06-24T10:52:25.798-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><title type='text'>Testing is not a phase!</title><content type='html'>&lt;div&gt;Cómo aprendemos sobre &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;testing&lt;/span&gt;? cómo usamos el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;testing&lt;/span&gt; en nuestros desarrollos?&lt;/div&gt;&lt;div&gt;Estará eso vinculado?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En nuestro caso en la facultad vivimos un proceso un poco estricto, que se refleja bastante en la industria:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;primero matemáticas y materias formativas, nos ayudan a crear el pensamiento abstracto y lógico&lt;/li&gt;&lt;br /&gt;&lt;li&gt;programación básica, estructurada y usando constructores fundamentales&lt;/li&gt;&lt;br /&gt;&lt;li&gt;programación con tipos abstractos de datos&lt;/li&gt;&lt;br /&gt;&lt;li&gt;programación con algoritmos sobre estructuras de datos&lt;/li&gt;&lt;br /&gt;&lt;li&gt;programación orientada a objetos (en c++)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;un lenguaje con más abstracción (java)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;mechado por ahí tenemos sistemas operativos, arquitectura, y otras yerbas&lt;/li&gt;&lt;br /&gt;&lt;li&gt;luego, un proceso pesado como lo es el &lt;a href="http://es.wikipedia.org/wiki/RUP"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;RUP&lt;/span&gt;&lt;/a&gt;, poniéndolo en práctica en un grupo de 12 a 14 personas. Recién en estas materias se ve algo de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;testing&lt;/span&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;para 4&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;to&lt;/span&gt; o 5&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;to&lt;/span&gt; año hay una electiva (en la que participamos como docentes Diego &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Vallespir&lt;/span&gt;, Mónica W. del &lt;a href="http://www.ces.com.uy"&gt;CES&lt;/a&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Matías&lt;/span&gt; y yo) llamada &lt;a href="http://www.fing.edu.uy/inco/cursos/tvs/pmwiki/field.php?n=Curso.Curso"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;TVS&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Qué nos deja esto? que el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Testing&lt;/span&gt; es algo que queda para el final, ... oh vaya casualidad! no es esto lo que pasa generalmente en el desarrollo? Por eso se habla tanto de la "etapa de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;testing&lt;/span&gt;", cuando en realidad debería ir más de la mano con el desarrollo en sí.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hace poco participé de una reunión en facultad (con integrantes del &lt;a href="http://www.ces.com.uy"&gt;CES&lt;/a&gt; también) en la que se demostraba el interés por cambiar esto, y comenzar el cambio desde la enseñanza, mostrando que el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;testing&lt;/span&gt; no es una etapa, no es algo que se hace al final, sino que es una tarea que acompaña y &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;retroalmienta&lt;/span&gt; al desarrollo desde un principio.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A nosotros nos interesó hablarles de esto para contarles de una funcionalidad de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;GXtest&lt;/span&gt; en realidad, que tiene como objetivo en gran medida permitir que las pruebas automatizadas se lleven en conjunto con el desarrollo. Si bien esto no es lo único importante para acompañar el desarrollo con el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;testing&lt;/span&gt;, es nuestro granito de arena.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ya por usar &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Genexus&lt;/span&gt; tenemos la posibilidad de ir probando nuestros "prototipos", que en realidad son la aplicación en sus orígenes. La idea con &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Genexus&lt;/span&gt; (tal como lo dicen los manuales) es ir desarrollando una serie de prototipos que van creciendo y tomando forma hasta tener la aplicación. La gran ventaja es que podemos &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;testear&lt;/span&gt; desde los primeros días de desarrollo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;GXtest&lt;/span&gt; pretendemos que sea posible automatizar las pruebas desde lo antes posible.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Qué problemas pueden ocurrir con esto? los obvios, de que automaticemos pruebas, y al continuar el desarrollo de la aplicación nuestras pruebas se rompan por los propios cambios introducidos al evolucionar el desarrollo.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Ya que &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;GXtest&lt;/span&gt; está "atado" o "enganchado" a la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;KB&lt;/span&gt; de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Genexus&lt;/span&gt;, es posible tener pruebas automatizadas para una versión de la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;KB&lt;/span&gt; y que al momento en que se haga un nuevo &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;deploy&lt;/span&gt; en el ambiente de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;testing&lt;/span&gt;, también se actualice la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;KB&lt;/span&gt; que maneja &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;GXtest&lt;/span&gt; en sus &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;TestCases&lt;/span&gt;, para que estos se ajusten a los cambios ingresados. El objetivo es que esta tarea de "impactar la nueva &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;KB&lt;/span&gt; sobre &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;GXtest&lt;/span&gt;" sea lo más automática posible, aunque para algunos casos particulares requerirá de la asistencia del usuario.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Ejemplo&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;rename&lt;/span&gt; de objetos &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;referenciados&lt;/span&gt; en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;TestCases&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;rename&lt;/span&gt; de controles &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;referenciados&lt;/span&gt; en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;TestCases&lt;/span&gt; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;delete&lt;/span&gt; de objetos o controles &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;referenciados&lt;/span&gt; en &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;TestCases&lt;/span&gt; &lt;/li&gt;&lt;br /&gt;&lt;li&gt;nuevos objetos o controles, cambios en objetos no utilizados &lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;También entra en juego el buen criterio para la planificación de la automatización de cada prueba. Consideramos que está bueno automatizar e incluir lo antes posible en el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;set&lt;/span&gt; de pruebas de regresión automatizadas una funcionalidad, pero también hay que ver que esté &lt;i&gt;estable &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;enough&lt;/span&gt;&lt;/i&gt; como para que no me implique tanto trabajo hacer el mantenimiento a ese &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;TestCase&lt;/span&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta necesidad de planificación la contamos también desde la experiencia por las pruebas automatizadas que armamos para &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;GXtest&lt;/span&gt; en su desarrollo.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5350304019433766418" style="margin: 0px auto 10px; display: block; width: 210px; cursor: pointer; height: 210px; text-align: center;" alt="" src="http://4.bp.blogspot.com/_C6WXtbAB2qc/SkAZKJaxvhI/AAAAAAAAIVI/o3udB2uo-M8/s320/computer-monkey-210.jpg" border="0" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Es importante por comenzar al menos por un conjunto simple de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;Test&lt;/span&gt; Cases, pero comenzar temprano! Luego que tenemos la "infraestructura de pruebas" aceitada, es más fácil agregar nuevas pruebas al conjunto de pruebas de regresión. En cambio si esperamos para tener un conjunto más amplio de funcionalidades para automatizar, demoraremos más en obtener los beneficios.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;De lo que estamos seguros también es que no consideramos al &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;testing&lt;/span&gt; como una fase, o como algo que hay que dejar para el final, ... tal vez eso por la experiencia que nos ha dado trabajar en el &lt;a href="http://www.ces.com.uy"&gt;CES&lt;/a&gt; y la preocupación por la calidad del producto que nos ha inculcado esa "escuela" que tuvimos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gracias &lt;a href="http://3dgiordano.blogspot.com/"&gt;David&lt;/a&gt; por el &lt;a href="http://methodsandtools.com/PDF/mt200902.pdf"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;link&lt;/span&gt; a la revista M&amp;amp;T&lt;/a&gt; de donde nos inspiramos para este post!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-1630103030509298720?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/1630103030509298720/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=1630103030509298720' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/1630103030509298720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/1630103030509298720'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/06/testing-is-not-phase.html' title='Testing is not a phase!'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C6WXtbAB2qc/SkAZKJaxvhI/AAAAAAAAIVI/o3udB2uo-M8/s72-c/computer-monkey-210.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3360428795422884065.post-5323484339526075550</id><published>2009-06-16T13:53:00.000-07:00</published><updated>2009-06-16T15:25:53.981-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GxTest'/><category scheme='http://www.blogger.com/atom/ns#' term='Eventos'/><title type='text'>GXtest Avant Premiere - en el GUG</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El próximo sábado 20 de junio a las 11 horas e&lt;span&gt;&lt;span&gt;n la Pizzería armenia Nairi  (Agraciada 3560 y Buschental) tendremos el agrado de presentar en el primer &lt;a href="http://gugmontevideo.wordpress.com/"&gt;GUG Montevideo&lt;/a&gt; de este año. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_C6WXtbAB2qc/Sjgbdc7ExII/AAAAAAAAIUo/fZJ6a-P7zo0/s320/mgm-logo.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 202px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5348054750296589442" /&gt;&lt;/div&gt;El título de la charla es "GXtest Avant Premiere", y ya que se acerca la fecha de su liberación, la idea es mostrar los avances en el desarrollo de GXtest y las funcionalidades que tendrá la primer versión que estará disponible para el próximo evento GeneXus.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Habrán otras charlas muy interesantes las cuales se listan en el blog del Grupo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esperamos verlos por ahi.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Qué bueno que vamos de nuevo con &lt;span&gt;&lt;span&gt;los lehmeyunes  de&lt;/span&gt;&lt;/span&gt; Gustavo!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3360428795422884065-5323484339526075550?l=blog.abstracta.com.uy' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.abstracta.com.uy/feeds/5323484339526075550/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3360428795422884065&amp;postID=5323484339526075550' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/5323484339526075550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3360428795422884065/posts/default/5323484339526075550'/><link rel='alternate' type='text/html' href='http://blog.abstracta.com.uy/2009/06/gxtest-avant-premiere-en-el-gug.html' title='GXtest Avant Premiere - en el GUG'/><author><name>FedeFede</name><uri>http://www.blogger.com/profile/00850305053856498167</uri><email>fltoledo@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01954113082333495744'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C6WXtbAB2qc/Sjgbdc7ExII/AAAAAAAAIUo/fZJ6a-P7zo0/s72-c/mgm-logo.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry></feed>