martes, 30 de septiembre de 2008

Scripting Tecniques for Testers


El lunes estuve en el curso de Scripting Techniques for Tester, impartido por Dion Sanders (no, no es jugador de Americano).

El curso se veía prometedor, en el folleto hablaba de como hacer mas dinámicos los scripts de prueba, como desarrollarlos en Ruby y ps basados en la serie de artículos en Stickyminds, asumí (craso error) que nos hablaría de como recuperarse de los errores, la bronca mas común (y mas amplia) al momento de ejecutar un script de prueba.

Su statement es el siguiente: "Tu aplicación es estática? No vdd, siempre hay cambios. Entonces, '¿Pk haces scripts staticos?

Dion nos invita a quitarnos dicha rebuznancia planteando el lo siguiente: Hacer un script dinámico, introduciendo dinámicamente tus datos y creando los datos dinámicamente.

Por lo general, una prueba funcional automatizada consta de tres recursos:

- El script, donde va el código de la prueba
- El mapa de objetos, donde guardamos las especificaciones de los objetos del AUT(Application Under Test) para que el script los pueda encontrar
- El dataPool, una tabla de de datos que utilizamos como datos de entrada para nuestras pruebas

En el script, queda algo como esto:

firstNameTextBox.setText(DataPool.getValue("firstName");
lastNameTextBox.setText(DataPool.getValue("lastName");
departamentTextBox.setText(DataPool.getValue("departament);

Al ejecutarse la prueba, se sigue un proceso como:

1.- Abro el datapool
2.- Busco la columna del valor (primero las cuento, para hacer el loop)
3.- Me traigo el valor
4.- Busco el objeto en el mapa de objeto
5.- Acceso su especificacion en el mapa de objetos para saber como introducir la informacion
6.- Escribo en el campo.

De entrada ps se ve como suficienta, sin embargo empiezan los problemas.. que pasa si cambia el tipo de dato? que pasa si cambia el tipo de clase en la AUT? (que me ha pasado y es un gorro, en un proyecto pasado, estuvimos usando textboxes de swing y de repente un cliente salio con un requerimiento nuevo que no soportaba esa clase y se crearon una nueva, basada en textbox pero con el nombre de IntranetTextBox y maaaa, mis scripts no eran tan flexibles y tuve que remapaear todo!!!)

Total, si checas la especificacion del dato esta repetido en las tres capas (script, datapool y mapa de objeto), lo que provoca que en caso de cambios, se tripliquen los lugares onde hay que cambiarlos.

Entonces, lo que se propone es hacer el script flexible, de tal manera que ya no le tengas que especificar si quiera el dato a insertat... solamente creas un metodo que calcule como introducir el dato, en base a lo que se encuentre en el AUT, es decir, ya no utilizas mapa de objetos

(continuara despues...)

lunes, 29 de septiembre de 2008

Iniciando el STARWEST 2008

Con la novedad de que andamos en Anaheim CA en el evento STARWEST 2008 (Software Testing Analysis and Review) organizado por SQE (www.sqe.com).

Mañana inicio con dos días de tutoriales, el primero sera el de Scripting Techniques for Software Tester, lo da el cuate del articulo de Taekwondomation. Al parecer nos van a enseñar a usar Ruby wooo :P

El segundo, es el de Session Based Testing, mañana mas comentarios de los dos tutoriales.

De momento, unas fotos de nuestra larga travesía del día de hoy.


Raúl e Isaac perdiendo el tiempo en el aeropuerto
Un servidor intentando postear esto desde el aeropuerto (sin exito)






Al parecer hubo un malentendido y casi nos mandan en camión a Houston (luego conectamos con Anaheim)


Ya rendidos del viaje, mejor llegamos a cenar.




Dieta baja en ... en vergüenza! jaja