17.1.06

Herramientas libres para pruebas de sistema/aceptación en Java.

Saludos.


Una de las cosas que he estado haciendo aprovechando la tranquilidad de las navidades es ojear herramienta que me permitan hacer
pruebas del sistema/aceptación sobre aplicaciones Java. A continuación os cuento un resumen superficial de mis opiniones.



El problema:


Quiero escribir una prueba que verifique que una aplicación tipo bloc de notas carga correctamente un archivo del sistema. La
aplicación elegida fue, al principio, el Notepad que se incluye como ejemplo en el paquete J2SE. Como me dio problemas con
algunas herramientas, al final hice las pruebas con Stylepad, que también se incluye como ejemplo en J2SE.



Las herramientas:


Lo que buscaba es una herramienta que me permitiera indicar las mismas secuencias que haría una persona que cargara un archivo. Es decir: pulsar en el menú file > open, navegar hasta una carpeta predeterminada, seleccionar en un archivo concreto y pulsar el botón open. Para evitar tener que pelearme con lenguajes o archivos XML, busqué herramientas que me permitan grabar y reproducir todas esas acciones.

Las elegidas fueron 3: Abbot (link) , JFCUnit (link)y Marathon (link).



Abbot:


Abbot sirve tanto para probar componentes de manera aislada como para grabar y reproducir una secuencia de acciones. La herramienta viene con un editor (llamado Costello) muy completo que facilita la tarea de grabar secuencias, construir casos de prueba, y reproducirlas. No fue nada difícil echarla a andar.

Con el editor ejecuté la aplicación y capturé todas las pulsaciones de ratón perfectamente. El editor, además, registró todos los componentes (JMenuBar, JPane, JTextPane, etc. ) implicados en la secuencia. A la hora de añadir asertos, no tuve más que elegir el componente, elegir la propiedad que quería comprobar y el valor al que iba a comparara. Realmente sencillo.

Ahora vienen las cosas malas. Abbot almacena los casos de prueba en un XML bastante complejo, lo que hace difícil hacer pruebas sin grabar/reproducir. Además, el editor siempre se colgaba con bastante rapidez. La descripción de errores es muy poco clara, ya que se limita simplemente a mostrar el texto de la excepción, lo cual no tiene ninguna utilidad para mí que no conocía como estaba hecha la herramienta por dentro.



JFCUnit:


JFCUnit permite realizar pruebas unitarias de interfaces gráficas de usuario y pruebas del sistema. A diferencia de Abbot y Marathon, esta herramienta no trae ningún editor que permita capturar/reproducir. Para grabar y reproducir hay que escribir un par de programas en programa Java, fácil de hacer una vez que se investiga a fondo en la documentación y ejemplos. Además, es necesario modificar el código de la prueba a mano para añadir los asertos. Además, la prueba no fue capaz de grabar mi interacción con el FileDialog para seleccionar el archivo a abrir.

Las pruebas también se almacenan en XML. Aunque la documentación de JFCUnit es muy completa, falta una buena referencia de las etiquetas y sus atributos. algo indispensable ya que no dispone de un editor.



Marathon:


Esta herramienta sólo sirve para pruebas de sistema/aceptación, no permitirnedo escribir pruebas para componentes de manera individual. En esta herramienta las pruebas nos e guardan en XML sino en Python (y se procesan con JPython). Esto hace que el código sea muy compacto, muy legible y que tengamos toda la potencia de Python a nuestra disposición.

Aunque el editor no es tan completo como el editor de Abbot, incluye un menú contextual sobre la aplicación a prueba que permite añadir comprobaciones al mismo tiempo que se graba. Sin embargo también presenta problemas. El más importante es que, al igual que en la herramienta anterior, no se ha capturado la interacción con el diálogo para abrir un archivo. La documentación, aunque muy buena para empezar, se queda muy corta cuando quieres profundizar.


 


Conclusiones:


En una primera aproximación, no creo que ninguna de estas tres sea la herramienta definitiva. La herramienta que más me ha gustado es Marathon, sin duda por trabajar en Python. He encontrado mucho más cómodo entender código en Python que lenguajes propios de etiquetas. Marathon, además, es capaz de ocultar los detalles de la interfaz gráfica mejor que las demás. Esto es muy útil cuando queremos escribir las pruebas antes de tener la interfaz gráfica, o para evitar tener que volver a grabar todas las pruebas por algún cambio en la interfaz.



Estas navidades también estuve investigando algunas herramientas para probar aplicaciones web. En un futuro post, dentro de un mes más o menos, hablaré de ellas. Por supuesto escribiré más mensajes mientras.




 

17 comments:

Anonymous said...

Hi people
I do not know what to give for Christmas of the to friends, advise something ....

Anonymous said...

Hi, it is really nice resource. I think, i'll see this site again.
- www.blogger.com 9
samsung ringtone
motorola ringtone
sony ericsson ringtone
nokia ringtone

Anonymous said...

Good site! Good stuff, i found lots of intresting things here. Many thanks. Congratulations!
- rincew.blogspot.com 3
07 car civic honda
buy used car
car undefined used
used car bergen
used car oakland
used car greensboro
used car raleigh
used car killeen
used car vallejo
used car tacoma

Anonymous said...

There are too little good sites. Your site is the best. Thank you for the chance to sign your guest book.
- www.blogger.com i
http://mosquitoringtone1.4x2.net mosquito ringtone
http://freenokiaringtone1.4x2.net free nokia ringtone
http://freeverizonringtone1.4x2.net free verizon ringtone
http://mp3ringtone1.4x2.net mp3 ringtone
http://nokiaringtone1.4x2.net nokia ringtone
http://freemotorolaringtone1.4x2.net free motorola ringtone
http://freemp3ringtone1.4x2.net free mp3 ringtone
http://samsungringtone1.4x2.net samsung ringtone
http://freepolyphonicringtone1.4x2.net free polyphonic ringtone
http://britneyspearsringtone1.4x2.net britney spears ringtone

Anonymous said...

My partner and I stumbled over here different web page and thought I might check things out.
I like what I see so now i am following you. Look forward to finding
out about your web page repeatedly.
Look at my web page ; red hot elevator ride coins

Anonymous said...

Pretty portion of content. I simply stumbled upon your
web site and in accession capital to claim that I acquire actually enjoyed account your weblog posts.
Any way I will be subscribing for your feeds and even I success you get admission to consistently quickly.
Also visit my web page - free one on one chat

Anonymous said...

Malaysia & Singapore & brunei finest on-line blogshop for wholesale & quantity korean add-ons,
earrings, earstuds, necklace, rings, bracelet, bracelet & hair add-ons.
Offer 35 % wholesale price cut. Ship Worldwide
My web site - ohio unemployment

Anonymous said...

I think this is one of the most important info for me.

And i'm glad reading your article. But should remark on some general things, The web site style is ideal, the articles is really nice : D. Good job, cheers
Feel free to surf my blog www.illinoisskillsmatch.com

Anonymous said...

Write more, thats all I have to say. Literally, it seems as though you relied on the
video to make your point. You definitely know what youre talking about, why waste your intelligence on just posting
videos to your weblog when you could be giving us something informative to read?
My website ; click the next internet site

Anonymous said...

Hi there! Quick question that's entirely off topic. Do you know how to make your site mobile friendly? My site looks weird when viewing from my iphone4. I'm trying to find a template or plugin that might be able
to resolve this issue. If you have any recommendations, please share.
Thank you!
My web page - click the up coming article

Anonymous said...

These are actually great ideas in about blogging.
You have touched some nice things here. Any way keep up wrinting.
Also visit my web site - yaching charter ecommerce specialist

Anonymous said...

I visited several websites except the audio feature for
audio songs present at this web site is genuinely fabulous.


My webpage: http://sexygirlchat.net/

Anonymous said...

Hey! I know this is kinda off topic but I was wondering
if you knew where I could locate a captcha
plugin for my comment form? I'm using the same blog platform as yours and I'm having difficulty finding one?
Thanks a lot!

my web site :: www.xxxvideofix.com

Anonymous said...

Hello very nice website!! Guy .. Beautiful .. Amazing .
. I'll bookmark your blog and take the feeds also? I am happy to seek out a lot of helpful info right here in the submit, we want work out more strategies in this regard, thanks for sharing. . . . . .

Feel free to surf to my site ... sexvideovoyeur.com

Anonymous said...

You ought to take part in a contest for one of the most useful
blogs online. I will highly recommend this website!


Feel free to surf to my web site: xxxmoviegalls.com

Anonymous said...

Magnificent beat ! I wish to apprentice while you amend your website, how
could i subscribe for a weblog site? The account helped me a appropriate deal.
I were a little bit familiar of this your broadcast offered shiny clear
concept

Also visit my webpage http://www.jnmassage.info

Anonymous said...

I got this web site from my pal who told me about this site
and now this time I am browsing this website and reading very
informative articles at this place.

Check out my website; voyeur sex