Archive

Posts Tagged ‘Pruebas Unitarias’

Invitación a Webcast MSDN: “Prueba de automatización en todas partes”

July 19th, 2011 No comments

El jueves 21 de Julio de 2011 a las 10:00 a.m. de Bogotá (Colombia) estaré presentando vía web, con Live Meeting, durante una hora, el tema “Prueba de automatización en todas partes” y como el nombre lo indica, estará principalmente centrado en pruebas, automatizadas, por supuesto. Ahí trataremos diversos tipos de pruebas que contribuyen a soportar el desarrollo de aplicaciones “mantenibles”.

Para demostrar las aplicaciones implementaré durante la sesión una aplicación web en Visual Studio 2010 con ASP.NET MVC 3, aunque el webcast no se centra ni en este framework ni en otra herramienta de software, sino más bien en algunas técnicas, que otros especialistas y yo hemos encontrado útiles en este ámbito de pruebas, que quisiera compartir con quienes asistan al evento.

Quienes me conocen saben de lo importante que considero el seguir un proceso ágil de desarrollo de software, así que pueden esperar que en este evento use algunos elementos de este estilo, específicamente Behavior-Driven Development.

Para asistir al evento es necesario que se registren usando el siguiente enlace:

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032487227

Workshop: Desarrollo ágil de software en .NET, Primera parte – BDD

October 4th, 2010 16 comments

Mañana martes 5 de octubre de 2010 estaré presentando la primera sesión de una serie de 3 en un workshop sobre “Desarrollo ágil de software en .NET”. Esta sesión se podrá atender tanto presencial como virtualmente. Este evento se realizará en las instalaciones de Microsoft Colombia en la ciudad de Bogotá en la Carrera 7 # 71-21 torre B piso 15, a las 6:30 p.m. hora local, lo que corresponde con la hora internacional 23:30 UTC/GMT (meridiano 0), con una duración aproximada de 2 horas.

Esta primera sesión se titula “Desarrollo ágil de software en .NET: Behavior-Driven Development (BDD)” y se presentará en un modo introductorio, de tal manera que no es requisito tener bases de desarrollo ágil de software, es más bien para quienes desean iniciarse en él, conocen la plataforma .NET, Visual Studio y los principios básicos de desarrollo de software. la descripción es la siguiente:

Desarrolle aplicaciones de calidad aplicando la metodología ágil BDD, que cubre todo el proceso básico de desarrollo de software, desde la captura efectiva de los requerimientos del cliente, que se traducen en pruebas de aceptación en el código y nos guían en la implementación del comportamiento de la aplicación que desarrollamos, de a pequeños incrementos, por medio de ejemplos de prueba. Crearemos una aplicación de negocios del mundo real, en C# usando los recursos que nos provee la plataforma .NET, que a su vez constituirá una pequeña aplicación de referencia y ejemplo que publicaremos como open source para la comunidad, en codeplex.com.

Quienes deseen asistir presencialmente deberán inscribirse mediante un formulario de registro para evento presencial y los que deseen atender virtualmente (mediante Live Meeting) deberán usar este otro formulario de registro para Webcast.

Video, presentación y otros recursos de mi VAN “Haciendo BDD con MSpec”

August 25th, 2010 No comments

El pasado sábado 21 de Agosto de 2010 presenté una VAN (a.k.a. Webinar) para la gente de la comunidad ALT.NET Hispano, a la cual pertenezco. En esta presentación hice una introducción a Behavior-Driven Development (BDD), su relación con Acceptance Test-Driven Development (ATDD), Domain-Driven Development (DDD) y Test-Driven Development (TDD), realizando un ejercicio de aplicación aplicando el estilo Context / Specification.

El ejercicio se desarrolló definiendo una historia de usuario, identificando sus parte movibles para señalar los criterios de aceptación que finalmente fueron traducidos a código C# en una pequeña aplicación de ejemplo usando Machine.Specifications (MSpec). Todo esto nos permitió recorrer las fases principales del proceso de desarrollo de software (análisis, diseño, implementación y pruebas), indicando las prácticas recomendadas para cada aspecto según BDD.

De manera que les recomiendo observar este vídeo y presentación que les adjunto, que de seguro les puede dar unas buenas ideas sobre los enormes beneficios de seguir el método ágil BDD.

Pueden encontrar otros recursos o incluso publicarlos en la página wiki VAN – Agosto 21 de 2010 – Haciendo BDD con MSpec

[Evento] Mastering “User Stories”

August 12th, 2010 No comments

Para el sábado 14 de Agosto de 2010 a las 18:00 UTC/GMT (meridiano 0) o 20:00 CET, la comunidad ALT.NET Hispano ha organizado una VAN (Webinar) que tendrá una duración aproximada de 2 horas, vía http://snipr.com/virtualaltnet. El tema a tratar en esta ocasión será la definición, de manera efectiva, de historias de usuario.

Si bien, los desarrolladores tenemos nuestra propia forma y recursos para adelantar en un proyecto, es claro que finalmente el cliente es el que aceptará o no el producto final, por lo que debemos asegurarnos de que tenemos muy en cuenta sus deseos y criterio, a lo largo de todo el ciclo de vida del proyecto. Para esto, es necesario poder capturar e interpretar de manera efectiva los requerimientos, lo que en el mundo Ágil se traduce como Historias de Usuario, de manera que esta VAN resultará muy útil, no solo para desarrolladores, sino para personas que desempeñan otros roles en un proyecto de desarrollo de software.

Nuestro invitado de hoy es un miembro de la Scrum Alliance, se trata del brasileño Heitor Roriz (hroriz), quien es bastante conocido en numerosas comunidades Ágil/SCRUM de habla de habla portuguesa, hispana e inglesa, también de diversas países, pues es un destacado conferencista y entrenador para eventos y talleres. De modo que seguramente tendremos una VAN de excelente calidad y nos proporcionará una buena oportunidad para aclarar nuestras inquietudes respecto a planeación de proyectos, específicamente el asunto de historias de usuario.

Heitor comenta sobre lo que comprenderá su presentación:

Definición y conceptos de las necesidades de gestión, los filtros en los seres humanos, las definiciones de valor de negocio, herramientas para la identificación de las necesidades del negocio, definiciones de roles y personajes, el papel y importancia de la comunicación, las historias de usuario y necesidades, la comparación entre las historias de usuario y casos de uso, la asignación entre historias de usuarios y casos de uso, wireframes, el usuario estima historias: puntos de la historia, la comparación entre los puntos de historia y otras técnicas tradicionales, el planning poker, priorización del product backlog, Deuda técnica como historias de usuario, la técnica MoSCoW, el mantenimiento del product backlog.

Tengan en cuenta que una VAN trata de seguir el modelo de Desconferencia, por lo que tienen cierto toque de informalidad, permitiendo diferentes formas de intervención a todos nuestros asistentes; estos no solo pueden participar con preguntas, sino que también pueden expresar sus opiniones, discutir y hasta exponer algún asunto; para ello permitimos y de hecho deseamos que nuestros asistentes habiliten y usen el micrófono para expresarse.

Como un beneficio adicional, en nuestras VAN obsequiamos algunos eBooks y licencias de productos de interés para nuestro auditorio. Si por alguna razón no pueden atender en línea la reunión virtual, no deben preocuparse, pues las grabaciones de estas “siempre” quedan publicadas en nuestra página wiki Historial de Reuniones. Sin embargo, recomendamos hacerlos el esfuerzo por asistir virtualmente en línea a nuestras VAN, pues se obtienen mayores beneficios.

Hay que aclarar que no se requiere ningún tipo de registro, simplemente acudir el día y la hora indicados a la dirección Web http://snipr.com/virtualaltnet, eso sí, deberán tener instalado el programa cliente de Live Meeting; hay más instrucciones sobre cómo hacer esto y otras indicaciones en la página wiki Descripción de Reuniones. Adicionalmente les recomendamos comprobar la hora correspondiente para su localidad, esto lo pueden hacer con la ayuda de la página Historial de Reuniones y nuestro Calendario de Reuniones, al cual se pueden suscribir.

Finalmente, los invitamos y les agradecemos de antemano la difusión de este evento en sus lugares trabajo, estudio, comunidades y demás lugares con personas que pudieran beneficiarse como nosotros de estos importantes temas. Pueden suscribirse y hasta colaborar siguiéndonos a través de los siguientes medios:

[Evento] Introducción a Moq (Framework de Mocking para Pruebas)

March 26th, 2010 No comments

image

La comunidad ALT.NET Hispano realizará una VAN sobre el framework de Mocking Moq este sábado 27 de marzo de 2010 a la hora internacional 18:00 GMT/UTC con una duración aproximada de 2 horas, vía http://snipr.com/virtualaltnet.

Para describir Moq de la mejor manera, les transcribo lo que se menciona en la página principal del proyecto http://code.google.com/p/moq/

“Moq (pronunciado “Moquiu” o solo “Moc”) es la única librería de mocking para .NET desarrollada a partir de cero aprovechando todas las ventajas de .NET 3.5 (i.e. árboles de expresión Linq) y las características de C# 3.0 (i.e. expresiones lambda), que la hacen la librería disponible para mocking más productiva con seguridad de tipos y facilidades para realizar refactorización. Puede “mockear” tanto interfaces como clases. Su API es extremadamente simple y sencilla, y no requiere ningún conocimiento o experiencia previa con conceptos de mocking.”

Nuestro ponente invitado es Leonardo Micheloni (@leomicheloni), quien se esfuerza continuamente con el objetivo de proveer contenido de calidad en nuestro idioma Español, sobre temas avanzados y de interés para las comunidades de desarrolladores de software. Además, tiene una amplia experiencia tanto en el uso como en la enseñanza de esta herramienta. En la invitación que hizo Leonardo para esta VAN, Leonardo menciona lo siguiente:

“En la actualidad el software requiere altos niveles de calidad, las pruebas unitarias son una herramienta indispensable para alcanzar dicha calidad, desarrollar un software que sea fácil de probar requiere utilizar herramientas y patrones de diseño específicos, el mocking permite simular escenarios controlados para realizar nuestras pruebas. Dentro de los framework de mocking disponibles para .NET se destaca Moq por su facilidad de uso y limpieza de código, en este reunión virtual vamos a repasar los conceptos que son necesarios para una correcta prueba unitaria y descubriremos la potencia y belleza de Moq.”

También incluye una lista de posibles temas a tratar y digo posibles porque Leonardo también ha puesto a disposición de los interesados un documento compartido en el que podemos votar por estos temas o incluir nuevos; los temas son:

  • Teoría sobre mocking
    • Necesidad
    • unit testing
    • Inyección de dependencias inversión de control
    • Qué es un mock object? y un stub?
    • Expectations
    • Limitaciones
    • Breve introducción  a frameworks de mocking: NMocks, Rhino, Typemock isolator, Moq
  • Moq
    • Mocks al estilo C# 3
    • Ventajas
    • Comportamientos
    • Limitaciones
    • Belleza, simplicidad, magia

Tengan en cuenta que una VAN trata de seguir el modelo de Desconferencia, por lo que tienen cierto toque de informalidad, permitiendo diferentes formas de intervención a todos nuestros asistentes; estos no solo pueden participar con preguntas, sino que también pueden expresar sus opiniones, discutir y hasta exponer algún asunto; para ello permitimos y de hecho deseamos que nuestros asistentes habiliten y usen el micrófono para expresarse.

Como un beneficio adicional, en nuestras VAN obsequiamos algunos eBooks y licencias de productos de interés para nuestro auditorio. Si por alguna razón no pueden atender en línea la reunión virtual, no deben preocuparse, pues las grabaciones de estas “siempre” quedan publicadas en nuestra página wiki Historial de Reuniones. Sin embargo, recomendamos hacer el esfuerzo por asistir virtualmente en línea a nuestras VAN, pues se obtienen mayores beneficios.

Hay que aclarar que no se requiere ningún tipo de registro, simplemente acudir el día y la hora indicados a la dirección Web http://snipr.com/virtualaltnet, eso sí, deberán tener instalado el programa cliente de Live Meeting; hay más instrucciones sobre cómo hacer esto y otras indicaciones en la página wiki Descripción de Reuniones. Adicionalmente les recomendamos comprobar la hora correspondiente para su localidad, esto lo pueden hacer con la ayuda de la página Historial de Reuniones y nuestro Calendario de Reuniones, al cual se pueden suscribir.

Finalmente, los invitamos y les agradecemos de antemano la difusión de este evento en sus lugares trabajo, estudio, comunidades y demás lugares con personas que pudieran beneficiarse como nosotros de estos importantes temas. Pueden suscribirse y hasta colaborar siguiéndonos a través de los siguientes medios:

[Evento] VAN sobre FitNesse + Acceptance Testing + Selenium

January 15th, 2010 No comments
El sábado 16 de enero a la hora internacional 18:00 GMT/UTC, la comunidad ALT.NET Hispano realizará una VAN (evento virtual tipo desconferencia) esta será la primera que tendremos en este año 2010. El tema principal será una exposición sobre Fitnesse, una herramienta de colaboración para desarrollo de software.

Para la presentación tendremos la colaboración Diego Jancic, un experimentado desarrollador de software, muy reconocido en los grupos de usuarios de Argentina. Además ha venido trabajando con estos tópicos desde hace bastante tiempo.

En cuanto a lo que podemos esperar en la VAN, Diego comenta en esta discusión lo siguiente:

… la idea es hablar en torno a FitNesse
y Acceptance Testing, y que la conversacion guie los detalles y los
intereses, para profundizar sobre cualquier tema; basicamente es mantener el
espiritu Agile de reuniones.
De cualquier forma, estoy preparando todo como para que haya una base de
temas interesante para guiar la VAN.

Resumen:
La herramienta FitNesse, incluyendo todo lo necesario para comenzar y llegar
a integrarla con .NET. Adicionalmente, se incluiran otros 2 temas que son
claves para aprovechar FitNesse al maximo. Primero, será indispensable
hablar de Acceptance Testing, para entender su importancia y utilidad en el
desarrollo de software; y luego, Selenium, una herramienta que permite
probar aplicaciones web. Ésta ultima será simplemente un ejemplo de
aplicacion, ya que FitNesse no esta limitado a aplicaciones Web, cualquier
tipo de extension y aplicacion esta permitida.

Objetivo:
Permtir a cualquier persona con conocimientos de programacion, configurar un
ambiente de pruebas automatizadas y orientadas al cliente. De forma que
alguien sin conocimientos de sistemas, pueda integrarse rapidamente a un
ambiente de desarrollo, definiendo pruebas de cualquier tipo.

Indice de Temas (tentativo):

* Acceptance Testing: Breve introduccion.
* Selenium IDE: Introduccion, demo y problemas.
* FitNesse
** FitNesse en solitario: Instalacion, introduccion, arquitectura, formato
de la Wiki, ejemplos incluidos
** Extensibilidad con .net
** Integracion con Selenium RC
* Versionado de las pruebas
* Integracion de FitNesse con NAnt y CruiseControl.NET

Puede ser útil consultar los siguientes artículos, que tomé de un post similar a este, del maestro Angel “java” López:

http://www.fitnesse.org/
http://seleniumhq.org/
http://en.wikipedia.org/wiki/Selenium_(software)
http://seleniumhq.org/projects/ide/
http://en.wikipedia.org/wiki/Acceptance_testing
http://www.extremeprogramming.org/rules/functionaltests.html
http://www.extremeprogramming.org/rules/userstories.html

Para atender la desconferencia no se exige ningún tipo de registro, simplemente estar el día y hora indicados abriendo el enlace http://snipr.com/virtualaltnet. Recomendamos que consulten más detalles en la página Descripción de Reuniones y la hora que corresponde con su localidad en la página Equivalencias Horarias, o si lo prefiere puede acceder a nuestro calendario Google o bien descargar el iCal de este evento en particular, para importarlo a Outlook u otro calendario.

Por último, les dejo la lista de recursos compartidos de los que disponemos en la comunidad, a los cuales pueden suscribirse para mantenerse al tanto de las actividades de la comunidad ALT.NET Hispano: