¿Cómo propones incluir a esos buenos practicantes pero que son reacios
a incorporarse a la comunidad?
Un saludo,
Jose Manuel Beas
http://www.agile-spain.com
http://jmbeas.blogspot.com
2009/9/18 Xavi Gost <xav...@gmail.com>:
>
> Me parece interesante y .. como van unos años por delante pues....
>
> I feel majority of the Agile community has got into a “preaching mode”
> and very few people are actually building their own products (eating
> their own dog food.) This attitude attracts a certain kind of people
> to the conference and I’m quite skeptical to find innovative new ideas
> in this crowd. With so much noise its also very easy to miss some weak
> signals which have potential.
>
> I do know a few people who are doing some really interesting stuff
> (they are turned off by the Agile brand and generally don’t hang
> around in these circles). Personally I want us, as a community, to be
> more inclusive of these people.
>
> Xavier Gost
>
> >
>
Hola a todos.
Y pregunto yo... ¿compensa?
No es por hacer la puñeta pero cada vez que me pongo a estudiar una nueva tecnología es lo primero que me pregunto.. en algunos casos -como en POO- no hay duda, en otro - como MVC - no lo he visto claro y lo he dejado atrás.
¿El TDD compensa? Soy todo oidos de lego a las opiniones. :)
Luego otra cosa que no tengo muy clara es cómo hacer TDD con pruebas de aceptación (pej pruebas funcionales web), yo tenía entendido que TDD era con pruebas unitarias o de integración.
En la diapo #7 hay un diagrama que creo deja bastante clara la
relación entre pruebas de aceptación, pruebas unitarias y TDD.
Simplemente recordar que TDD no hace menos laborioso el desarrollo:
ayuda a hacerlo más fiable. Pero requiere de mucha autodisciplina. Que
nadie piense que ser ágil es hacer las cosas corriendo.
En cuanto a lo del "apfrón" que dice Abel. Hay un libro estupendo (no
es muy largo) titulado "Bridging the Communication Gap" donde habla
bastante sobre el enfoque de "agile acceptance testing". Tengo un
resumen en mi blog [1] por si os apetece leer mis notas.
[1] http://jmbeas.blogspot.com/2009/05/salvando-las-distancias.html
+1
En cuanto a lo del "apfrón" que dice Abel. Hay un libro estupendo (no
es muy largo) titulado "Bridging the Communication Gap" donde habla
bastante sobre el enfoque de "agile acceptance testing". Tengo un
resumen en mi blog [1] por si os apetece leer mis notas.
Pero aplicarlo al mundo de pruebas de aceptación en aplicaciones web
ricas (ajax), al menos para mi, no es tan inmediato. Al menos en mi
experiencia cuando hemos usado Selenium, tratar con los componentes
ajax no es sencillo. Cada libreria tiene sus hacks y por supuesto las
herramientas visuales (Selenium IDE) no los aplica directamente.
Además hay que sumarle la complejidad/imposibilidad de trabajar sobre
un html que no existe.
Abel, ¿qué es eso del "concepto de page object"?
¿Puedes dar alguna referencia?
Suena a excusa barata. :-D
Proponla para el Agile Open. :-)
Otro con excusa. ¡Y además muy barata! ¿Pero qué es lo que tienes que
meditar para proponer algo en el Open? :-D
Un saludo,
JMB
Nosotros también usamos Selenium RC e intentamos hacer un html
"amigable" que facilite la creación de los tests.
El otro día vi SeleniumInspector [1], un "plugin" de Selenium RC, aún
no lo he probado, pero me parece que se parece bastante al concepto
que comentas y desde luego tengo que probarlo!
Aunque no sé si sabes
que el proyecto Selenium va a sufrir un importante cambio al
fusionarse con Webdriver[2] en la siguiente versión.
Personalmente yo desvinculo la practica del TDD de la de tener test
unitarios, test funcionales y todo eso...
Me explico un poco, yo uso TDD como una manera de programar, me obliga
a realizar test que son absurdos, muchos de ellos son absolutamente
utilitarios para llevar el codigo al sitio que me interesa, gran parte
de ellos son borrados /refactorizados antes del commit.
TDD lo que me permite es :
-Romper el miedo a la pagina en blanco.. empiezo por un sencillo
problema (la mayoria de las veces testeando que tras la instancia
dispongo de una constante, o que la instancia es un singleton , o que
la factoria me devuelve una instancia..)
-Obtener "flow" cuando estoy programando y recuperar facilmente el
"flow" cuando empiezo una sesion (dejate siempre un test hecho que da
rojo antes de cerrar una sesion, pero despues del commit ehh!!)
-Hacer visible la estructura/diseño/arquitectura del artefacto
software que estoy construyendo
-Si me apuras hasta me sirve en muchos casos de documentacion para
transmitir mis intenciones..
En otro orden de cosas como herramienta para hacer formacion, no tiene precio..
Lectura al respecto el libro de Beck es un paso a paso imposible de no entender.
Atendiendo a otros (muchos) topics en este post:
Selenium solo para testear estructura de la pagina (cuidado que si no
usas un XHTML bueno te acoplas del carajo) y funcionamiento de los
javascripts (si fuese necesario, creo que hay librerias/entornos que
permiten mejor el testeo de funciones javascript).
En una estructura MVC pues tiendo a testar(poco) los controladores,
basicamente validaciones
La vista bueno.. ya he dicho lo de Selenium
y el Modelo... bueno tiendo a que las estructuras que son el modelo en
el framework sean solo fachadas a mi Dominio (como es mi Dominio ahi
soy el rey y testear no es un problema)
En aplicaciones sobre J2E o spring o XXXFramework tengo especial
cuidado en no andar probando el framework mismo (me parece una
tonteria pero es facil caer ahi)
Vale decir que soy absolutamente incapaz de programar un helloworld
sin usar TDD, para mi es una de las disciplinas fundamentales para un
programador que se encuentre en el lado luminoso de la fuerza.
Ahh y como "disclaimer" soy de los que piensan en esta profesion como
una artesania no como una ingenieria
Xavier Gost
Ademas ya es tarde, mira la pagina de sesiones del Agile open Spain
JE je je ....
Xavier Gost