it-swarm-es.tech

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

Si bien intentamos configurar tantas pruebas unitarias como el tiempo lo permite para nuestras aplicaciones, siempre encuentro que falta la cantidad de pruebas de nivel de interfaz de usuario. Existen 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?

34
awied

De nuestro lado, usamos para probar SWING GUI con FEST . Este es un adaptador en el robot oscilante clásico, pero facilita drásticamente su uso.

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

11
gizmo

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 ¡extremadamente componentes personalizados 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 disponibles, tanto comerciales como de software libre.

Fue la herramienta de prueba ¡solo la que pudo automatizar con éxito nuestros componentes personalizados particulares; donde Rational Functional Tester de IBM, Microfocus 'TestPartner, QF-Test, Abbot & FEST fallaron .

Desde entonces, pude integrar con éxito las pruebas con Cruise Control para que se ejecuten al completar cada compilación de la aplicación.

Sin embargo, una palabra de cautela:
1) es bastante tosco alrededor de los bordes en la forma en que maneja JTables. Lo solucioné escribiendo mi propia clase de proxy para ellos.
2) Todavía no admite grabación/reproducción de acciones de arrastrar y soltar.

6
bguiz

Tenga en cuenta que Marathon ( http://www.marathontesting.com/Home.html) --tests está escrito en Jython, por lo que es fácil escribir cualquier tipo de predicados en función del estado del objeto.

4
mwasson

Puede intentar usar Pepino y Swinger para escribir pruebas de aceptación funcional en inglés para aplicaciones de Swing GUI. Swinger utiliza Netbeans ' Jemmy biblioteca bajo el 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 esto demostración de video Swinger para verlo en acción.

2
Dema

Puedo recomendar QFTest. Lo he usado para mi producto comercial y funciona muy bien con código casi cero (mi aplicación requiere el uso Java API de cliente para algunas cosas). Maneja bien la identificación de los componentes de swing, y es bastante tolerante a las actualizaciones de su GUI (cambiar el tamaño, reposicionar y agregar componentes no interrumpe las pruebas existentes). He realizado actualizaciones importantes a 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 centrada en Windows y no entiende Swing. Similar a Quick Test Pro.

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

2
Serge Merzliakov

Tuve la oportunidad de jugar con QF-TEST una vez. Es comercial, pero ofrece mucha funcionalidad. Tal vez lo eche un vistazo: http://www.qftest.de/en/index.html

2
Roland Schneider

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 el código que aún no se ha escrito, especificando nombres de elementos de la interfaz de usuario y similares.

¿Existen herramientas que funcionen para las pruebas que no son en cascada?

1
Tim Ottinger

Me gusta Jemmy, la biblioteca escrita para probar Netbeans.

1
Tom
1
zurk