Mucho antes de las aplicaciones móviles y en línea, utilizábamos aplicaciones web de escritorio. Sin embargo, probarlas se ha vuelto cada vez más raro, y si su trabajo implica automatizar las pruebas de aplicaciones de escritorio, puede enfrentar algunas dificultades. Repasémoslos ahora.
1. Elegir la mejor herramienta para el trabajo
Este es un problema en cualquier proyecto de automatización de pruebas, pero es especialmente difícil para los programas de escritorio. Si bien puede haber demasiadas opciones para aplicaciones móviles y en línea, no puede ocurrir lo mismo con las computadoras de escritorio.
Las comunidades también son más pequeñas, lo que hace más difícil obtener ayuda para los problemas. La elección de una herramienta puede requerir una investigación exhaustiva y depende de los requisitos del proyecto.
2. Desarrollar un enfoque localizador eficaz
A diferencia de la automatización de pruebas web, en la que se pueden utilizar las herramientas de desarrollo del navegador o numerosas extensiones del navegador, localizar localizadores de programas de escritorio puede resultar un poco más difícil. Aún puedes usar XPath para pruebas de UI, pero no tendrás acceso a los atributos normales y sugeridos, como el selector de CSS, el nombre de la clase o el texto del enlace.
Muchas de las herramientas proporcionan inspectores de interfaz de usuario que pueden usarse para generar localizadores y, para los programas de Windows, puede utilizar la información de accesibilidad de Microsoft o la inspección de aplicaciones heredadas. Hay utilidades similares disponibles para Mac y Linux.
Puede utilizar atributos personalizados si los desarrolladores están de acuerdo. Esto ahorrará a los evaluadores mucho tiempo y esfuerzo al crear localizadores para elementos de la interfaz de usuario. Después de todo, lo mejor para todos es tener un proceso de prueba confiable que contribuya a la calidad general del producto.
3. Escenarios complicados
A diferencia de las pruebas unitarias o de integración, la automatización de la interfaz de usuario normalmente funciona con escenarios de prueba más grandes. Especialmente si también estamos realizando pruebas de un extremo a otro (que suele ser el caso).
Los programas de escritorio suelen ser más complicados en sí mismos. Como resultado, los casos y situaciones de prueba para la automatización se volverán más complejos. Esto significa que implementar las pruebas puede resultar más difícil para los programas de escritorio.
Elija sus pruebas con cuidado y no tema confiar también en las pruebas unitarias y de integración; si algo se puede automatizar en un nivel inferior, no duplique el escenario de prueba probándolo a través de la herramienta UI.
4. Configuraciones y averías
La configuración, o condiciones previas de la prueba, y el desmontaje son dos componentes críticos de las pruebas automatizadas. Cuando se trata de automatizar las pruebas de un software de escritorio, esto también puede ser un desafío.
Considere esto: para un proyecto de automatización de pruebas de Selenium, la configuración y el desmontaje implican abrir y cerrar el navegador (se pueden incluir procesos adicionales, pero estos son un hecho). Cuando comienza una nueva prueba, el navegador está en un estado limpio, sin cookies, caché ni personas iniciadas, por ejemplo.
Sin embargo, reiniciar una aplicación de escritorio no es suficiente para restaurarla a su condición original. Una aplicación de escritorio puede generar numerosos archivos "residuales". Estos pueden incluir entradas de registro, así como archivos de licencia y registro. Por supuesto, no es difícil deshacerse de las cosas, pero requiere un esfuerzo adicional y no debe pasarse por alto durante el desmontaje de la prueba.
5. Ejecutando en paralelo
Esto también podría ser un desafío. Porque, a diferencia de la automatización de pruebas en línea, donde se pueden usar varios navegadores, las aplicaciones de escritorio requieren que muchas instancias de la aplicación estén abiertas al mismo tiempo. Por lo general, es imposible crear varias instancias con configuraciones distintas, como varios tipos de licencia o usuarios separados.
Otro problema es que algunas herramientas de automatización que interactúan con programas realmente deben usar el mouse o el teclado, en lugar de simplemente simular las acciones a través del navegador. Esto implica que solo puede interactuar con una instancia a la vez, lo que aumenta significativamente el tiempo de ejecución de la prueba.
¿Cuál es la solución? Cada instancia del software se puede ejecutar en una PC separada. Esto implica, por supuesto, invertir en una infraestructura robusta compuesta por numerosas máquinas (reales o virtuales) e instalar el software en cada una. Esto nos lleva al punto final.
6. Establecimiento
La instalación de un programa de escritorio suele ser responsabilidad del usuario. A diferencia de una aplicación web, que el equipo de desarrollo o DevOps instala en un servidor, las aplicaciones de escritorio vienen con un instalador que debe iniciarse en la estación de trabajo del usuario.
Es fundamental probar la instalación (ya sea desde cero o mediante actualizaciones) para garantizar que todo funcione correctamente. También deberías considerar probar el proceso de desinstalación.
También necesitará automatizar el procedimiento de instalación si está ejecutando las pruebas en un entorno CI/CD. Esto se debe a que las pruebas deben ejecutarse en la versión correcta de la aplicación, que debe estar presente en todas las máquinas donde se ejecutan las pruebas.
Conclusión
La automatización de las pruebas de aplicaciones de escritorio puede presentar una serie de desafíos, pero con la planificación y preparación adecuadas, puede superarlos todos. En este artículo, analizamos algunos de los más comunes para los que debe estar preparado si está iniciando un proyecto de prueba de aplicaciones de escritorio.