[patrones] Testing

2006-12-07 Por tema Diego Jancic

Hola,
Oks... Entonces un DELETE ustedes lo hacen asi:

INSERT
SELECT// ASSERT
DELETE
SELECT// ASSERT

Yo siempre crei que estaba mal realizar tantos tests adentro de una
operacion simple, porque si el INSERT falla, el test del delete tambien...

A Dario Quintana: Gracias!, no se me habia ocurrido mirar ahi... creo que
ellos la deben tener clara..

Gracias a todos por las respuestas!, ahora voy a leer los links que
mandaron..

Saludos!

On 12/7/06, Alejandra Becerra [EMAIL PROTECTED] wrote:


Diego te cuento mi experiencia
1) Pensaría primero en la factibilidad de tener una base de datos real. El
tema de los mocks objects desde mi punto de vista está pensado para disponer
de algo cuando realmente no lo tenes. Si se necesita interactuar con algo
que aún no está desarrollado, simulas esa interface para no trabar tu
desarrollo.
2)Cada test debería estar pensado para que si falla, falle por un bug, y
no por el desarrollo del propio test. Se puede testear el ID
independientemente de cómo este actualmente la base de datos, a no ser que
quieras hacer el test inicio de la base de datos, o el test de los valores
iniciales de la base de datos. Entonces dejar un valor fijo como id me
parece un error. El mismo test deberia crearlo y verificarlo.
3)Si es un proceso que va a ser repetitivo pensaría en hacer algo
automático.
4)No se me presento la necesidad.

Bueno espero que te sirva,
Alejandra

*Diego Jancic [EMAIL PROTECTED]* escribió:

 Hola gente…
hoy vengo con algunas preguntitas sobre TDD, mas practicas de lo normal…
los temas son los siguientes:

1)   Es necesario tener una DB real (me refiero a que no sea mockeada)
por desarrollador o usan todo el tiempo la mockeada… dicho de otra forma,
cuantas personas y cada cuanto ejecutan los tests en una DB no mockeada??
2)   Como se testea un select/update o delete por ID en una DB real??
Es decir, después de ejecutar el script para configurar el estado inicial de
la DB tienen que cambiar alguna propiedad constante en los tests, no??
Tambien el Test de borrar podria crear el registro, pero no me gusta mucho…
ustedes que hacen?
3)   El script de configuración de la DB, lo ejecutan en el TearUp o a
mano?? Cada uno tiene sus ventajas…
4)   Según algunos articulos, es necesario un DB por desarrollador,
ademas de la compartida… pero es real esto? Con la mockeada no es
suficiente?

Veran que todas mis preguntas son sobre como testear una DB no mockeada…
Si alguno tiene un ejemplo o articulo bueno tambien lo voy a agradecer…

Saludos a todos!,
Diego


__
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar



[patrones] Testing

2006-12-07 Por tema Diego Jancic

Bueno... lo del TearUp lo hice de memoria y aparentemente lo invente =P...
pero hay un TestFixtureSetUp que se ejecuta 1 sola ves por TextFixture... ;)

Gracias Carlos por las respuestas! Me falta un poco de practica en el
tema

Saludos!,
Diego


On 12/7/06, Carlos Peix [EMAIL PROTECTED] wrote:


 Hola Diego,

Nosotros corremos la suite de test contra el repositorio real ( la base de
datos ) con mucho menos frecuencia que sobre el repositorio de test ( en
memoria ).

Esto se debe a varios motivos:
a) los tests corren mucho (muchisimo) mas rapido, si el test corre rapido,
se corre mas seguido, importantisimo;
b) ante cambios en el modelo, la inercia del repositorio en memoria es
mucho menor, es decir, no hay que hacer cambios de esquema en la base de
datos (esto tambien es importante para controlar la pereza del
desarrollador);
c) es bastante molesto administrar la base de datos de testeo, al menos en
mi experiencia, asi que es mejor hacerlo automatizadamente y durante el
build automatizado, como comento Luis.
d) Al principio del desarrollo no tenemos la base de datos para hacer mas
agil el desarrollo del modelo (esto esta relacionado con el punto b)
e) Tenes que tener una BD exclusiva por desarrollador (para los unit
tests), de lo contrario, tarde o temprano tenes colisiones.

Contestando tus preguntas:
1) No es necesario tener una BD real para realizar unit tests, si es
necesaria para correr los unit tests contra el repositorio real y, desde ya,
para correr la aplicacion, aunque yo siempre muestro la aplicacion, durante
las primeras iteraciones, corriendo contra el repositorio en memoria. El
motivo es el de siempre, es mas agil, mas facil.

2) Primero deberia decir que nosotros testeamos el modelo y, en general,
no me encuentro con mucha operacion CRUD completa. Pero si lo hiciera, hay
dos alternativas: a) esteas cada operacion CRUD por separado, para lo cual
necesitas la base de datos inicializada con los registros correctos ( es mas
dificil el setup de la base de testeo ), b) testeas todas las operaciones en
el mismo test, por lo tanto creas el registro, lo lees, lo modificas y lo
borras.

3) Hay un nuevo atributo TearUp? :). Podes correrlo a mano ( o como parte
del build automatizado ) o en el SetUp y el TearDown, depende de como
trabajes segun mi respuesta del punto 3. Yo prefiero el primero porque el
segundo te obliga a hacer malabarismos para que no sea lentsimo.

4) Sin duda la DB debe ser exclusiva por desarrollador.

Hay una buena cobertura de este tema en el libro de Jimmy Nilsson.

Carlos



 --
*From:* patrones@mug.org.ar [mailto:[EMAIL PROTECTED] *On Behalf Of *Diego
Jancic
*Sent:* Jueves, 07 de Diciembre de 2006 12:18 a.m.
*To:* patrones List Member
*Subject:* !- [patrones] Testing



Hola gente…

hoy vengo con algunas preguntitas sobre TDD, mas practicas de lo normal…
los temas son los siguientes:



1)   Es necesario tener una DB real (me refiero a que no sea mockeada)
por desarrollador o usan todo el tiempo la mockeada… dicho de otra forma,
cuantas personas y cada cuanto ejecutan los tests en una DB no mockeada??

2)   Como se testea un select/update o delete por ID en una DB real??
Es decir, después de ejecutar el script para configurar el estado inicial de
la DB tienen que cambiar alguna propiedad constante en los tests, no??
Tambien el Test de borrar podria crear el registro, pero no me gusta mucho…
ustedes que hacen?

3)   El script de configuración de la DB, lo ejecutan en el TearUp o a
mano?? Cada uno tiene sus ventajas…

4)   Según algunos articulos, es necesario un DB por desarrollador,
ademas de la compartida… pero es real esto? Con la mockeada no es
suficiente?



Veran que todas mis preguntas son sobre como testear una DB no mockeada…
Si alguno tiene un ejemplo o articulo bueno tambien lo voy a agradecer…



Saludos a todos!,
Diego




[patrones] Testing

2006-12-06 Por tema Diego Jancic
Hola gente…

hoy vengo con algunas preguntitas sobre TDD, mas practicas de lo normal… los
temas son los siguientes:

 

1)   Es necesario tener una DB real (me refiero a que no sea mockeada)
por desarrollador o usan todo el tiempo la mockeada… dicho de otra forma,
cuantas personas y cada cuanto ejecutan los tests en una DB no mockeada??

2)   Como se testea un select/update o delete por ID en una DB real?? Es
decir, después de ejecutar el script para configurar el estado inicial de la
DB tienen que cambiar alguna propiedad constante en los tests, no?? Tambien
el Test de borrar podria crear el registro, pero no me gusta mucho… ustedes
que hacen?

3)   El script de configuración de la DB, lo ejecutan en el TearUp o a
mano?? Cada uno tiene sus ventajas…

4)   Según algunos articulos, es necesario un DB por desarrollador,
ademas de la compartida… pero es real esto? Con la mockeada no es
suficiente?

 

Veran que todas mis preguntas son sobre como testear una DB no mockeada… Si
alguno tiene un ejemplo o articulo bueno tambien lo voy a agradecer…

 

Saludos a todos!,
Diego



[patrones] [OT] Como convencer a alguien de usar DDD y TDD?

2006-11-09 Por tema Diego Jancic








Jeje no creo,
entre las sectas organizadas por carlos y tus ideales del mundo perfecto (en
donde programan de a pares y el usuario te ayuda, en vez de molestarte por
telefono 24hs x dia), a mi me convencieron =P



Saludos!,

Diego



p.d.: muy buena la charla
de agile del otro dia ;-)











From: patrones@mug.org.ar [mailto:patrones@mug.org.ar]
On Behalf Of Martin Salias
Sent: Jueves, 09 de Noviembre de
2006 15:43
To: patrones List Member
Subject: [patrones] [OT] Como convencer a alguien
de usar DDD y TDD?







Un recurso posible:





Mandá al infrascripto a una charla de Peix sobre DDD y otra mía sobre
TDD.











A lo mejor él se da cuenta que mentimos y te saca esas ideas raras de
la cabeza... 8-)






-- 
Martín Salías
www.Salias.com.ar
Agile Alliance
Member - Microsoft MVP 






On 11/8/06, Diego
Jancic [EMAIL PROTECTED]
wrote: 



Hola gente!,





Yo personalmente estoy muy convencido de usar domain-model y TDD (o BDD
como diria el
M. Salias), pero el tema es este:





Conozco a una persona que quiere usar DDD y TDD pero tiene
miedo de hacer un cambio tan importante (ahora usa DataSets
tipados)... que ventajas se les ocurren para vender un poco DDD y
sobre todo TDD??? 





A mi lo unico que se me ocurrio es calidad final y tiempo (aunque
cuesta demostrar que se tarda menos usando TDD)...











Gracias por leer hasta esta linea ;)





Saludos!,





Diego









--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.14.1/527 - Release Date: 09/11/2006








[patrones] [OT] Como convencer a alguien de usar DDD y TDD?

2006-11-08 Por tema Diego Jancic
Hola gente!,
Yo personalmente estoy muy convencido de usar domain-model y TDD (o BDD como diria el M. Salias), pero el tema es este:
Conozco a una persona que quiere usar DDD y TDD pero tiene miedo de hacer un cambio tan importante (ahora usa DataSets tipados)... que ventajas se les ocurren para vender un poco DDD y sobre todo TDD???

A mi lo unico que se me ocurrio es calidad final y tiempo (aunque cuesta demostrar que se tarda menos usando TDD)...

Gracias por leer hasta esta linea ;)
Saludos!,
Diego


[patrones] DDD - Ejemplo practico - Sistema reparacion

2006-10-24 Por tema Diego Jancic
Hola Christian,
Yo lo pude bajar, lo copie en:

http://this.com.ar/public/DDD%20Sistema%20Reparacion.doc

Saludos!
On 10/24/06, Christian Gutman [EMAIL PROTECTED] wrote:




Hola Leandro

No pude Bajarlo

Christian




De: 
patrones@mug.org.ar [mailto:patrones@mug.org.ar] En nombre de 
Leandro TuttiniEnviado el: lunes, 23 de octubre de 2006 15:08Para: patrones List Member
Asunto: [patrones] DDD - Ejemplo practico - Sistema reparacion


Si tenes razon da un mensaje de alerta y no deja bajar los archivos.



a ver si deja acceder de esta forma:



ftp://anonimo:[EMAIL PROTECTED]/




Deberia poder ademas subir archivos.

En todo caso me cuentan si puden acceder, sino lo mando a la lista, la verdad no se cual es el maximo soportado 
Sebastian Renzi [EMAIL PROTECTED] escribió:



Como andas Leandro ?, vas a tener que dejar un penny en el hosting, llegaste al maximo de tranferencias.


Si no es muy pesado mandalo a la lista el doc.









De: 
patrones@mug.org.ar [mailto:patrones@mug.org.ar] En nombre de 
Leandro TuttiniEnviado el: viernes, 20 de octubre de 2006 17:23Para: patrones List Member
Asunto: [patrones] DDD - Ejemplo practico - Sistema reparacion




Hola, que tal.





Queria plantear a la lista una primera aproximacion que arme sobre un modulo de un sistema que me toco diseñar hace algun tiempo. Este es solo un pequeño pedazo del sistema original, que ademas no se penso bajoDDD sino que fue con el modelo en capas, procesosy entidades. 



Pero me puse a pensar como la habria realizado si es que proponia aplica DDD. Queria pasarles esta primera aproximaciona ver que podemos sacar en claro.



El modulo se trata de administrar el envio de parte entre fabrica y el taller que realiza el pedido del repuesto para la reparacion de un producto registrado en el contacto con el cliente.






La info podran verla en la siguiente url, donde subi el modelo:



http://www.drivehq.com/sharing/ShareLogon.aspx?key=519174/obu053e4xelx





En el archivo .doc encontraran una descripcion del relevamiento, y ademas esta el archivo del enterprise architect por si quieren editarlo.






En el modelado solo analice las entidades, pero queria saber como podria ir agregando los servicio del dominio o al menos como enfocar el pensamiento en este tema.



Preguntas:- esta bien generar clases del dominio que representen estado?- el Requerimiento tiene un estado que no es unico sino que para Fabrica puede no haberse iniciado, pero el Taller haber recibido el repuesto, este estado multiple como se modela?, o como se refleja en el diagrama, yo solo uni el requerimiento a la interfaz de estados ya que no supe como concretar este punto. Tal vez el requerimiento tenga una coleccion de estados?






Bueno lo dejo planteado a ver si se va tomando practica, creo que mas falta hace, ir planteando casos practicos con que nos encontramos alguna vez y como lo pensariamos de nuevo.






Saludos

__Correo Yahoo!Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - 
http://correo.yahoo.com.ar

__Correo Yahoo!Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - 
http://correo.yahoo.com.ar