que pasos para ejemplos crear componentes componente java swing testing

java - pasos - ¿Cuál es la mejor herramienta de prueba para las aplicaciones basadas en Swing?



swing java ejemplos (9)

Si bien tratamos de configurar tantas pruebas unitarias como el tiempo lo permita para nuestras aplicaciones, siempre me falta la cantidad de pruebas de nivel UI. Hay muchas opciones, pero no estoy seguro de cuál sería un buen lugar para comenzar.

¿Cuál es su herramienta de prueba de unidad preferida para probar aplicaciones Swing? Por qué te gusta?



Me gusta Jemmy, la biblioteca escrita para probar Netbeans.


No es una respuesta, sino un refinamiento.

Grabar y reproducir es lo incorrecto que desea. Los equipos necesitan la capacidad de escribir pruebas antes de que se haya escrito el código. De lo contrario, los codificadores terminan su trabajo y esperan mientras los probadores se apresuran a grabar las pruebas (interrumpidas por arreglos cuando detectan problemas).

En un tipo de configuración BDD / TDD / ATDD, realmente necesita algún tipo de herramienta que le permita realizar pruebas de script para código que aún no se haya escrito, especificando nombres de elementos de interfaz de usuario y similares.

¿Hay herramientas que funcionan para las pruebas que no son de cascada?


Por nuestra parte, utilizamos para probar SWING GUI con FEST . Este es un adaptador en el clásico robot oscilante, pero facilita enormemente su uso.

Combinado con TestNG, encontramos una manera fácil de simular acciones "humanas" a través de la GUI.


Puede intentar usar Cucumber and Swinger para escribir pruebas de aceptación funcional en inglés simple para aplicaciones de GUI de Swing. Swinger usa la biblioteca Jemmy de Netbeans debajo del capó para conducir la aplicación.

Pepino te permite escribir pruebas como esta:

Scenario: Dialog manipulation Given the frame "SwingSet" is visible And the frame "SwingSet" is the container When I click the menu "File/About" Then I should see the dialog "About Swing!" Given the dialog "About Swing!" is the container When I click the button "OK" Then I should not see the dialog "About Swing!"

Echa un vistazo a esta demostración de video de Swinger para verla en acción.


Puedo recomendar QFTest. Lo he usado para mi producto comercial y funciona muy bien con casi cero código (mi aplicación requiere el uso de las API del cliente Java para algunas cosas). Maneja bien la identificación de los componentes swing y es bastante tolerante con las actualizaciones de su GUI (cambiar el tamaño, reposicionar y agregar componentes no rompe las pruebas existentes). He hecho importantes actualizaciones de la funcionalidad y mis pruebas aún funcionan.

Es caro, pero creo que se amortizará en un par de meses.

Antes de QFTest probé:

1) Automatedqa: buena herramienta, pero está centrada en Windows y no comprende Swing. Similar a Quick test Pro.

2) UISpec4J: después de dedicar una semana sólida de 50 horas a esto, tuve problemas con la fragilidad y el código Java arcano que produjo. Usarlo fue demasiado arduo: intentar depurar / actualizar cientos de líneas de Java realizando una secuencia de una docena de operaciones de la GUI simplemente no funcionó para mi cerebro. Terminé evitando escribir pruebas porque es mucho más complicado que escribir la aplicación en sí misma.


Si su aplicación de destino tiene componentes personalizados , definitivamente recomendaría Marathon para automatizar sus pruebas.

Me dieron la tarea de automatizar una aplicación con varios componentes personalizados extremadamente complicados, escritos internamente desde cero. Pasé por un proceso de revisión que duró dos meses, en el que tomé la decisión sobre qué herramienta de prueba usar, de una lista de cerca de 30 herramientas de prueba que estaban disponibles, tanto comerciales como de software libre.

Era la única herramienta de prueba que podía automatizar con éxito nuestros componentes personalizados particulares; donde fallaron el Rational Functional Tester de IBM, Microfocus ''TestPartner, QF-Test, Abbot & FEST.

Desde entonces, he podido integrar exitosamente las pruebas con Cruise Control de modo que se ejecuten al completar cada compilación de la aplicación.

Sin embargo, una palabra de cautela:
1) es bastante áspero alrededor de los bordes en la forma en que maneja JTables. Entendí esto escribiendo mi propia clase de proxy para ellos.
2) Aún no es compatible con la grabación / reproducción de acciones de arrastrar y soltar.